Need help? Message us on WhatsAppWhatsApp us+1 (279) 243-3696Open chat
WebhooksAttribution

Click-to-WhatsApp ads

Someone clicks your Click-to-WhatsApp ad in Meta and messages you. Whatsable does not create the ad. The first inbound carries the click and the ad — the referral — so you can save them. This page is the map: where that referral lands, what each field is, and why you persist ctwa_clid and source_id yourself before later messages in the same chat drop them.

Does Whatsable create the Click-to-WhatsApp ad?

No. A Click-to-WhatsApp ad runs in Meta Ads. Whatsable does not create the ad.

Whatsable forwards first-inbound referral — top-level on n8n, Zapier, Make, and a webhook you created. You persist ctwa_clid and source_id yourself because later messages in the same chat usually omit them. Whatsable does not persist them for you.

Status ads can also send a referral; ctwa_clid may be omitted.

How do I map and persist the referral?

Here's the sequence, start to finish:

  1. 1Run the Click-to-WhatsApp ad in Meta Ads. Whatsable does not create the ad.
  2. 2Open the Whatsable dashboard.
  3. 3Go to Developer → add an endpoint URL, and turn on incoming. If you're creating a custom webhook instead, set incoming: true when you create it.
  4. 4When someone clicks the ad and messages you, the first inbound POSTs referral to that URL.
  5. 5Persist ctwa_clid and source_id yourself — write them to a Sheet or CRM. Whatsable does not persist them for you.
  6. 6Do not wait for a later reply. Later messages in the same chat usually omit them.

That's the core loop for any destination. The specifics of where you point it differ slightly by tool:

A webhook you built yourself.

In the Whatsable dashboard, open Developer, add an endpoint URL, and enable incoming. The first Click-to-WhatsApp inbound POSTs the referral to that URL. See https://whatsable.app/integrations/webhook

n8n.

n8n gets the same first-inbound referral. Map the top-level referral on that inbound, persist ctwa_clid and source_id, and write both to a Sheet or a CRM. Setup docs: https://whatsable.app/integrations/n8n

Agent Skill.

A Whatsable Agent Skill is not a separate event. It sees the same webhook payload, including the referral, only if that Skill sits on a webhook you created. Installing a Skill by itself doesn't deliver the referral. See https://whatsable.app/vibe-code

When is the referral present?

Yes on the first inbound. Usually gone after that.

WhenPresent / absent
First inbound after CTWA ad/post tapYes typically
Later messages, same chatUsually absent. Persist immediately
Ordinary chatAbsent
WhatsApp Status adsReferral may be present; ctwa_clid may be omitted

What's actually in the referral?

Top-level referral on the Whatsable payload (or Cloud API messages[].referral if that's the envelope you get).

FieldPlain meaningPresent / absent
referralContainer for CTWA/post attribution.First CTWA/post inbound; omit ordinary chat and most follow-ups
referral.source_typead or post.With referral
referral.source_idMeta ad or post ID.With referral. Persist
referral.source_urlAd or post URL.With referral
referral.headlineAd or post headline.With referral
referral.bodyAd or post body copy.With referral
referral.media_typeimage or video.With referral
referral.image_urlImage creative URL.When media_type is image (URLs can expire)
referral.video_urlVideo creative URL.When media_type is video
referral.thumbnail_urlVideo thumbnail URL.Video creatives
referral.ctwa_clidClick ID for Meta CAPI.Usually with ad referral; Status may omit. Persist
referral.welcome_messageOptional object. Welcome message when Meta includes it.Optional. Included only when Meta sends it with the ad click.

Who persists ctwa_clid and source_id?

You do. Whatsable forwards first-inbound referral. You persist ctwa_clid and source_id yourself because later messages in the same chat usually omit them. Whatsable does not persist them for the customer.

Status ads can also send a referral; ctwa_clid may be omitted. That is still a referral.

What would I actually use this for?

Write those fields to a Sheet or CRM, then report which creative and which platform produced the WhatsApp lead.

A CRM row that already knows the ad.

The first inbound hits n8n, Zapier, Make, or a webhook you created. You persist source_id on the contact yourself, so the next person who opens the chat can see which Meta ad started it.

A Sheet you can report from.

The same first inbound appends ctwa_clid and source_id. You persist those two yourself, then group the week by ad.

A downstream automation that joins the click to the chat.

Ads Manager saw the click. WhatsApp saw the chat. The first-inbound referral is the join — only if you persisted it.

Start Free Trial
Chat