Pardot

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

Why route Pardot through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Pardot even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Token lifecycle is handled for you. Signal obtains and refreshes the OAuth credentials Pardot requires, so nothing expires quietly in the middle of a campaign.
  • One consent decision governs every destination. Pardot is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

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"
  }'

API endpoint

POST https://pi.pardot.com/api/v5/objects/prospects/do/upsertLatestByEmail

Allow egress to pi.pardot.com from the network your delivery workers run on.

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