Use cases
Bulk announcements
Send one announcement to hundreds of parents or customers, safely.
In a nutshell
Write one row per recipient first, then send each from a queue with its own reference, paced under 300 requests per minute. If anything crashes, resend everything unconfirmed - references stop duplicates.
The flow
- Choose an approved template - announcements start conversations, so they must be templates.
- Create one row per recipient in your database before sending anything.
- Queue the sends with
reference: "announcement-{id}-{recipient id}". - Pace them under your product's 300 requests per minute - across all your businesses.
- Resume after failure by resending every row not yet
202/200: the same references never send twice.
Limits that apply
| Limit | What happens |
|---|---|
| PaalChat: 300 requests/minute per product | 429 rate_limited - wait Retry-After |
Meta: the business's messaging_limit tier |
Sends beyond it fail as message.status failed |
| Meta: marketing opt-outs | 131050 failures for users who stopped marketing messages |
Check the business's messaging_limit with GET .../whatsapp
before a large send, and split the audience across days if needed.
Warning
Use UTILITY templates for information parents expect (closures, exams, fees).
Promotional content is MARKETING, costs more, and is limited more by Meta.