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