Skip to main content

Attribution · n8n template

Facebook CAPI — Server-Side Lead Tracking

Sends Lead and Purchase events straight from your CRM to the Facebook Conversions API, so conversions still report when the browser pixel is blocked.

7 nodes~30 minutes to configureNo credentials included

The problem

Browser pixels miss a large share of conversions — iOS privacy settings, ad blockers and cookie banners all suppress them. Facebook then optimises against incomplete data, and your reported cost per lead is wrong in a direction that makes you turn off campaigns that were actually working.

What this workflow does

This template fires server-side from your CRM the moment a lead genuinely converts. Every piece of personal data is SHA-256 hashed inside n8n before it leaves your infrastructure, which is what the Conversions API requires. Events carry a deduplication ID so they reconcile with the browser pixel instead of double-counting, and rejected events raise a Slack alert rather than failing silently.

How it works

  1. Your CRM posts a conversion event to the webhook.
  2. A Code node normalises and SHA-256 hashes email, phone and name — raw PII never leaves n8n.
  3. The event is sent to the Conversions API with an event_id that matches the browser pixel for deduplication.
  4. The Facebook response is checked for events_received.
  5. Anything rejected posts to Slack with the payload so it can be fixed the same day.

What it connects

  • n8n
  • Facebook Conversions API
  • GoHighLevel
  • Slack

Get the template

The download is the raw n8n JSON. Import it via Workflows → Import from File, replace the YOUR_* placeholders with your own IDs, and connect your own credentials. Nothing is pre-filled and no account of ours is referenced.