Weekly WhatsApp Business account health digest in Slack
Every Monday morning, get one Slack post with each WhatsApp number's quality rating, any blocked message templates, and last week's delivery rate.
Every Monday at 9am, post a WhatsApp Business account health digest to Slack. Build this as a deterministic code workflow on a cron trigger rather than an agent: every field comes from a known list or analytics call and the output layout is fixed, so there is no judgement to make at runtime.
Start with WhatsApp List Phone Numbers to pull every business number registered under my WhatsApp Business Account. For each number, capture the display name, the verification status, the quality rating (green, yellow or red) and the current messaging tier or throughput limit. The messaging tier caps how many business-initiated conversations a number can start in a rolling 24 hours (250, 1K, 10K or 100K), and a quality rating drop pushes the number down a tier, so both matter and both belong in the digest.
Then call WhatsApp List Message Templates for the same business account and pick out every template that is not in an approved state. Rejected, paused, pending and disabled all count as problems. For each one, record the template name, its language, its category (authentication, marketing or utility) and its current status, plus the rejection reason when Meta provides one.
Next, call WhatsApp Get Messaging Analytics for the past seven days, passing start and end timestamps covering the last full week with daily granularity, and total the sent and delivered message counts across that window. Then call WhatsApp Get Pricing Analytics over the exact same window to get what that messaging cost.
Format all of it into a single Slack Bot Send a Message post to the channel I pick. Lead with the reporting window and the week's totals: messages sent, messages delivered, the delivered-versus-sent rate as a percentage, and total cost. Follow that with one section per phone number showing its display name, verification status, quality rating and messaging tier. Finish with an explicit callout that lists every rejected or paused template by name, status and reason, because a template silently leaving the approved state breaks any campaign depending on it. If nothing is in a bad state, say so in a single line rather than dropping the section entirely.
Two implementation notes. First, scoping: List Phone Numbers, List Message Templates, Get Messaging Analytics and Get Pricing Analytics are all scoped to the WhatsApp Business Account ID, while any phone-number-specific lookup such as Get Phone Number uses the Phone Number ID. Second, send exactly one Slack message containing every section, not one message per phone number.
What does this prompt do?
- Checks every WhatsApp business phone number each Monday and reports its verification status, quality rating and current sending limit
- Flags any message template that is rejected, paused or still waiting for approval, so a broken campaign gets caught before you try to send it
- Summarizes the past seven days of messaging: how many messages went out, how many were delivered, and what that cost
- Posts it all as one tidy Slack message with a section per phone number and a clear callout for problem templates
What do I need to use this?
- A WhatsApp Business account connected to General Input (a business account, not a personal WhatsApp)
- At least one registered business phone number on that account
- A Slack workspace and the channel where you want the Monday digest to land
- Admin access to your WhatsApp Business account so the connection can read numbers, templates and analytics
How can I customize it?
- Change the schedule: run it daily during a big campaign, or twice a week instead of every Monday
- Send it to a different Slack channel, or DM it to whoever owns customer messaging
- Adjust the reporting window from seven days to thirty, or change which template states count as a problem worth calling out
FAQs
Does this work with a personal WhatsApp account?
What is a quality rating and why should I care?
Why does a rejected or paused template matter so much?
Will it tell me why a template was rejected?
What if I only have one phone number?
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 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.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
Catch WhatsApp problems before your customers do.
Set this up once and every Monday morning your team sees exactly which numbers are healthy, which templates are blocked, and how last week's messages actually landed.