Setting Up Meta Pixel Conversion Webhook
Send call conversions to Meta through the Conversions API, server to server, so Meta can attribute calls to ads without relying on the browser pixel.
Updated 4 min read
Browse the knowledge base
Overview#
The Meta Pixel webhook template sends call conversions to Meta through the Conversions API (server to server). It lets Meta attribute calls to ads without relying on the browser pixel alone, which ad blockers and iOS restrictions often block.
It is an integration webhook: Integrations > Webhooks > New Webhook, Template Mode Conversion Pixel, template Meta Pixel. It fires only on campaigns where it is attached on the General tab.
Nothing is sent to Meta automatically. A call being marked billable or converted reaches Meta only if a Meta Pixel webhook on that event is attached to the call's campaign.
Prerequisites#
- A Meta Business account with a Meta Pixel (dataset) in Events Manager.
- The Pixel ID and a Conversions API access token (Events Manager > your pixel > Settings > Conversions API > Generate access token under Set up manually; the link appears only for users with developer privileges on the business). After your first qualifying call, check the webhook's response on the call to confirm Meta accepted the event.
- The Meta pixel installed on the landing page. The
fbcandfbpvalues come from cookies the Meta pixel sets, so the page must load the Meta SDK. - The CallGrid tracking script on the landing page with a number pool, so visitor data such as
fbc,fbp, user agent, IP and zip reach the call as tags. The script reads the Meta_fbcand_fbpcookies and sends them asfbcandfbp; create custom tagsfbcandfbpto receive them.
Setup#

- Go to Integrations > Webhooks and click New Webhook.
- Name it, for example
Meta CAPI - Medicare. - Event: choose the outcome Meta should optimize on:
- Call Converted: a sale or appointment, usually set by a postback.
- Call Billable: the call met the buyer's billable criteria. Fires when the call ends (or live, if a postback made it billable).
- Call Answered or Call Ended only for upper-funnel signals.
- Template Mode: Conversion Pixel, then Meta Pixel.
- Enter the Pixel ID and access token where the template asks for them.
- Review the request body (below), then Save Webhook.
- Open each campaign that should report to Meta and add the webhook under General > Webhooks.
Payload#

The template was upgraded on 2026-09-03 to improve Meta's match quality. The recommended fields:
Meta field | CallGrid value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Macros: [[hash:...]] is SHA-256 of the value, [[lchash:...]] is SHA-256 of the lowercased, whitespace-stripped value, and [[number:...]] sends a number instead of a string. Meta requires hashed customer identifiers, so keep ph, st and zp hashed.
To send a value, add custom_data with value and currency from a revenue tag. If Meta should record a purchase rather than a contact, change event_name to match the event your ad set optimizes for.
Testing#


- In the webhook editor, fill the test variables with sample values.
- Run the test request and confirm Meta returns success.
- In Meta Events Manager, open Test Events and confirm the event arrives (use Meta's test event code in the payload while testing, then remove it).
- Place a real call through a tracked landing page and confirm the event appears with good Event Match Quality.
Best practices#
- Run the browser pixel and this server-side event together, and keep event names consistent between them.
- Watch Event Match Quality in Events Manager; missing
fbc,fbpor IP lowers it. - Rotate access tokens and update the webhook when you do.
- CallGrid does not retry failed webhooks. If the token expires, events during that window are lost; check Events Manager for gaps after any token change.
Troubleshooting#
Symptom | Check |
|---|---|
No events in Meta | Webhook attached on the campaign General tab; the chosen event actually happened on the call |
Events arrive but low match quality |
|
Meta rejects the request | Pixel ID or token wrong or expired; unhashed identifiers |
Duplicate conversions | Several webhooks on the same event attached to the campaign, or both Call Billable and Call Converted sent with the same event name |
Do it with AI#
Ask Griddy, Claude or ChatGPT. Try: "Show me the Meta Pixel webhook response on my last converted call." Claude and ChatGPT need the CallGrid connector turned on (setup guides for Claude and ChatGPT).
The connector is read only. It looks things up and reads your data. You make the changes in CallGrid.
Was this article helpful?
Related articles
- Setting Up Google Analytics Conversion Pixel WebhookSend call conversions to a GA4 property server to server through the Measurement Protocol, so calls show up alongside your web analytics.
- Setting Up CAKE Conversion Pixel WebhookSend a conversion to CAKE when a CallGrid call converts, so CAKE can attribute the call to the right offer and affiliate and pay commissions.
- CallGrid MCP: Connect to ChatGPTAsk ChatGPT about your CallGrid account in plain English. Connect the CallGrid app once, then pull campaigns, buyers, numbers and more.