Salesforce

Connect Salesforce, map Opportunity stages to Meta CAPI events, then install the one-click app. Works with production and sandbox orgs.

Before you start

You'll need a Salesforce account (production or a free Developer Edition / sandbox) and admin rights in that org to install the app. The whole setup takes about five minutes.

Salesforce has no app-level webhook, so — unlike HubSpot or Zoho — there is one extra step: a one-click managed-package install that lets your org send stage changes to AdsPing. No code, Flow, or Apex required.
1

Connect Salesforce

Open your pixel → Integrations → Salesforce. Pick Production or Sandbox, then Connect.

Choose the environment that matches your org (Production uses login.salesforce.com, Sandbox uses test.salesforce.com), then click Connect Salesforce. Approve access on the Salesforce consent screen.

2

Pick a pipeline & map stages

After connecting, choose the Opportunity pipeline and map each stage to a Meta CAPI event.

AdsPing reads your Opportunity stages automatically. Map the ones that matter — for example Closed Won → Purchase. Turn on Use deal value to send the Opportunity Amount, or set a fixed value for lead-style events.

3

Install the AdsPing app

One click — no Flow, Apex, or code. This lets your org send stage changes to AdsPing.

In the Install the AdsPing app card, click Install AdsPing in Salesforce. Sign in to your org, choose Install for Admins Only, and click Install. Approve third-party access if asked.

The package routes by your Salesforce org id, so the same install link works for everyone — there's nothing else to configure inside Salesforce.
4

Test it

Move an Opportunity into a mapped stage and watch it arrive.

Drag any Opportunity into a stage you mapped (e.g. Closed Won). Within ~60 seconds it appears in the Recent activity feed on the AdsPing Salesforce page, and — if your pixel has a Meta test event code — in Meta Events Manager → Test Events.

Troubleshooting

  • Nothing shows up after moving a deal — make sure you moved it into a stage you actually mapped. Stages that aren't mapped are ignored by design.
  • Install conflict — if you previously added the trigger by hand, remove that Apex class/trigger before installing the package (same names conflict).
  • Low match quality (EMQ 0) — attach a contact with an email/phone to the Opportunity so AdsPing can include it.

The app sends a tiny JSON payload ({ orgId, opportunityIds }) to AdsPing on each stage change; AdsPing re-reads the Opportunity from Salesforce to confirm the current stage before emitting.

Was this page helpful?