Weekly WhatsApp broadcast performance report in Slack
Every Monday, see which WhatsApp campaigns landed, which ones failed, and what to fix next, with a running history that makes the report smarter each week.
Every Monday at 9am, build me a plain-English report on how last week's WhatsApp broadcast campaigns performed, log the numbers so they accumulate over time, and post the summary to Slack.
Start in Kapso. Use List Broadcasts to pull recent broadcast campaigns, which come back most recent first, and keep the ones that finished in the last seven days. Kapso platform list endpoints are page paginated with page and per_page, so page through the results until you have covered the whole seven day window rather than assuming the first page is enough. If a broadcast has no clear completion timestamp, fall back to whatever send or update timestamp is available, and if you still cannot confidently place it in time, leave it out of the rates and note it as skipped.
For each qualifying campaign, use Kapso's List Recipients to read per-recipient delivery status. Page through every page of recipients using page and per_page, because a campaign with a large recipient list will otherwise give you rates computed from a partial sample, which is worse than no number at all. Count recipients by status and compute the delivered rate, read rate, and failed rate as a share of the recipients you actually retrieved. Keep the raw counts next to the percentages so the figures can be audited later.
Before writing anything new, use Google Sheets Get Values to read the existing history sheet, and compute a trailing average failure rate from the campaigns already logged there. That prior history, not this week's data, is the baseline you compare against. If the sheet is empty or has only a header row, skip the comparison for this run, say plainly in the Slack message that the baseline is still building, and carry on.
Then use Google Sheets Append Values to append one row per campaign to the same sheet, so the history grows week over week. Each row should carry the run date, the campaign name and id, the date it finished, the total recipients counted, the delivered, read, and failed counts, and the delivered, read, and failed rates. If the sheet has no header row yet, write one first so the history stays readable.
Finally, use Slack Bot's Send a Message to post the summary. Rank the campaigns by engagement, using read rate as the primary signal and delivered rate as the tiebreaker. Call out any campaign whose failure rate is meaningfully worse than the trailing average, and treat that as a failure rate at least 1.5 times the trailing average and at least 2 percentage points above it, so that a very low baseline does not trigger false alarms every week. When you flag one, give both its rate and the baseline rate so the comparison is visible. Close with a short set of concrete suggestions for what to change next time, grounded in what the numbers actually show rather than generic advice.
Kapso marks its broadcasts API as alpha and subject to change, so field names and availability may shift under you. Never let one missing or renamed field fail the whole run. If a recipient status field is missing, treat those recipients as unknown, exclude them from the rate denominators rather than counting them as failures, and report how many were unknown. If a single campaign cannot be read at all, skip it, keep processing the rest, and list what was skipped and why at the bottom of the Slack message. Only report a hard failure if nothing at all could be retrieved.
If no campaigns finished in the last seven days, still post a short Slack message saying nothing went out that week, rather than staying silent. Write the whole report for a marketing lead rather than an engineer: no field names, no status codes, just what happened, what stands out, and what to do about it.
Example output
What does this prompt do?
- Every Monday morning, gathers up the WhatsApp broadcast campaigns that finished in the last seven days.
- Works out how many people actually received each message, how many read it, and how many never got it, then turns those counts into clear delivered, read, and failure rates.
- Adds one row per campaign to a Google Sheet, so you build a running history instead of a throwaway snapshot.
- Posts a plain-English Slack summary that ranks campaigns by engagement, flags any campaign failing far more often than your usual rate, and suggests what to change next time.
What do I need to use this?
- A Kapso account with WhatsApp broadcast campaigns you have already sent
- A Google account and a spreadsheet where the weekly history can accumulate
- A Slack workspace and a channel where the Monday report should land
How can I customize it?
- Change the timing: run it Friday afternoon instead of Monday morning, or move to a fortnightly or monthly review.
- Change where it lands: post to a different Slack channel, or send it straight to whoever owns messaging.
- Change how touchy the warning is: raise or lower the bar for calling a campaign's failure rate unusual, or add a second alert for read rate falling below your target.
FAQs
Do I need to have sent broadcasts already for this to work?
What happens on the very first run, when the spreadsheet is still empty?
Why write to a spreadsheet as well as posting to Slack?
Will this break if Kapso changes how broadcast reporting works?
Why does the failure rate matter more than the other numbers?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop sending WhatsApp broadcasts into the void.
Get a ranked, plain-English read on every campaign each Monday, plus an early warning when your delivery quality starts slipping.