Create a Template in the Dashboard
This guide shows you how to build a custom message template in the Sent dashboard and submit it for review. It assumes your account has completed account setup, because template creation requires a fully onboarded account. If you have never created a template, start with the first template quickstart; for background on how templates adapt content per channel, see how templates work.
Open the template builder
In the dashboard, open Templates and create a new template. The builder shows a live per-channel preview as you edit.
Add a header (optional)
Headers appear on WhatsApp and RCS only: WhatsApp renders a native header, RCS prepends the text to the message body. A header holds up to 60 characters and at most 1 dynamic variable. Text headers cannot contain emojis, newlines, or formatting markup (*, _, ~).
Write the body
The body is the only required component and the only one that reaches SMS as well as WhatsApp and RCS. It holds up to 1024 characters. To personalize it, click Insert dynamic variable or Insert dynamic link. Variables render as yellow boxes and links as light-blue boxes.
| Dynamic Variable Type | Description |
|---|---|
| Text | Plain text content that can be personalized |
| Link | Dynamic URLs for tracking or personalization |
| Image/Media | Images or media files (WhatsApp only) |
| File | Document files (WhatsApp only) |
Give every variable a descriptive name (customerName, orderNumber) and a realistic sample value: reviewers see the sample when they evaluate the template.
If you want different wording per channel, the definition supports sms, whatsapp, and rcs body overrides alongside the multi-channel body; refer to the template definition reference.
SMS message length depends on encoding. A plain-text (GSM-7) SMS fits 160 characters; a message containing any emoji or non-Latin character encodes as Unicode and fits only 70. Longer bodies are split into billed segments (153 or 67 characters each). Remember that a variable can push a template over a limit at send time. See SMS Encoding & Message Length for the full rules and SMS Length, Segments & Cost for a live calculator.
Add a footer (optional)
Footers appear on WhatsApp and RCS only: WhatsApp renders a native footer, RCS appends the text to the message body. A footer holds up to 60 characters and cannot contain variables, emojis, newlines, or formatting markup.
Add buttons (optional)
Buttons appear on WhatsApp and RCS: WhatsApp renders interactive buttons, RCS shows the first four as suggestion chips. Click Add button and pick a type. A template holds up to 10 buttons, and button labels hold up to 25 characters.
| Button Type | Quantity allowed | Description |
|---|---|---|
| Custom Buttons | Up to 10 | Custom quick replies and preconfigured responses |
| Visit Website Buttons | Up to 2 | Static URLs, or dynamic URLs with exactly one variable at the end |
| Phone Number Button | Up to 1 | One-tap calling with country code and phone number |
| Copy Offer Button | Up to 1 | One-tap copying for OTP or offer codes |
Place the most important action first: on RCS only the first four buttons render, so order decides what users see.
Set the category and language
Both fields are detected automatically from the template content; override them manually if the detection is wrong. Choose the category (MARKETING, UTILITY, or AUTHENTICATION) that matches the message's real intent. Meta re-categorizes mismatched WhatsApp templates during review, so an honest category speeds approval.
Review the JSON
Click View JSON to see the template's definition: the same JSON you send in the definition field when you create a template via the API with POST /v3/templates. Refer to the template definition reference for every field and limit.
Save as draft or submit for review
To keep editing and testing, click Save as Draft. Drafts cannot be sent on any channel. To start approval, click Submit for Review: Meta reviews WhatsApp templates (typically 24–48 hours); when no WhatsApp Business Account is connected, Sent's compliance team reviews the template per channel. See how template approval works.
If you create templates via the API instead, the same choice is the submit_for_review field on POST /v3/templates: it defaults to false (saved as a draft), and true submits the template for review immediately after creation.
Verify and copy the template ID
The new template appears in your templates list with status DRAFT if saved, or PENDING while review is in progress. Copy its template ID; you pass it as the template id when sending messages. Store it in your own database; it is the stable key for this template across all channels.
To track approval automatically, subscribe to templates webhook events; each event carries the template ID, channel, and new status.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| The builder rejects the body | A content rule failed: bodies cannot start or end with a newline, place variables back-to-back, or contain more than two consecutive line breaks | Adjust the text; the full rules are in the content rules reference |
Template stuck in PENDING | Meta review is still in progress (typically 24–48 hours) | See template troubleshooting |
Template REJECTED | The reviewer declined the content | Revise the template and resubmit; the templates webhook event carries the rejection reason in its reason field |
Related
- Refer to the template definition reference for a full list of fields, limits, and statuses.
- Sending Messages: send with your approved template.
- Working with Templates: overview of all template documentation.
Working with Templates
Start here for Sent message templates: build one in the dashboard, look up the definition JSON in the reference, and learn how templates and approval work.
Creating a Sender Profile
Create a Sender Profile in the Sent dashboard: identity, destination countries, sender number, WhatsApp, sharing, billing, and TCR compliance settings.