---
schema_version: "1"
id: 0bb9c09a428f1b9f9ab3841346b3f3936bc42689a46fd1324258f2001b657955
title: Profile Event Routing
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/data-cloud/interactions-sdk/guides/c360a-apit-profile-event-routing.md
canonical_url: https://developer.salesforce.com/docs/data/salesforce-interactions-sdk/guide/c360a-apit-profile-event-routing.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 48b07dde8c935b6715e5297a152cea03aa656479d99a41b1550b811ca0bf3548
products:
  - Salesforce Interactions SDK
  - Data 360 Developer Documentation
---
# Profile Event Routing

Profile events are mapped to individual data streams in Data 360 based on the Web Connector Schema. As all profile data is encapsulated using the generic `user.attributes` object in the SDK, explicitly setting the `eventType` field is the mandatory step required to direct the SDK data to the correct specific profile data stream.

To route profile data:

1. Add the `eventType` field to the `user.attributes` payload.
2. Set the value of `eventType` to match the `developerName` of the profile event defined in your Web Connector Schema (for example, `contactPointEmail`).
3. Ensure the payload captures all schema-required fields for that specific profile event.

## Example: Routing Contact Point Email Data

This example shows how to route profile data for a new email address. It shows the link between the event's required fields in the Web Connector Schema and the corresponding payload sent to Data 360 via the SDK.

The schema used in this example defines the `contactPointEmail` profile event that requires the `eventType` and `email` fields be present in the incoming data.

```json
{
  "records": [
    {
      "developerName": "contactPointEmail",
      "masterLabel": "Contact Point Email",
      "category": "Profile",
      "externalDataTranFields": [
        {
          "masterLabel": "eventId",
          "dataType": "Text",
          "developerName": "eventId",
          "isDataRequired": true
        },
        {
          "masterLabel": "category",
          "dataType": "Text",
          "developerName": "category",
          "isDataRequired": true
        },
        {
          "masterLabel": "dateTime",
          "dataType": "DateTime",
          "developerName": "dateTime",
          "isDataRequired": true
        },
        {
          "masterLabel": "deviceId",
          "dataType": "Text",
          "developerName": "deviceId",
          "isDataRequired": true,
          "primaryIndexOrder": 1
        },
        {
          "masterLabel": "email",
          "dataType": "Text",
          "developerName": "email",
          "isDataRequired": true
        },
        {
          "masterLabel": "eventType",
          "dataType": "Text",
          "developerName": "eventType",
          "isDataRequired": true
        },
        {
          "masterLabel": "interactionName",
          "dataType": "Text",
          "developerName": "interactionName",
          "isDataRequired": true
        },
        {
          "masterLabel": "pageView",
          "dataType": "Number",
          "developerName": "pageView",
          "isDataRequired": false
        },
        {
          "masterLabel": "sessionId",
          "dataType": "Text",
          "developerName": "sessionId",
          "isDataRequired": true
        },
        {
          "masterLabel": "sourceChannel",
          "dataType": "Text",
          "developerName": "sourceChannel",
          "isDataRequired": false
        },
        {
          "masterLabel": "sourceLocale",
          "dataType": "Text",
          "developerName": "sourceLocale",
          "isDataRequired": false
        },
        {
          "masterLabel": "sourcePageType",
          "dataType": "Text",
          "developerName": "sourcePageType",
          "isDataRequired": false
        },
        {
          "masterLabel": "sourceUrl",
          "dataType": "Text",
          "developerName": "sourceUrl",
          "isDataRequired": false
        },
        {
          "masterLabel": "sourceUrlReferrer",
          "dataType": "Text",
          "developerName": "sourceUrlReferrer",
          "isDataRequired": false
        }
      ]
    }
  ]
}
```

When you instrument the SDK to capture the `contactPointEmail` profile event, you must ensure that the `SalesforceInteractions.sendEvent()` call explicitly includes the `eventType` to match the schema's `developerName` and provide the required `email` address within the `user.attributes` object.

```javascript
SalesforceInteractions.sendEvent({
  user: {
    attributes: {
      eventType: "contactPointEmail", // Routes the event to the correct profile stream
      email: "user@domain.com", // Provides the schema-required data
    },
  },
});
```

**See Also**

- [Translation of SDK Events to Web Connector Schemas](https://developer.salesforce.com/docs/data/salesforce-interactions-sdk/guide/c360a-api-translating-sdk-events-to-web-connector-schemas.md)
- [Data Collection](https://developer.salesforce.com/docs/data/salesforce-interactions-sdk/guide/c360a-api-data-collection.md)
- [User Data](https://developer.salesforce.com/docs/data/salesforce-interactions-sdk/guide/c360a-api-user-data.md)
