Campaign Attribution & Greeting Templates
Track campaign/source/greeting per WhatsApp conversation via CRM, not Labels.
Where to configure lead source
Lead source, campaign, and auto-tagging are configured in **CRM → Attribution** (the sidebar label is just "Attribution", route `/crm/attribution`). That is where you create campaigns, greeting templates, and auto-tagging rules — not in Labels.
Why attribution lives in CRM, not Labels
Labels are workflow/status tags. Attribution is marketing/source data and lives in CRM (`/crm/attribution`), not Labels.
Setup example
- TikTok campaign → Greeting A → rule `contains "halo tiktok"`
- Shopee campaign → Greeting B → rule `contains "voucher shopee"`
How auto-tagging works
On the first inbound message the bot matches rules by priority and persists attribution; manual override wins.
Reading the chat badge
The chat row shows a badge; the drawer shows full attribution or `No attribution yet`.
Analytics uses campaignId
Attribution Analytics groups by source and campaignId.
Backend endpoint contract
httpGET/POST /api/attribution/campaigns
PATCH/DELETE /api/attribution/campaigns/:id
GET/POST /api/attribution/greetings
PATCH/DELETE /api/attribution/greetings/:id
GET/POST /api/attribution/rules
PATCH/DELETE /api/attribution/rules/:id
POST /api/attribution/preview { message, waId? }The dashboard proxies these. The bot persists attribution on conversation, customer, lead, and order.
Caveat
Attribution requires bot support; otherwise the dashboard uses empty/demo state and local-only mutations.