Přeskočit na obsah

People Data, Into the Standard Model

Tento obsah zatím není dostupný ve vašem jazyce.

Module 3 in the chapter From the Lake to the Model, chapter 8 of the Data 360 Architect course. Each module stands on its own. Previous: Reference Data, One to One · Next: The Party, Ready for Identity Resolution

The question this module answers: How do you map people data into the standard model, and how do you check a mapping?

Reference data can go into the model in its own shape (module 2). People can’t. A pilot, a customer or a member has to land in the standard objects, because that’s where identity resolution, segments and activation look for people. This module maps the pilots file into the standard model, one object at a time.

This is the file from chapter 1, pilots-synthetic.csv on SkyData (opens in a new tab): 1,000 synthetic pilots, one row each, with a pilot ID, first and last name, email, phone, home airport, flying role, highest certificate and years flying. It came in as a profile stream, because it’s about individuals. And in chapter 3 we already wrote down where each field goes:

Source fieldMaps to
pilot_idIndividual: Individual ID
first_name, last_nameIndividual: First Name, Last Name
emailContact Point Email: Email Address
phoneContact Point Phone: Telephone Number
years_flying, flying_roleIndividual: custom fields
highest_certificate, home_airportNot mapped yet: they stay on the lake until a use needs them

The custom fields are this course’s example. The pilots are synthetic; the home airports are real.

Mapping is where that table gets built.

From the lake object, start the data mapping and select the objects to map to. This time, instead of creating a new object, look for the standard Individual. You see all of the standard fields on the Individual, and that’s where the pilot goes.

The data lake object Pilot_SkyData: API name Pilot_SkyData__dll, creation type Custom, category Profile, 1,000 records, 15 fields; Data Mapping 0/0, Ready, with a Start button

The way in: Start, on the lake object (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

Pilot_SkyData Mappings, the empty canvas: the file's fields on the left, all unmapped, pilot_id marked Primary Key; nothing on the right yet but Select Objects

The empty mapping canvas (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The Select Objects panel: Einstein automatically generates field mappings for the selected data model objects; tabs Standard Data Model and Custom Data Model

Choosing the model objects to map to (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

When you pick it, Data 360 does an automapping: first name to First Name, last name to Last Name. Salesforce says automapping suggests from three things: field pairs that were mapped before, names that match exactly or nearly (“fuzzy match”), and synonyms. It keeps the data types compatible, and the suggestions “improve over time.” Then, in Salesforce’s words, “You can then make any necessary changes and save the mappings.” Automapping is a first draft. Review every line before you save.

The mapping canvas after choosing Individual and Contact Point Email: email to Email Address, first_name to First Name, last_name to Last Name, already drawn; a warning on Contact Point Email

Automapping: the name and email lines, drawn for you (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

Check the primary key yourself. Salesforce won’t let you save without it: “When you’re mapping a data model object (DMO) in the Profile or Other category, you must map the primary key field.” If it isn’t mapped, click the unmapped pilot ID on the left, then the Individual ID on the right, and the line connects them. In my org I didn’t have to. A moment after the names, lines from the pilot ID to the Individual ID, to the Contact Point Email’s own ID and to its Party appeared on their own. I drew no lines at all. That’s helpful, and it’s also why you read the mapping before you trust it (below): a line you didn’t draw is a line you haven’t checked.

The saved canvas: pilot_id, the Primary Key, mapped to Contact Point Email Id, Party and Individual Id; email to Email Address; first and last name to the Individual

The keys mapped: one pilot ID feeds three fields (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The two custom fields, years flying and flying role, have no standard home on the Individual. From the unmapped fields you can add a new field to the data model object, with a type compatible with the source field, and map to it.

Add New Attribute on the Individual: Field Label and Field API Name Years_Flying, the Data Type list (Text, Number, DateTime, Date, Email, Phone, URL, Percent, Boolean, Currency), Enable Value Suggestion, and no description box

A custom field on the Individual, added from the mapping (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The canvas with the custom fields: source Is Mapped (6), Individual Is Mapped (5): First Name, Flying Role (Custom), Individual Id, Last Name, Years Flying (Custom)

The two custom fields, mapped as soon as they existed (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The Pilot_SkyData data stream after mapping: Data Mapping 10 of 15, Ready, Review; Update File, with no Refresh Now

The stream after mapping: 10 of 15 fields mapped (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

Now add the contact details. In the same mapping, add two more standard objects: Contact Point Email and Contact Point Phone. Map the email address to the email address, and the phone to the telephone number.

Select Objects searched for Contact: the contact point family, Contact Point Address, App, Consent, Digital Id and Email, with Email ticked

The contact point objects, one per kind of contact detail (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

Why separate objects? Because the standard model allows an individual to have many email addresses and many phones. Each contact point is a child of the person, one person to many. A pilot with a work email and a personal one has two Contact Point Email rows, both pointing to the same Individual.

Each contact point needs two keys:

Contact Point Email on the canvas, three fields mapped: pilot_id to Contact Point Email Id and to Party, email to Email Address

A contact point’s two keys: its own ID and its Party (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

  • Its own primary key, one per contact point. The pilots file has one email and one phone per pilot, so in my mapping I used the pilot reference for both. That works while there’s one of each. If a file carries a work and a personal email, each needs its own key, such as the pilot ID plus the type (chapter 7, module 4, does exactly this for phones).
  • Its Party, the pilot ID again, which points the contact point to its Individual. Salesforce: “Party = Individual.Id.” Module 4 is about the party.

Salesforce’s rules for one lake object feeding several model objects:

  • “You can map a DLO to one or more DMOs.” One pilots file, three objects.
  • “You can map a DLO field to more than one DMO field in the same DMO.”
  • But “A single DMO field can’t have more than one source DLO field.”

And Salesforce’s minimum for people data to be used by identity resolution, segmentation and activation: map the Individual, and either a contact point or a party identification. Without a contact point, “activation isn’t feasible because there isn’t a contact detail through which to engage with customers.”

One pilot row, three standard objects On the left, the pilots lake object, with its fields: pilot_id, first and last name, email, phone, years flying and flying role. Three arrows labeled "maps to" go right, to three standard objects: - **Individual:** Individual ID from pilot_id, first and last name, and two custom fields, years flying and flying role. - **Contact Point Email:** its own key, the email address, and a Party field holding the Individual ID. - **Contact Point Phone:** its own key, the telephone number, and a Party field holding the Individual ID. Footnote: every contact point carries its Party, the Individual it belongs to. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.59.0", "built": "2026-11-09", "id": "DGM-D360-LM-01", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "object-model/logical 1.8.0", "theme": "stevetecharc 1.4.0"} maps to maps to maps to Pilots (lake object) pilot_id first_name last_name email phone years_flying flying_role Individual Individual ID = pilot_id First Name Last Name Years Flying (custom) Flying Role (custom) Contact Point Email its own key Email Address = email Party = Individual ID Contact Point Phone its own key Telephone Number = phone Party = Individual ID Every contact point carries its Party: the Individual it belongs to. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

From chapter 6: “A DMO inherits its category from the first DLO mapped to it,” and the categories limit what maps where:

  • Profile and other lake objects map to profile or other model objects, never engagement.
  • Engagement lake objects map only to engagement model objects.

If you can’t find the object you expect in the mapping list, check the category first. Salesforce’s troubleshooting note: the list is “filtered by compatible categories.”

In chapter 5, we read a data bundle’s mapping right to left. Do the same with your own. With all the lines, it’s easy to read a mapping left to right, source field by source field, and miss what’s missing. I like tracing it from right back to left, so I get to trace the keys and the mappings.

  1. Start at each model object’s primary key. Individual ID: follow the line back. It leads to the pilot ID. Good.
  2. Then each contact point’s key and its Party. Both lead to the pilot ID, and the Party matches the Individual’s key.
  3. Then the fields you need downstream. Is the email mapped? The phone? The fields your segments will filter on?
  4. Then what’s not mapped. Anything left on the left side is something no one can use: “Only mapped fields and objects with relationships can be used for Segmentation and Activation.”

After the mapping runs, look at the data. In Data Explorer, choose the data space, then the data model objects, then the Individual. In my org, the individuals from the CRM org and the individuals from the pilots file sat side by side; sort on the data source, and you see which came from where. Then switch to Contact Point Email and check the emails came across with the right party.

In my org, the first page of the Individual showed only contacts from the CRM org, and the pilots seemed to be missing. They weren’t. A filter on Years Flying greater than 1 showed only the pilots, with their flying role and years flying filled in. Don’t judge a mapping by the first page.

Data Explorer on the Individual data model object: 24 columns including Flying Role and Years Flying; every row on the first page from Data Source Salesforce_Home, object Contact; the External Record column masked

The first page: only the org’s contacts (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The Data Explorer filter panel: field Years Flying, operator greater than, value 1

A filter that only a pilot can pass (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The Individual filtered: rows from Data Source UploadedFiles, Data Source Object pilots-synthetic.csv, with first name, flying role and years flying

The pilots, in the Individual (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

Notice what you’re looking at: individuals, not people. A pilot who is also a contact in the org is two Individuals now, one from each source. That’s not yet the unified individual; that’s done through the matching rules in chapter 9.

When the CRM org’s contacts come in, the bundle (chapter 5) maps them to the Individual too, with the contact ID as the Individual ID. That’s Salesforce’s best practice: “Map the Contact object to Individual DMO and use Contact Id as Individual Id.” There is no concept of contact; there’s the individual. Pilots from a file and contacts from an org are the same kind of thing in the model, which is what lets chapter 9 bring them together.

Contact_Home Mappings: source Is Mapped (33); Contact ID, the Primary Key, feeding many objects; Account Contact with 22 fields mapped

The bundle’s mapping for the org’s contacts: one contact, many model objects (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

The Contact_Home mapping, Individual: 16 fields mapped, including Individual Id as the Primary Key, First Name, Last Name, External Record Id, External Source Id, Party and Person Name; Sky Data Contact ID left unmapped

What the bundle mapped for the org’s contacts (Salesforce Data 360 in a Developer Edition org, screenshot, November 2026). Full size

In 2023 I filmed the pilots file’s first mapping: to the standard Individual, the primary key mapped by hand, and the same data queried through the API. The note under the video says what’s still right and what’s changed since.

STA 5.4 · Salesforce Data Cloud Diaries Initial Mapping and Loading Individual DMO from Amazon S3 · 14:06 · published 2023-11-17 · plays from YouTube when you click it · Watch on YouTube · More videos: Data 360 (Data Cloud) Videos
  • Which standard objects each people source maps to: the Individual, and which contact points.
  • The key for each contact point, so two emails for one person never share one.
  • Which source fields need custom fields on the standard objects, and which stay unmapped.
  • Who reviews every automapping, right to left, before it’s saved.

All checked 2026-11-14.