Pardot

Salesforce Pardot (now branded Marketing Cloud Account Engagement) is a B2B marketing automation platform for lead nurturing, scoring, and pipeline acceleration.

⚠️

This integration is currently in alpha. Configuration and behaviour may change.

Prerequisites

Complete these steps in Salesforce before configuring Signal.

Access your Salesforce org with Pardot enabled

Log in to Salesforce at your org URL (e.g. https://your-org.my.salesforce.com). Pardot is administered from within Salesforce since the v5 unified API.

Find your Business Unit ID

Navigate to Setup > Quick Find > Pardot Account Setup. Your Pardot Business Unit ID is shown on this page (format 0Uv...). Copy it.

Create a Connected App

Follow the same Connected App flow described in the Salesforce CDP prerequisites:

  1. Setup > App Manager > New Connected App.
  2. Enable OAuth settings.
  3. Add scopes:
    • pardot_api — required for Pardot v5 API access.
    • api — general API access.
    • refresh_token.
  4. Enable Client Credentials Flow if available; otherwise use Authorization Code with a refresh token.
  5. Copy the Consumer Key (Client ID) and Consumer Secret.

Find your Salesforce login domain

Production: login.salesforce.com. Sandbox: test.salesforce.com. Signal uses this for OAuth token exchange.

Configuration

FieldTypeRequiredDescription
business_unit_idstringYesYour Pardot Business Unit ID (starts 0Uv).
client_idstringYesConnected App Consumer Key.
client_secretsecretYesConnected App Consumer Secret.
salesforce_login_domainselectYeslogin.salesforce.com (production) or test.salesforce.com (sandbox).

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Pardot under the Marketing Automation category.
  4. Click Install, and fill in the required fields.
  5. Click Install Integration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/pardot/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Pardot",
    "variant": "default",
    "config": {
      "business_unit_id": "0Uvxxxxxxxxxxxxxxx",
      "client_id": "3MVG9...",
      "client_secret": "xxxxxxxxxxxxxxxxxxxx",
      "salesforce_login_domain": "login.salesforce.com"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

Datafly EventPardot ConceptNotes
pageCustom prospect activitySent to the prospect’s activity history.
Product ViewedCustom prospect activityForwarded with product properties.
Order CompletedCustom prospect activity with scoreMapped to a scoring-eligible activity.
identifyProspect create/updateEmail and traits update the prospect via Pardot v5 API.

Identity

FieldSourceNotes
emailtraits.emailPardot’s primary prospect key.
firstName / lastNametraits.first_name / traits.last_nameStandard prospect fields.
companytraits.companyThe prospect’s company.
crm_lead_fid(Salesforce CRM)If a matched CRM lead exists, Pardot links automatically.

Pardot events should be sent under the marketing consent category. Pardot maintains its own opt-in fields and works alongside Salesforce CRM’s consent records — Signal forwards CMP consent state so workflows can sync opted_out appropriately.

Verify it’s working

  1. Trigger a test event from your website.
  2. In Salesforce, navigate to Account Engagement > Prospects and look up the test prospect by email.
  3. Click the prospect and check the Activity tab for Signal-delivered custom activities.
  4. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 invalid_grantWrong login domainUse test.salesforce.com for sandbox orgs, login.salesforce.com for production.
403 ForbiddenMissing pardot_api scopeEdit the Connected App and add the pardot_api scope.
Custom activity API errorsActivity type not registeredPre-create the custom activity type in Pardot Settings > Custom Activities.
Prospect not createdMissing emailPardot’s primary key is email — every identify event must include one.

See also