Weekly WhatsApp Business account health digest in Slack

By General Input

Every Monday morning, get one Slack post with each WhatsApp number's quality rating, any blocked message templates, and last week's delivery rate.

Integrations

  • WhatsApp Business
  • Slack Bot

Type

Deterministic Code

Categories

  • Operations
  • Customer Support

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them