Salesforce CDP

What Is Salesforce CDP?

Salesforce Customer Data Platform (CDP) is a data management tool designed to unify and centralize customer data from various sources across an organization. It helps create a comprehensive, single view of each customer by consolidating data such as demographic information, interactions, purchase history, and preferences. Salesforce CDP supports powerful segmentation and audience targeting, enabling personalized marketing and engagement at scale. Built on Salesforce’s robust platform, it integrates seamlessly with other Salesforce products, allowing businesses to leverage customer insights across sales, service, and marketing channels. The platform emphasizes data privacy and compliance, ensuring customer data is securely managed and used responsibly.

What are the benefits of integrating MetaRouter with Salesforce CDP?

  • Enhanced Data Control: Greater control over data transformations and routing, optimizing data quality and relevance in Salesforce CDP.
  • Improved Data Privacy Compliance: MetaRouter provides control over data handling and routing, helping organizations meet privacy regulations like GDPR and CCPA when integrating with Salesforce CDP.

Capabilities and Considerations

  • Event-Based Data Mapping: Supports a variety of event types (e.g., identify, page, order_completed, product_added), ensuring data is directed to the Salesforce CDP Ingestion API endpoint.
  • Automated Data Consistency: Ensures that data is formatted consistently across various events, improving data quality and segmentation capabilities in Salesforce CDP.
  • Batch Data Ingestion: Processes data in batches of 100, optimizing for efficient handling of large data volumes.

Limitations

  • Data Transformation Constraints: The integration relies on specific data mappings. Data not aligned with these mappings might result in errors or data loss.
  • Asynchronous Data Processing: Salesforce CDP processes data ingestion asynchronously, typically every three minutes, so data might not be immediately available for real-time use.

Getting Started - From Your Salesforce CDP Account

To configure your Salesforce Customer Data Platform (CDP) integration, you'll need to set up a connected app and obtain specific parameters. Here's how to acquire each:

  1. Client Identifier: This is a unique identifier for your Salesforce CDP instance. It's typically assigned during the setup of your CDP environment. If you're unsure of this value, consult your Salesforce administrator or refer to your organization's Salesforce setup documentation.
  2. Ingestion API Name: This is the name assigned to your ingestion API within Salesforce CDP. It's defined when you create an Ingestion API data stream. For guidance on setting up data streams, refer to Salesforce's documentation on Get Started with Ingestion API.
  3. Client ID: This is generated when you create a connected app in Salesforce. To set up a connected app and obtain the client ID, follow Salesforce's instructions on Enable OAuth Settings for API Integration.
  4. User Name: This is the username of the Salesforce account used for API access. Ensure that this user has the necessary permissions to interact with Salesforce CDP APIs. For information on user roles and permissions, see User Roles and Permission Sets in Data Cloud.
    • Here are the key roles recommended for users interacting with CDP APIs:
      1. Data Cloud Admin: This role grants full access to Data Cloud, allowing the user to configure and manage ingestion processes, create datasets, and control data mappings. This role is ideal for administrators who need full control over data ingestion and management.
      2. Data Cloud Integrator: This role is suitable for users responsible for data integration. It provides access to data ingestion APIs, enabling the user to connect and send data to Salesforce CDP. This role is recommended for users who will be setting up and maintaining data connections with MetaRouter.
  5. Login URL: This URL depends on your Salesforce environment:
    • Production: https://login.salesforce.com
    • Sandbox (test environment): https://test.salesforce.com
      Use the URL corresponding to your environment.
  6. Private Key: This is part of the certificate used for secure authentication. You'll need to generate a private key and a digital certificate, then upload the certificate when setting up your connected app. Salesforce provides guidance on creating a private key and certificate in their Private Key Certificate Documentation.

Getting Started - From Your MetaRouter Account

Adding a Salesforce CDP integration.

From the integration library, add a Salesforce CDP integration. Then, fill out the Connection Parameters:

Connection ParameterDescription
CLIENT_IDENTIFIERA unique identifier for the client’s environment.
INGESTION_API_NAMEThe specific name for the ingestion API being used.
CLIENT_IDThe client ID for Salesforce CDP authentication.
USER_NAMEThe username associated with the Salesforce CDP account.
LOGIN_URLThe login URL for Salesforce CDP (varies by environment).
PRIVATE_KEYThe private key for secure authentication access.

Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
anonymous_idString: Unique identifier for anonymous usersanonymousId
createdDateTime: Timestamp of the event creationoriginalTimestamp

Event Specific

Page

Output KeyDescriptionExpected Input
pathString: URL path of the page visitedcontext.page.path
titleString: Title of the page visitedcontext.page.title
urlString: Full URL of the page visitedcontext.page.url
referrerString: Referring URL of the page visitedcontext.page.referrer
event_idString: Unique identifier for the eventmessageId

Order Completed

Output KeyDescriptionExpected Input
checkout_idString: Identifier for the checkout sessionproperties.checkout_id
totalNumber: Total amount of the orderproperties.total
order_idString: Identifier for the orderproperties.order_id
revenueNumber: Revenue generated from the orderproperties.revenue
shippingNumber: Shipping cost for the orderproperties.shipping
taxNumber: Tax amount for the orderproperties.tax
couponString: Coupon code applied to the orderproperties.coupon
event_idString: Unique identifier for the eventmessageId

Product Added

Output KeyDescriptionExpected Input
cart_idString: Identifier for the cartproperties.cart_id
product_idString: Identifier for the productproperties.product_id
skuString: Stock keeping unit for the productproperties.sku
categoryString: Category of the productproperties.category
nameString: Name of the productproperties.name
brandString: Brand of the productproperties.brand
variantString: Variant of the productproperties.variant
priceNumber: Price of the productproperties.price
quantityNumber: Quantity of the product addedproperties.quantity
couponString: Coupon applied to the productproperties.coupon
positionNumber: Position of the product in the listproperties.position
urlString: URL of the productproperties.url
image_urlString: URL of the product imageproperties.image_url
event_idString: Unique identifier for the eventmessageId

Product Viewed

Output KeyDescriptionExpected Input
product_idString: Identifier for the viewed productproperties.product_id
skuString: Stock keeping unit for the viewed productproperties.sku
categoryString: Category of the viewed productproperties.category
nameString: Name of the viewed productproperties.name
brandString: Brand of the viewed productproperties.brand
variantString: Variant of the viewed productproperties.variant
priceNumber: Price of the viewed productproperties.price
couponString: Coupon applied to the viewed productproperties.coupon
positionNumber: Position of the product in the listproperties.position
urlString: URL of the viewed productproperties.url
image_urlString: URL of the product imageproperties.image_url
event_idString: Unique identifier for the viewed eventmessageId

Product List Viewed

Output KeyDescriptionExpected Input
list_idString: Identifier for the product listproperties.list_id
categoryString: Category of the product listproperties.category
event_idString: Unique identifier for the eventmessageId

Cart Viewed

Output KeyDescriptionExpected Input
cart_idString: Identifier for the cartproperties.cart_id
product_idString: Concatenated product IDsN/A - Expression
skuString: Concatenated SKUsN/A - Expression
categoryString: Concatenated categoriesN/A - Expression
nameString: Concatenated product namesN/A - Expression
brandString: Concatenated brandsN/A - Expression
variantString: Concatenated variantsN/A - Expression
priceString: Concatenated pricesN/A - Expression
quantityString: Concatenated quantitiesN/A - Expression
couponString: Concatenated couponsN/A - Expression
positionString: Concatenated positionsN/A - Expression
urlString: Concatenated URLsN/A - Expression
image_urlString: Concatenated image URLsN/A - Expression
event_idString: Unique identifier for the eventmessageId

Identify

Output KeyDescriptionExpected Input
user_agentString: User agent string of the devicecontext.userAgent
user_idString: Unique identifier for the useruserId
emailString: User's email addresstraits.email
pinterest_idString: Pinterest identifiercontext.providers.pinterest.derived_epik
tradedesk_idString: Trade Desk identifiercontext.providers.theTradeDesk.ttd_id
ip_addressString: IP address of the usercontext.ip

Recommended Identifiers

For your convenience, recommended IDs are mapped as Global parameters to ensure they are added to every event.

AttributeExampleSync Injector Required?
anonymous_ida7f5d3b1-9c8e-4e1d-842b-4f9d3a2f1b45No

Additional Salesforce CDP Documentation