IntegrationsCDPSalesforce CDP

Salesforce CDP

Salesforce Customer Data Platform (Data Cloud) for unifying customer data, building segments, and activating audiences across the Salesforce ecosystem.

Prerequisites

Complete these steps in Salesforce before configuring Signal.

Access your Salesforce Data Cloud account

Log in to Salesforce at your org’s login URL (e.g. https://your-org.my.salesforce.com). You need a Salesforce edition that includes Data Cloud (formerly Salesforce CDP). If Data Cloud is not enabled, contact your Salesforce administrator.

Create a Connected App

Navigate to Setup > App Manager (search “App Manager” in Quick Find). Click New Connected App and configure:

  1. Give the app a name (e.g. “Datafly Signal”).
  2. Enable OAuth Settings.
  3. Set the callback URL (e.g. https://localhost/callback — this is not used for server-to-server but is required).
  4. Under Selected OAuth Scopes, add:
    • cdp_ingest_api — for Data Cloud Ingestion API access
    • api — for general API access
    • refresh_token — for token refresh
  5. Enable Client Credentials Flow under the OAuth settings.
  6. Save the Connected App.

After saving, copy the Consumer Key (Client ID) and Consumer Secret (Client Secret).

⚠️

The Consumer Secret is only shown once during creation. Copy it immediately and store it securely.

Find your Salesforce subdomain

Your subdomain is the first part of your Salesforce org URL. For example, if your URL is https://your-org.my.salesforce.com, the subdomain is your-org.

Create a Data Cloud Ingestion API dataset

Navigate to Data Cloud Setup > Ingestion API. Click New to create a new Ingestion API source:

  1. Give it a name (e.g. “Datafly Signal Events”).
  2. Define the schema for the data you will ingest.
  3. Save and note the Dataset ID (also called the Ingestion API connector ID).

Configuration

FieldTypeRequiredDescription
client_idstringYesThe OAuth 2.0 Client ID (Consumer Key) from your Connected App. Found in Setup > App Manager.
client_secretsecretYesThe OAuth 2.0 Client Secret (Consumer Secret) from your Connected App.
subdomainstringYesYour Salesforce org subdomain (e.g. your-org from your-org.my.salesforce.com).
dataset_idstringYesThe Data Cloud Ingestion API dataset ID. Found in Data Cloud Setup > Ingestion API.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Salesforce CDP or filter by CDP.
  4. Click Install, and fill in the required fields with the credentials gathered above.
  5. Click Install Integration to create the integration with a ready-to-use default configuration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/salesforce_cdp/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Salesforce CDP",
    "variant": "default",
    "config": {
      "client_id": "3MVG9...",
      "client_secret": "xxxxxxxxxxxxxxxxxxxx",
      "subdomain": "your-org",
      "dataset_id": "dataset-12345"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

Signal events are mapped to Salesforce Data Cloud Ingestion API calls as follows:

Signal EventSalesforce Data Cloud ConceptNotes
pageEngagement eventPage view data ingested as engagement events into the configured dataset
trackCustom eventEvent name and properties ingested as records in the Data Cloud dataset
identifyIndividual profile updateUser traits ingested for identity resolution and profile unification
track (purchase)Commerce eventPurchase data ingested for revenue attribution and segment building

Signal handles OAuth 2.0 token management automatically, including token refresh. Data Cloud performs identity resolution across all ingested records using its built-in matching rules.

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the Salesforce Data Cloud Ingestion API. No client-side scripts are loaded for this integration.

Testing

  1. After installing the integration, trigger a test event from your website or via the Signal event API.
  2. In Salesforce, navigate to Data Cloud > Data Explorer and query the dataset you configured to verify records were ingested.
  3. Check Data Cloud > Identity Resolution to verify the test user was matched or created.
  4. In Signal, check the Live Events view to confirm the event was delivered with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid client credentialsVerify the Client ID and Client Secret in Salesforce Setup > App Manager > your Connected App
403 ForbiddenMissing OAuth scopesEdit the Connected App and add cdp_ingest_api and api scopes
404 Not FoundIncorrect subdomain or dataset IDVerify the subdomain from your Salesforce URL and the dataset ID in Data Cloud Setup > Ingestion API
Token refresh failureConnected App deactivatedEnsure the Connected App status is Active in Salesforce Setup > App Manager
Schema validation errorData format mismatchEnsure the event properties match the schema defined in the Data Cloud Ingestion API source

Visit Salesforce Data Cloud documentation for full API reference and Ingestion API setup details.