ctwaClid).
Wassist stores this referral and exposes it in three places:
WhatsApp only attaches the referral to the message the customer sends straight from the ad.
latestReferral lets you attribute the rest of the conversation to that ad too, including later messages, orders and handoffs.
The referral object
Every field except
messageId and createdAt can be null. WhatsApp only sends the fields that apply to the ad.
Finding conversations from an ad
The list conversations endpoint accepts three filters:referralSourceId and ctwaClid match any referral in the conversation, not just the latest one.
Reacting in real time
Everymessage.received and subscription.message.received webhook carries message.referral and latestReferral. That means your service can tag the lead or route it to a sales queue as soon as the first message arrives:
Sending conversions back to Meta
SendctwaClid to Meta’s Conversions API for Business Messaging when a WhatsApp conversation turns into a lead or a purchase. Meta then credits the conversion to the ad in Ads Manager and uses it to optimise delivery.
The dataset ID, access token and required fields come from your Meta Business setup. Check Meta’s Conversions API documentation for the current payload.
Existing conversations
Referrals are also available for messages received before this feature launched, so historical ad-driven conversations show alatestReferral too. welcomeMessage is usually null on these older messages because it wasn’t stored at the time. The click ID and ad details are filled in.
What’s Next
Webhooks
Receive
message.received events with the referral attached.Conversation Routing
Send ad-driven conversations to your own service instead of the agent.