Overview
WhatsApp requires pre-approved message templates for outbound conversations outside the 24-hour window. WhatsRB Cloud manages templates locally and syncs them with Meta’s API.
create, delete, and sync make round-trip calls to Meta’s API and may take several seconds.
Template lifecycle
- draft — local only, not submitted to Meta yet
- pending — submitted to Meta, awaiting review
- approved — ready to send
- rejected — declined by Meta (see
rejection_reason)
- paused — temporarily disabled by Meta
Create a template
Two formats are accepted and normalized internally:
Hash format (recommended):
Meta array format:
Variable examples
When your body contains variables ({{1}}, {{2}}), you must provide example values. Two formats are accepted:
SDK format (recommended):
Numbered format:
Category
Case-insensitive: "UTILITY", "utility", and "Utility" all work.
List templates
Fetches the latest templates from Meta and updates the local database. Useful after templates are approved or rejected.
Template status changes (approved, rejected) are also delivered via webhooks if you have the template.status event enabled.
Send a test message
- Approved templates are sent as real template messages via the Cloud API.
- Non-approved templates (draft, pending, rejected) are sent as plain text previews with variables replaced.
Clone a template
Creates a local copy with _copy appended to the name. The clone is not submitted to Meta.
Delete a template
Deletes the template locally and from Meta.
Rate limits
Meta enforces submission limits:
- 1 submission per day per template
- 10 submissions per month per template
These limits apply to resubmissions (edits to already-submitted templates), not to new templates.
Template naming
Template names must be:
- Snake_case (
order_shipped, not Order Shipped)
- Unique per business account + language combination
- Max 512 characters