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:
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.
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.
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.
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:
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.
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.
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.
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 Parameter
Description
CLIENT_IDENTIFIER
A unique identifier for the client’s environment.
INGESTION_API_NAME
The specific name for the ingestion API being used.
CLIENT_ID
The client ID for Salesforce CDP authentication.
USER_NAME
The username associated with the Salesforce CDP account.
LOGIN_URL
The login URL for Salesforce CDP (varies by environment).
PRIVATE_KEY
The 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 Key
Description
Expected Input
anonymous_id
String: Unique identifier for anonymous users
anonymousId
created
DateTime: Timestamp of the event creation
originalTimestamp
Event Specific
Page
Output Key
Description
Expected Input
path
String: URL path of the page visited
context.page.path
title
String: Title of the page visited
context.page.title
url
String: Full URL of the page visited
context.page.url
referrer
String: Referring URL of the page visited
context.page.referrer
event_id
String: Unique identifier for the event
messageId
Order Completed
Output Key
Description
Expected Input
checkout_id
String: Identifier for the checkout session
properties.checkout_id
total
Number: Total amount of the order
properties.total
order_id
String: Identifier for the order
properties.order_id
revenue
Number: Revenue generated from the order
properties.revenue
shipping
Number: Shipping cost for the order
properties.shipping
tax
Number: Tax amount for the order
properties.tax
coupon
String: Coupon code applied to the order
properties.coupon
event_id
String: Unique identifier for the event
messageId
Product Added
Output Key
Description
Expected Input
cart_id
String: Identifier for the cart
properties.cart_id
product_id
String: Identifier for the product
properties.product_id
sku
String: Stock keeping unit for the product
properties.sku
category
String: Category of the product
properties.category
name
String: Name of the product
properties.name
brand
String: Brand of the product
properties.brand
variant
String: Variant of the product
properties.variant
price
Number: Price of the product
properties.price
quantity
Number: Quantity of the product added
properties.quantity
coupon
String: Coupon applied to the product
properties.coupon
position
Number: Position of the product in the list
properties.position
url
String: URL of the product
properties.url
image_url
String: URL of the product image
properties.image_url
event_id
String: Unique identifier for the event
messageId
Product Viewed
Output Key
Description
Expected Input
product_id
String: Identifier for the viewed product
properties.product_id
sku
String: Stock keeping unit for the viewed product
properties.sku
category
String: Category of the viewed product
properties.category
name
String: Name of the viewed product
properties.name
brand
String: Brand of the viewed product
properties.brand
variant
String: Variant of the viewed product
properties.variant
price
Number: Price of the viewed product
properties.price
coupon
String: Coupon applied to the viewed product
properties.coupon
position
Number: Position of the product in the list
properties.position
url
String: URL of the viewed product
properties.url
image_url
String: URL of the product image
properties.image_url
event_id
String: Unique identifier for the viewed event
messageId
Product List Viewed
Output Key
Description
Expected Input
list_id
String: Identifier for the product list
properties.list_id
category
String: Category of the product list
properties.category
event_id
String: Unique identifier for the event
messageId
Cart Viewed
Output Key
Description
Expected Input
cart_id
String: Identifier for the cart
properties.cart_id
product_id
String: Concatenated product IDs
N/A - Expression
sku
String: Concatenated SKUs
N/A - Expression
category
String: Concatenated categories
N/A - Expression
name
String: Concatenated product names
N/A - Expression
brand
String: Concatenated brands
N/A - Expression
variant
String: Concatenated variants
N/A - Expression
price
String: Concatenated prices
N/A - Expression
quantity
String: Concatenated quantities
N/A - Expression
coupon
String: Concatenated coupons
N/A - Expression
position
String: Concatenated positions
N/A - Expression
url
String: Concatenated URLs
N/A - Expression
image_url
String: Concatenated image URLs
N/A - Expression
event_id
String: Unique identifier for the event
messageId
Identify
Output Key
Description
Expected Input
user_agent
String: User agent string of the device
context.userAgent
user_id
String: Unique identifier for the user
userId
email
String: User's email address
traits.email
pinterest_id
String: Pinterest identifier
context.providers.pinterest.derived_epik
tradedesk_id
String: Trade Desk identifier
context.providers.theTradeDesk.ttd_id
ip_address
String: IP address of the user
context.ip
Recommended Identifiers
For your convenience, recommended IDs are mapped as Global parameters to ensure they are added to every event.