Skip to main content
When someone taps Send message on a Click-to-WhatsApp ad (Facebook, Instagram, or WhatsApp Status) and writes to your number, Meta attaches a referral object to that inbound event. WhatsAble forwards it on your custom webhook and on n8n, Make, and Zapier triggers — so you can see which creative, platform, and click produced the lead. This page is the dedicated field dictionary for that referral object (and the first-message fields that ride alongside it). For the full inbound/outbound webhook payload, signature verification, and management API, use Message webhooks — including the live Click-to-WhatsApp ads section.

Prerequisites

  • WhatsAble account with a connected WhatsApp Business number (Embedded Signup / Coexistence supported — keep the WhatsApp Business app; do not uninstall it after connect).
  • Incoming webhook or automation trigger enabled so contact → business messages reach your endpoint (custom HTTPS webhook, or n8n / Make / Zapier).
  • HTTPS endpoint that accepts POST JSON and returns 2xx within ~10 seconds (same requirements as Message webhooks).
  • Optional: a CRM or Conversions API destination ready to store ctwa_clid and source_id as soon as they arrive (they usually appear once).
Integrations (Zapier / Make / n8n) require Pro or Agency. Custom webhooks follow your Developer settings. This page does not invent plan gates beyond that — see plans docs when live.

What referral is for

referral is typically present only on the first inbound message after the ad click. Later messages in the same chat usually omit it. Persist ctwa_clid and source_id (keyed on the contact’s phone) as soon as they arrive.
WhatsApp Status ad placements may omit ctwa_clid. Organic posts use source_type: "post" instead of "ad".

Referral object — field dictionary

Look for referral as a top-level field on the WhatsAble webhook payload, or at entry[].changes[].value.messages[].referral if the delivery includes the Meta Cloud API envelope.
Do not invent nested keys under welcome_message (for example text or type). Docs name the object only. Do not invent Meta-only names (ads_context_data, source_app, …) as WhatsAble webhook fields. Do not confuse Facebook Lead Ads form webhooks with WhatsApp CTWA referral.

First-message fields on the same event

Creative and attribution live under referral.*. The contact’s first text rides on the same inbound payload in the usual message fields — useful for CRM notes and routing, not a separate inbox creative UI schema. Do not invent inbox-only creative field names. WhatsAble documents webhook / trigger forwarding of referral; it does not publish a separate inbox “creative card” field list.

Sample payload (WhatsAble flattened shape)

video_url, thumbnail_url, and welcome_message are documented LIVE keys; they may be absent from a given sample when Meta did not send them.

Delivery paths

Field companions when mapping in each tool: Zapier fields · Make fields · n8n fields (when live).
In n8n, Make, or Zapier, add a filter or router: only treat the event as ad-attributed when referral exists (or referral.source_type is "ad"). Map referral.headline, referral.source_url, and referral.source_id into your CRM so reporting matches Meta Ads Manager.

Limits and what this does NOT do

First inbound only (typical). Do not expect referral on every message in the thread. Store ctwa_clid and source_id immediately.
Status ads may omit ctwa_clid. Other referral fields can still be present. Organic posts use source_type: "post".
  • No invent nested welcome_message children — object only until verified.
  • No invent inbox creative UI schema beyond webhook forwarding of referral.*.
  • No Facebook Lead Ads form payload as CTWA — different Meta product.
  • No legacy Bot / legacy /guides/webhooks envelope as the CTWA shape — use Message webhooks.
  • No pixel / CAPI claims beyond documented use of ctwa_clid with Meta Conversions API for Business Messaging.
  • Typing-indicator dots, native drip builder, and PRE-LIVE tickets are out of scope for this page.

Message webhooks

Full inbound/outbound payload, signatures, and CTWA section

Zapier fields

Trigger output dictionary including nested referral

Make fields

Module field dictionary for Make

n8n fields

Node field dictionary for n8n
Also: n8n overview · Make overview · Zapier overview · Click-to-WhatsApp ads (anchor).

FAQ

Do WhatsAble webhooks include Click-to-WhatsApp ad details?

Yes. When the contact’s message comes from a Click-to-WhatsApp ad (or organic post with referral), the payload includes a referral object (source_id, source_url, source_type, headline, body, media_type, creative URLs, and usually ctwa_clid). Full field list is on this page; parent payload reference: Message webhooks.

Why is referral missing on later messages?

Meta / WhatsAble typically attach referral only on the first inbound after the tap. Persist ctwa_clid and source_id keyed on phone_number when you first see them.

Where do I look in a Cloud API–shaped delivery?

Use entry[].changes[].value.messages[].referral. On the flattened WhatsAble webhook body, look for top-level referral.

Can I send ctwa_clid to Meta Conversions API?

Yes — that is the documented purpose of ctwa_clid (Business Messaging / WhatsApp). Status placements may omit the click ID; do not invent other pixel fields on this webhook.