Four steps and your ads start learning from closed deals instead of junk leads. No developer needed.
⏱ About 15 minutes, one timeYour tracking fields were provisioned automatically when you installed. Nothing to configure here.
Everything lives in Meta Events Manager (business.facebook.com → Events Manager), under the business that owns your ads:
Paste all of it into the Connect Meta form. We validate live against Meta before saving — and if you included the test code, a ConnectionTest event appears in your Test events tab the moment it connects. That’s your proof the pipe works, before a single ad runs.
Copy your script tag from the app and add it to your landing pages — funnel settings, WordPress header, or your tag manager:
It instantly starts capturing fbclid, gclid, ttclid and UTMs on every visit and stamps them onto the contact automatically.
Using forms embedded on external pages? One extra minute: open the form in the builder and add these custom fields as hidden fields (they were created for you at install): ps_fbclid, ps_fbc, ps_captured_at — plus ps_gclid, ps_ttclid and ps_utm_source if you run those channels. The script fills them silently; visitors never see them. (Forms on your CRM-hosted funnels don’t need this — attribution is captured there automatically.)
Leads from Instant Forms never touch your website, so there’s no click ID to capture. Meta instead matches them by Lead ID — the highest-quality match key CAPI accepts, and the one that unlocks Conversion Leads optimization. One small workflow passes it to us:
1. In your CRM: Automation → Create Workflow, trigger Facebook Lead Form Submitted.
2. Add action Update Contact Field → pick ps_meta_lead_id (created for you at install).
3. Set the value to the merge field {{contact.facebookLeadId}} and publish.
That’s it — every lead-ad conversion now reports back to Meta with its Lead ID attached.
Creating contacts with Zapier or Make instead? Map the trigger’s lead id field — Zapier calls it ID, Make calls it Lead ID — into the same ps_meta_lead_id field in your create/update-contact step.
Tell us which stage changes fire which conversion events — dropdowns, not code:
Also set the Status triggers at the bottom of the editor: they fire when an opportunity is marked Won or Lost in any pipeline — so deals closed without a stage drag still report their value. Don’t worry about double-counting: each event fires once per opportunity, however it’s triggered.
Then drag a test opportunity into a mapped stage and watch the event appear in your dashboard — delivery status, match keys and value included. Green across the board? The feedback loop is live.
Deeper dives live in the guides library: external-site forms, Lead Ads, Zapier & Make, phone-call attribution, and stage-mapping strategy — each a five-minute read.
Stuck for more than five minutes? Don’t wrestle it — email hello@pipelinesignals.io and a human who built this will answer fast. White-glove setup is free while we’re in early access.
Pipeline Signals · dedup, retries, expiry windows and consent flags handled automatically