What are the major components of a WhatsApp template?
WhatsApp Message Template Components
A WhatsApp message template is made up of four components.
- The Body is mandatory (required in every template).
- The Header, Footer, and Buttons are optional, but if used, they must follow Metaβs strict guidelines.
These parts determine how your message looks and whether it passes Metaβs approval process.
π§± 1. HEADER (Optional)
- Appears at the top of the message.
- Can be Text, Image, Video, or Document.
- Used to grab attention or preview content.
- Limitations: Text headers β max 60 characters, no variables.
- Example:
Your order has shipped!
π 2. BODY (Mandatory)
- The main content of the template.
- Max 1024 characters.
- Supports bold, italic, strikethrough, emojis, and up to 25 variables ({{1}}, {{2}}, ...).
- Must contain meaningful information and provide clear value.
- Example:
Hi {{1}}, your order has shipped! Track it here: {{2}}
π§Ύ 3. FOOTER (Optional)
- Small static text at the bottom.
- Max 60 characters.
- No variables, formatting, or media.
- Best for disclaimers, notes, or support info.
- Example:
Thanks for shopping with us!
π 4. BUTTONS (Optional)
Buttons add interactivity to your template.
Allowed types:
- Quick Reply β Up to 3 buttons, in-app predefined responses (e.g., βConfirmβ, βCancelβ).
- Call-to-Action (CTA):
- π Call Button β Opens phone dialer.
- π URL Button β Opens a browser link (static or dynamic).
- Limit: Max 2 CTA buttons (1 Call + 1 URL).
π Comparison Table of Template Components
Component | Mandatory? | Limitations | Variables Allowed? | Example Use Case |
|---|---|---|---|---|
π§± Header | Optional | Text: 60 chars, no variables; Image: 5MB JPG/PNG; Video: 10MB MP4; Document: 10MB PDF | β No (text) | Order confirmation header or product image |
π Body | β Yes | Max 1024 chars | β Up to 25 | Hi {{1}}, your order has shipped! |
π§Ύ Footer | Optional | Max 60 chars, static only | β No | Thanks for shopping with us! |
π Buttons | Optional | Quick Reply: Max 3; CTA: Max 2 (1 Call + 1 URL); Cannot mix types | β οΈ Limited (URL buttons can contain variables) | Confirm/Cancel (Quick Replies), Call Support (CTA) |
π§ͺ Sample Template Structure (JSON)
{
"name": "order_update",
"components": [
{ "type": "HEADER", "format": "TEXT", "text": "Your order has shipped!" },
{ "type": "BODY", "text": "Hi {{1}}, your order has shipped! Track here: {{2}}" },
{ "type": "FOOTER", "text": "Thank you for shopping with us!" },
{
"type": "BUTTONS",
"buttons": [
{ "type": "URL", "text": "Track Package", "url": "https://track.com/{{1}}" },
{ "type": "PHONE_NUMBER", "text": "Call Support", "phone_number": "+1234567890" }
]
}
]
}
π Related FAQs
- How do I create a WhatsApp template?
- What is the character limit for the template body?
- Why was my template rejected by Meta?
Updated on: 22/09/2025