Delivery, read & cost reporting
Track what was delivered and read, and what it cost.
Every WhatsApp send is tracked from sent to delivered to read, with failures broken down by reason. Per-campaign numbers are on the campaign's page; a monthly rollup and cost view is at /admin/whatsapp/analytics.
The campaign funnel
Open a campaign to see its live funnel — sent, delivered, read, replied, failed — which refreshes every few seconds while sending. Below it:
- a failure breakdown with plain-language labels (invalid number, user cap reached, and so on);
- a recipient table you can filter by status or search by phone, with View chat and resend per row.

Reply attribution
If a recipient replies within 72 hours, that campaign is marked as the reason for the conversation, and the inbox thread shows a "Replying to: {campaign}" badge.
Cost tracking
WhatsApp charges per conversation, by country and message category. HexaFloww prices each delivered message from a rate card and rolls it up to the campaign's actual cost. Messages sent inside a free window (for example a reply within 24 hours of an inbound message) cost nothing and are counted as free-window savings.
Rate cards are managed at /admin/whatsapp/settings/rates and are versioned by date.
The analytics page
/admin/whatsapp/analytics has a month selector and shows:
- spend by category and by campaign;
- free-window savings;
- delivery, read, and reply rates;
- WhatsApp read rate compared with email open rate for the same period;
- quality-rating history and how much of your daily tier you used.
The actual-cost figure is shown pre-GST so it matches Meta's own billing screen; the estimate you saw in the campaign wizard is GST-inclusive, so the two won't match exactly.