---
schema_version: "1"
id: 5a796cb9a77ed8ac950bda8eb1e1348a6597c5096ce1a11864dddea70d4333a3
title: "DMOs: Map External Subscriber Data"
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/data-cloud/connectapi/guides/dmo-use-case.md
canonical_url: https://developer.salesforce.com/docs/data/connectapi/guide/dmo-use-case.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 8e7be7c6c10aea3267ae69756099dc18c7fa5073d500fee44d8d4a49f8b96a31
products:
  - Data 360 Connect REST API
  - Data 360 Developer Documentation
---
# DMOs: Map External Subscriber Data

**Business Goal:** Continuously integrate all new and existing customer engagement systems into Data 360 to maintain a complete, unified Customer 360 profile. By relying on identity resolution to unify this data, businesses enable comprehensive analysis and effective segmentation.

**Use Case:** A newly onboarded project requires ingesting subscriber profile data from an AWS S3 CSV file and mapping it to the Data Model Objects (DMOs) that make up the standard unified individual data model. These DMOs include key objects, such as Individual, Contact Point Phone, Contact Point Email, and Contact Point Address. A data engineer uses Connect API to streamline initial onboarding and subsequent change management processes.

The DMO Connect API prepares data for a unified customer view, transforming raw Data Lake Object (DLO) data into structured DMOs. This programmatic approach provides granular administrative control, streamlining implementation and ensuring seamless check-in to external change management.

For limit information, see [Data 360 Limits and Guidelines](https://help.salesforce.com/s/articleView?id=data.c360_a_limits_and_guidelines.htm).

![Sequence diagram showing the requests for mapping external data with the DMO Connect API.](https://developer.salesforce.com/docs/media/connectapi/dmo-seq-diag.png '{"class": "image-md"}')

## Step 1: Create the new DLO to Individual DMO mapping

Use the [create data model object mapping](https://developer.salesforce.com/docs/data/connectapi/references/spec?meta=createDataModelObjectMapping) endpoint to initiate the creation of the object mapping in Data 360.

### Request

Map the ingested subscribers data from the DLO to the existing Individual DMO, which is the gateway for identity resolution processing. Include field mappings, such as ID, last name, and first name in the request.

```
POST https://{dne_cdpInstanceUrl}/services/data/v65.0/ssot/data-model-object-mappings
```

```json
{
  "description": "Mapping for Subscriber S3 data to the Individual DMO",
  "label": "S3_Subscribers_Individual",
  "name": "S3 Subscribers to Individual Mapping",
  "fieldMapping": [
    {
      "description": "Mapping Subscriber ID to SourceSystemId",
      "label": "Subscriber_ID_to_SourceSystemId",
      "name": "Subscriber ID to SourceSystemId",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "description": "Mapping LastName to LastName",
      "label": "LastName_to_LastName",
      "name": "LastName to LastName",
      "sourceFieldDeveloperName": "LastName__c",
      "targetFieldDeveloperName": "ssot__LastName__c"
    },
    {
      "description": "Mapping FirstName to FirstName",
      "label": "FirstName_to_FirstName",
      "name": "FirstName to FirstName",
      "sourceFieldDeveloperName": "FirstName__c",
      "targetFieldDeveloperName": "ssot__FirstName__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "targetEntityDeveloperName": "ssot__Individual__dlm"
}
```

### Response

The API call confirms the creation of the mapping, with the status set to `CREATING`, indicating that the job is being processed.

```json
{
  "developerName": "S3_Subscribers_Individual",
  "fieldMappings": [
    {
      "developerName": "Subscriber_ID__c_fieldmap_ssot__SourceSystemId_c",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "developerName": "LastName__c_fieldmap_ssot__LastName__c",
      "sourceFieldDeveloperName": "LastName__c",
      "targetFieldDeveloperName": "ssot__LastName__c"
    },
    {
      "developerName": "FirstName__c_fieldmap_ssot__FirstName_c",
      "sourceFieldDeveloperName": "FirstName__c",
      "targetFieldDeveloperName": "ssot__FirstName__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "status": "CREATING",
  "targetEntityDeveloperName": "ssot__Individual__dlm"
}
```

## Step 2: Create the new DLO to Contact Point Email DMO mapping

Use the same [create data model object mapping](https://developer.salesforce.com/docs/data/connectapi/references/spec?meta=createDataModelObjectMapping) endpoint from the previous step to create another object mapping.

### Request

Map the ingested subscribers data to the Contact Point Email DMO to establish the primary email address for identity resolution and engagement. Include the ID and email address fields in the request.

```
POST https://{dne_cdpInstanceUrl}/services/data/v65.0/ssot/data-model-object-mappings
```

```json
{
  "description": "Mapping for Subscriber S3 data to the Contact Point Email DMO",
  "label": "S3_Subscribers_ContactPointEmail",
  "name": "S3 Subscribers to Contact Point Email",
  "fieldMapping": [
    {
      "description": "Mapping Subscriber ID to SourceSystemId",
      "label": "Subscriber_ID_to_SourceSystemId",
      "name": "Subscriber ID to SourceSystemId",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "description": "Mapping Email to EmailAddress",
      "label": "Email_to_EmailAddress",
      "name": "Email to EmailAddress",
      "sourceFieldDeveloperName": "Email__c",
      "targetFieldDeveloperName": "ssot__EmailAddress__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "targetEntityDeveloperName": "ssot__ContactPointEmail__dlm"
}
```

### Response

The API call confirms the creation of the mapping, with the status again set to `CREATING`, indicating that the job is being processed.

```json
{
  "developerName": "S3_Subscribers_ContactPointEmail",
  "fieldMappings": [
    {
      "developerName": "Subscriber_ID__c_fieldmap_ssot__SourceSystemId__c",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "developerName": "Email__c_fieldmap_ssot__EmailAddress__c",
      "sourceFieldDeveloperName": "Email__c",
      "targetFieldDeveloperName": "ssot__EmailAddress__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "status": "CREATING",
  "targetEntityDeveloperName": "ssot__ContactPointEmail__dlm"
}
```

## Step 3: Verify the DLO to DMO mapping

Verify the status of a specific object mapping by using the [get data model object mapping](https://developer.salesforce.com/docs/data/connectapi/references/spec?meta=getDataModelObjectMapping) endpoint.

### Request

Confirm the status and creation of the mapping (completed in Step 1) from the source S3 Subscriber data to the target Individual DMO.

```
GET https://{dne_cdpInstanceUrl}/services/data/v65.0/ssot/data-model-object-mappings/S3_Subscribers_Individual
```

### Response

The mapping process for the Individual DMO is completed and all defined field mappings are confirmed and active. Use the same endpoint to verify the completion status of the Contact Point Email DMO mapping.

```json
{
  "developerName": "S3_Subscribers_Individual",
  "fieldMappings": [
    {
      "developerName": "Subscriber_ID__c_fieldmap_ssot__SourceSystemId__c",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "developerName": "LastName__c_fieldmap_ssot__LastName__c",
      "sourceFieldDeveloperName": "LastName__c",
      "targetFieldDeveloperName": "ssot__LastName__c"
    },
    {
      "developerName": "FirstName__c_fieldmap_ssot__FirstName__c",
      "sourceFieldDeveloperName": "FirstName__c",
      "targetFieldDeveloperName": "ssot__FirstName__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "status": "ACTIVE",
  "targetEntityDeveloperName": "ssot__Individual__dlm"
}
```

## Step 4: Define additional field mappings

If you need to add another field mapping after creation of the initial mapping, use the [update data model field mappings](https://developer.salesforce.com/docs/data/connectapi/references/spec?meta=updateDataModelFieldMappings) endpoint to add fields or to update existing mappings.

### Request

Add a new mapping from the `DateOfBirth__c` DLO field to the `BirthDate` DMO field.

```
PATCH https://{dne_cdpInstanceUrl}/services/data/v65.0/ssot/data-model-object-mappings/S3_Subscribers_Individual/field-mappings
```

```json
{
  "description": "Additional mapping for Subscriber S3 data to the Individual DMO",
  "label": "S3_Subscribers_Individual",
  "name": "S3 Subscribers to Individual Mapping",
  "fieldMapping": [
    {
      "description": "Mapping DateOfBirth to BirthDate",
      "label": "DateOfBirth_to_BirthDate",
      "name": "DateOfBirth to BirthDate",
      "sourceFieldDeveloperName": "DateOfBirth__c",
      "targetFieldDeveloperName": "ssot__BirthDate__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "targetEntityDeveloperName": "ssot__Individual__dlm"
}
```

### Response

The API call confirms the update by returning the full object-mapping payload, including the newly added field mapping. The status is set to `UPDATING` to indicate the mapping is in the process of being updated.

Make sure that all relevant data columns from the source DLO are correctly standardized against the DMO structure. Review the API response, which confirms the new field mapping aligns the source data format (for example, data type or length) with the expected DMO field structure.

```json
{
  "developerName": "S3_Subscribers_Individual",
  "fieldMappings": [
    {
      "developerName": "Subscriber_ID__c_fieldmap_ssot__SourceSystemId__c",
      "sourceFieldDeveloperName": "Subscriber_ID__c",
      "targetFieldDeveloperName": "ssot__SourceSystemId__c"
    },
    {
      "developerName": "LastName__c_fieldmap_ssot__LastName__c",
      "sourceFieldDeveloperName": "LastName__c",
      "targetFieldDeveloperName": "ssot__LastName__c"
    },
    {
      "developerName": "FirstName__c_fieldmap_ssot__FirstName__c",
      "sourceFieldDeveloperName": "FirstName__c",
      "targetFieldDeveloperName": "ssot__FirstName__c"
    },
    {
      "developerName": "DateOfBirth__c_fieldmap_ssot__BirthDate__c",
      "sourceFieldDeveloperName": "DateOfBirth__c",
      "targetFieldDeveloperName": "ssot__BirthDate__c"
    }
  ],
  "sourceEntityDeveloperName": "S3_Subscribers__dll",
  "status": "UPDATING",
  "targetEntityDeveloperName": "ssot__Individual__dlm"
}
```

## Step 5: Delete field mapping (optional)

For governance or cleanup, you can delete a specific field mapping without affecting the overall DLO-to-DMO relationship. Use the [delete data model field mapping](https://developer.salesforce.com/docs/data/connectapi/references/spec?meta=deleteDataModelFieldMapping) endpoint to remove an individual field relationship.
