> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inflection.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Unified Mapping

> Control where every field of your customer data comes from, how conflicts between sources resolve, and which fields write back to Salesforce.

<Info>
  This feature is in beta release. If you don't have access to this feature and would like to get access, please contact your CS team.
</Info>

## Control Where Your Data Comes From

Unified Mapping gives you one place to control where every field of your customer data comes from. Each field on each entity reads from one or more sources: Salesforce, your data warehouse, Segment, Amplitude and Inflection resolves them into a single unified record (the golden record) that powers your dynamic lists, journeys, tokens, and personalization across the platform.

<Info>
  You need admin access to your Inflection workspace to change mapping. Connect at least one source (Salesforce, a data warehouse, Segment, or Amplitude) before configuring mapping for it.
</Info>

## Open the Mapping Page

Click **Connections** in the left navigation, then click **Unified Mapping.**

<Frame>
  <img src="https://mintcdn.com/inflection-4b2c0de4/jX0HOm62UhdPqXY8/images/Screenshot-2026-08-12-at-6.11.58-PM.png?fit=max&auto=format&n=jX0HOm62UhdPqXY8&q=85&s=9d6ccefc613d399f41ad6d75801cff42" alt="Screenshot 2026 08 12 At 6 11 58 PM" width="602" height="246" data-path="images/Screenshot-2026-08-12-at-6.11.58-PM.png" />
</Frame>

The Mapping page has one tab per entity: **Contact Mapping**, **Account Mapping**, **Opportunity Mapping**, **Product User Mapping**, **Organization Mapping**, and **Product User Organization Mapping** plus a **Change Log**. Each tab lists the entity's fields, their sources, and their settings. Click **How mapping works** in the top bar any time for an in-product explainer.

## The Six Entities

| Entity                            | What it holds                                            | Sources you can map                                               |
| --------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------- |
| Contact                           | Your marketable people and their attributes              | Salesforce (Contact and Lead), data warehouse, Segment, Amplitude |
| Account                           | CRM accounts                                             | Salesforce, data warehouse                                        |
| Opportunity                       | Salesforce opportunities                                 | Salesforce                                                        |
| Product User                      | Users of your product                                    | Segment, data warehouse                                           |
| Organization                      | Product workspaces or organizations your users belong to | Segment, data warehouse                                           |
| Product User Organization Mapping | How your product users map to organizations              | Data warehouse, Segment                                           |

## How Mapping Works

### The Unified Record

Each field reads from one or more sources. Inflection resolves the sources into one value per field, the unified record, and that value is what you filter on, personalize with, and trigger from everywhere in Inflection.

<Frame>
  <img src="https://mintcdn.com/inflection-4b2c0de4/mcgZ1WucSIPan2Ad/images/UMV2high-(1).gif?s=66525cacfa1044fc4b722599f206d826" alt="Umv2high (1)" width="1920" height="1080" data-path="images/UMV2high-(1).gif" />
</Frame>

### Backfill and Resolution

Resolution runs when a source sends an update. Here's which changes reach back into records you already have:

**Applies from the next source update**

| Change                                           | What happens                                             |
| ------------------------------------------------ | -------------------------------------------------------- |
| Reordering sources                               | New order is used the next time a source sends an update |
| Switching resolution mode (Priority ↔ Last wins) | Existing values are kept as-is                           |
| Toggling accept nulls                            | Only affects future updates from that source             |
| Toggling editing in Inflection                   | Only affects edits made after the change                 |

**Backfills existing records**

| Change                                             | What happens                                                                                                                             |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Adding or repointing a Salesforce source           | All Salesforce records are re-read; unified values change where Salesforce wins                                                          |
| Adding a Segment source                            | The last 30 days of Segment events are replayed; unified values change where Segment wins. Anything older than 30 days is not backfilled |
| Triggering a resync on a data warehouse connection | Changing mapping here does not resync a data warehouse connection. Updating the warehouse mapping triggers a resync                      |

<Info>
  Segment backfill might take some time. If you don't see your backfilled values within 24 hours of adding a Segment source, please contact your CS team.
</Info>

### Sources and Priority

Every connection is its own source block. The Salesforce block contains both **Contact** and **Lead** properties for Person fields; each data warehouse connection, Segment, and Amplitude are separate blocks. When a field has more than one source, choose how conflicts resolve:

* **Priority order:** the first source in the list that has a value wins. Reorder sources with the arrows next to each source number. <img src="https://mintcdn.com/inflection-4b2c0de4/fumEOikDYc8w6iJz/images/connections/unified-mapping/02.png?fit=max&auto=format&n=fumEOikDYc8w6iJz&q=85&s=5114789e0365ab6a6f02f12679d1ce4a" alt="A field mapped to Salesforce, Segment, and Amplitude with reorder arrows next to each source number" width="2246" height="498" data-path="images/connections/unified-mapping/02.png" />
* **Last wins:** the newest change across all sources wins.

Contact and Account fields support both modes. Product User, Organization, and Product User Organization Mapping fields resolve with last wins. Opportunity fields have a single source (Salesforce).

### Accept Null Values

By default, when a source's value for a field is blank or null, that source is skipped and the next source that has a real value wins instead. Turn on **Accept null values** for a source to let its blank value win its priority slot and clear the field, which is useful when an empty value is a meaningful signal. Leave it off for sources like event streams where blanks are just noise.

<img src="https://mintcdn.com/inflection-4b2c0de4/fumEOikDYc8w6iJz/images/connections/unified-mapping/03.png?fit=max&auto=format&n=fumEOikDYc8w6iJz&q=85&s=e75e16a8adb620e191b535bdc39f37c9" alt="Accept null values toggle on a source with its explanatory tooltip" width="1814" height="426" data-path="images/connections/unified-mapping/03.png" />

### Editing in Inflection

The **Editing** toggle controls whether a field can be changed from inside Inflection: forms, manual edits, CSV uploads, Journeys, Webhooks, and Data Normalization. When on, Inflection edits compete with the sources on a last-write-wins basis. Turn it off to make the field read-only on all Inflection surfaces.

<Info>
  Manual edits always follow last-wins; they are never part of the priority order.
</Info>

### Write Back to Salesforce

The **Write back** toggle sends the unified value back to Salesforce. It requires Salesforce to be one of the field's sources, and when the field uses Priority order, Salesforce must stay at the top of the order. The page enforces this and shows **Salesforce must stay at the top while write-back is enabled**. Blank values are never written back: Inflection only updates a Salesforce field when the unified record has a non-empty value.

<img src="https://mintcdn.com/inflection-4b2c0de4/lOUOv3XcQpYnKcs1/images/connections/unified-mapping/04.png?fit=max&auto=format&n=lOUOv3XcQpYnKcs1&q=85&s=10d302b71ce4dc7221a5ba6a614bf225" alt="A field with write back enabled showing the message that Salesforce must stay at the top of the priority order" width="2288" height="412" data-path="images/connections/unified-mapping/04.png" />

## Map a Field to a Source

1. On the entity's tab, click **Edit mapping**.
2. Find the field. Use **Search fields** to filter the list.
3. Click **+ Add source** on the field row.
4. Select the connection block (for example, **Salesforce**, **Segment**, or your warehouse connection).
5. Select the source property to read from. For Salesforce Person fields, set the **Contact** and **Lead** properties.
6. Optionally turn on **Accept null values** for the source.
7. Click **Save changes**.

To remove a single source from a field, click the **×** on its source block. The field itself and its current values are preserved, and the remaining sources continue to resolve.

## Create a Custom Field

1. Click **+ Add new field** on the entity's tab.
2. Enter a **Field name**. Names are case- and space-insensitive.
3. Select a **Field type** — String, Number, Boolean, or Datetime.
4. Optionally add a **Description** (up to 300 characters) so your team and Inflection's AI agents know what the field represents.
5. Click **Add field**.

<Info>
  Field names must start with a letter, be 250 characters or fewer, and be unique per entity. Names ending in `_pom` are reserved for Product User Organization Mapping fields.
</Info>

## Delete a Custom Field

Only custom fields can be deleted: system, default, and Inflection-managed fields are protected. Deletion is blocked while the field is in use by journeys, segments, exports, or forms, while changes are still saving, or while another delete is in progress. Inflection runs a dependency check and asks for confirmation before removing anything.

## Field Descriptions and Insights

Click **Add description** or **Edit description** under a field name to document what the field represents. Descriptions appear here and in **Insights from data dictionary** wherever you build filters.

Click the book icon next to a field name to open **Insights from data dictionary** for that field — how many records have a value (populated count and percentage) and a searchable list of distinct values sorted by frequency.

<img src="https://mintcdn.com/inflection-4b2c0de4/lOUOv3XcQpYnKcs1/images/connections/unified-mapping/05.png?fit=max&auto=format&n=lOUOv3XcQpYnKcs1&q=85&s=af957e0f35c66e0f2c5fe216f260448a" alt="Insights from data dictionary panel showing populated count and distinct values for the Title field" width="2438" height="1620" data-path="images/connections/unified-mapping/05.png" />

## Track Mapping Changes

Click **Change Log** to see every mapping change in the workspace — date and time, entity, change type (for example **Field created** or **Mapping changed**), the field, and who changed it. Filter by field name or date range, and click **Show details** on any row.

<img src="https://mintcdn.com/inflection-4b2c0de4/lOUOv3XcQpYnKcs1/images/connections/unified-mapping/06.png?fit=max&auto=format&n=lOUOv3XcQpYnKcs1&q=85&s=943695f6e50f1cd78f906e08725b5bc7" alt="Change Log tab listing mapping changes with date, entity, change type, field, and who changed it" width="3024" height="1652" data-path="images/connections/unified-mapping/06.png" />

## Fields You Can't Map

* **Identity fields** (marked **Identifier**) uniquely identify records and cannot be mapped — for example Person **Inflection ID** and **Email**, Account **Account Id**, and Opportunity **Opportunity ID**.
* **System fields** are managed by Inflection and cannot be edited.
* **Inflection-managed fields**, such as account scoring fields, always have Inflection as their locked source — no external source can be mapped to them.
* **Unsubscribed** always allows Inflection edits, and when Salesforce is one of its sources it always writes back — this keeps opt-outs consistent everywhere.

## Common Use Cases

* **Keep Salesforce authoritative with product data as backup.** Put Salesforce first in the Priority order and Segment second — Salesforce wins whenever it has a value, and Segment fills the gaps.
* **Let the freshest system win.** Use Last wins on fields fed by both your warehouse and product events so the most recent update always shows.
* **Lock a field against manual changes.** Turn Editing off to make a warehouse-owned field read-only in forms, CSV imports, and manual edits.
* **Push enriched values back to your CRM.** Map a field from your warehouse, turn on Write back, and Inflection keeps the Salesforce field up to date.

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="What happened to Auto-map?">
    Auto-map was removed. Fields are mapped explicitly on the Mapping page, so what you see there is always exactly what is configured.
  </Accordion>

  <Accordion title="What happened to Sync Preference (Two Way, Always use Salesforce, Prefer Connection)?">
    Sync preferences were replaced by the source, resolution, editing, and write-back model. The closest equivalents: **Two Way** is a Salesforce source with Editing and Write back on; **Always use Salesforce** is Salesforce as the only (or top-priority) source with Editing off; **Prefer Connection** is Last wins.
  </Accordion>

  <Accordion title="Can I use Priority order on Product User, Organization, or Product User Organization Mapping fields?">
    Not yet. These entities resolve with Last wins for now; priority resolution is planned for a future release.
  </Accordion>

  <Accordion title="Can I see which source produced the current value for a specific person?">
    Not yet — a per-record source view is planned. The Change Log shows every mapping configuration change today.
  </Accordion>

  <Accordion title="Are Segment field types validated?">
    No. Segment traits carry no type information, so a type-mismatched Segment mapping saves without error and can fail later at sync time. Keep the Inflection field type matched to the trait's actual type.
  </Accordion>

  <Accordion title="My write-back saved but values aren't landing in Salesforce. Why?">
    Write permission on the Salesforce field is not checked when you save the mapping. If the Salesforce field isn't updateable for the integration user, writes fail at sync time — check the field's accessibility in Salesforce.
  </Accordion>

  <Accordion title="Do data warehouse fields still need a second mapping step?">
    The current warehouse flow is unchanged: sync the table, then map its columns as sources. A single-step flow is planned.
  </Accordion>

  <Accordion title="What happens to my existing mappings?">
    Existing mappings are converted automatically and keep their behavior. A small number of patterns need cleanup during conversion — for example a Salesforce field mapped to the wrong entity's object, or a write-back where Salesforce isn't the top source. The Inflection team coordinates any cleanup with you.
  </Accordion>

  <Accordion title="Why do I see &#x22;Unable to validate mapping — please check your connection&#x22;?">
    The referenced connection is errored, deleted, or mid-setup. Fix the connection under **Connections > Data Connections**, then save the mapping again. If the provider is temporarily unreachable you'll see a transient error instead — just try again.
  </Accordion>
</AccordionGroup>
