What's new
- Operator-only ad info card appears at the top of the chat pane on every CTWA-attributed conversation. Shows campaign / adset / ad / creative names, the original ad copy, the click-through URL, the welcome message, and UTM parameters. Customers never see this card.
- Refresh from Meta action on the card re-runs the Marketing API enrichment on demand.
What's fixed
- Every conversation that arrived from a click-to-WhatsApp ad now reliably gets the
metaworkspace label, including any historical conversations that missed it because of a webhook race or older code path. - A new
ctwa.attribution.enrichworker job queries the Meta Marketing API on every CTWA inbound and writes back the campaign / adset / ad / creative names, so analytics and the inbox card always have the human-readable context. - The conversation attribution row now records
enrichment_status,enrichment_attempted_at, andenrichment_errorfor every attempt, so failures are visible to operators instead of staying silentlypending.
Notes
This release follows the GB Viaggi Puglia ad campaign rollout where two CTWA inbound conversations needed identical treatment in the inbox but only one of them was rendering the Meta ad badge consistently.