What are the major components of a WhatsApp template?

What are the major components of a WhatsApp template?

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 (, ).
  • Must contain meaningful information and provide clear value.
  • Example:
    Hi , your order has shipped! Track it here:

🧾 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).

⚠️ Important Rule: You must choose either Quick Replies or CTAs — they cannot be mixed in the same template.


📊 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 , 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 , your order has shipped! Track here: " },    { "type": "FOOTER", "text": "Thank you for shopping with us!" },    { "type": "BUTTONS", "buttons": [      { "type": "URL", "text": "Track Package", "url": "https://track.com/" },      { "type": "PHONE_NUMBER", "text": "Call Support", "phone_number": "+1234567890" }    ]}  ]}

📎 Related FAQs


Pro Tip: Keep the Body focused and personalized with variables, while using Headers and Buttons strategically for attention and action. Footers should remain simple and static.