Home/Help Center/Builder components

Templates

Template Components: Headers, Body, Footer, Buttons and Carousel

How to build every part of a WhatsApp template in VGraple CRM, header types, body variables, footer, buttons, carousel cards, authentication and limited-time offers.

By Chirag Darji · Updated 27 Aug 2026 · 7 min read

On this page
  1. Before you start
  2. Steps
  3. What you will see
  4. Settings and options
  5. Troubleshooting
  6. Related reading
WhatsApp approved message template library in VGraple CRM

A WhatsApp template in VGraple CRM is assembled from up to six parts: header, body, footer, buttons, and optionally a carousel or a limited-time offer, each with its own rules Meta enforces at review. This article covers what each component is, what it can and cannot contain, and where the builder blocks a combination Meta itself does not allow.

Builder components: first 5 of 7 steps

  1. 1Choose a header, or none
  2. 2Write the body
  3. 3Add a footer, if useful
  4. 4Add buttons
  5. 5Or switch on Carousel
The steps on this page, in order.

Before you start

  • Open the builder from Templates, then New Template, or start from a gallery template and edit its components from there.
  • Authentication-category templates use a different, much simpler builder than every other category, described in its own section below.
  • Carousel and limited-time offer are opt-in toggles near the top of the form; the rest of the component list is not shown once either is switched on, since both have their own fixed shape.

Steps

  1. Choose a header, or none. The header type picker offers six options: None, Text, Image, Video, Document and Location. A text header holds up to 60 characters and at most one variable, with no line breaks and no bold or italic formatting. An image, video or document header requires uploading a file (see media headers and sample values) and cannot contain a variable, since a variable has nothing to substitute into a file. A location header is a fixed map pin with no configuration of its own beyond the type.

Templates screen in VGraple CRM with the gallery, Meta library and sync options

  1. Write the body. This is the only required component besides a name and category. Use {{1}}, {{2}} and so on for variables, numbered in order starting from 1 with nothing skipped. The body has a 1,024-character limit and supports basic WhatsApp formatting (bold with asterisks, italic with underscores). See variables: rules, limits and best practices for the placement rules the validator checks.

  2. Add a footer, if useful. An optional line of static text up to 60 characters, shown in grey under the body on the customer's phone. A footer cannot contain a variable, since it is identical for every recipient by definition, and it cannot appear alongside a limited-time offer.

  3. Add buttons. Choose from four types: Quick Reply (a tap-to-reply shortcut, up to 3 per template), Visit Website (opens a URL, up to 2 per template, and the destination path but not the domain may contain a variable), Call Phone Number (dials a fixed number, up to 2 per template) and Copy Offer Code (copies a coupon code to the clipboard, only 1 per template). Every button label must be unique and under 25 characters, and a template can carry up to 10 buttons in total.

  4. Or switch on Carousel. Toggling "Carousel template (2-10 scrollable cards)" replaces the header, body-only view with a card builder. Every card needs the same header type across the whole carousel, its own body text up to 160 characters, and up to 2 buttons (Quick Reply, Visit Website or Call Phone Number) per card. The template still has one shared top-level body text shown above the cards.

  5. Or switch on Limited-Time Offer. Available only for Marketing-category templates. Enter the coupon code and a countdown length; the builder automatically adds a Copy Offer Code button first and requires a Visit Website button right after it, in the exact order Meta requires. Adding an offer removes any footer, since the two cannot coexist.

  6. For Authentication, use the dedicated builder. Selecting the Authentication category replaces the whole form above with four settings: whether to add Meta's standard security-recommendation sentence, the code's expiry in minutes (1 to 90), the OTP button type (Copy Code, One-Tap or Zero-Tap), and for One-Tap or Zero-Tap, the Android app's package name and signature hash so WhatsApp can hand the code directly to your app. There is no body text field, because Meta supplies the wording for this category.

What you will see

A live phone preview on the right of the builder updates as you type, showing the header, body with sample values substituted, footer and buttons the way a customer's phone will render them. The pre-submission risk score (covered in what each validator message means) sits below the preview and recalculates on every change.

Settings and options

ComponentLimitsNotes
Text header60 characters, at most 1 variableNo line breaks, no bold or italic formatting
Image / video / document header5 MB (image), 16 MB (video), 100 MB (document)JPEG or PNG images; MP4 or 3GPP video; PDF documents. No variable
Body1,024 characters, up to 10 variablesRequired for every category except Authentication
Footer60 charactersNo variables; cannot combine with a limited-time offer
ButtonsUp to 10 total; 3 Quick Reply, 2 Visit Website, 2 Call Phone Number, 1 Copy Offer CodeEvery label unique, 25 characters max
Carousel2 to 10 cards, up to 2 buttons per cardAll cards share one header type; card body up to 160 characters
Limited-time offerCoupon code plus expiry, Marketing category onlyRequires a Visit Website button; cannot combine with a footer
AuthenticationFixed layout; expiry 1-90 minutesNo body, header, footer or custom buttons of your own

Troubleshooting

SymptomLikely causeFix
"A media header carries a file, not text, so it cannot contain a variable"A variable placeholder was typed into an image, video or document header fieldRemove the variable; media headers cannot substitute values
"Footers are identical for every recipient, so they cannot contain variables"A {{n}} placeholder was added to the footerMove any personalisation into the body instead
"A footer cannot sit next to a limited-time offer"Both a footer and an offer are set on the same templateRemove the footer; the offer strip takes that space in the bubble
"COPY_CODE is required at index 0" from Meta on submissionA limited-time offer's buttons were reordered manually so the code button is not firstLet the builder manage the offer's button order; it places the code button first and the URL button second automatically
"All carousel cards must use the same header type"One card uses an image header while another uses video, for exampleSet every card to the same header type before submitting
Header formatting error on a text headerA line break or bold/italic markup was used in the header fieldHeaders are plain text only, one line, with no formatting

Once the components are built, run them through what every validator message means before submitting, and see media headers and sample values for the upload flow behind image, video and document headers.

Frequently asked questions

What header types can a WhatsApp template have?
None, Text, Image, Video, Document or Location. A text header may hold at most one variable; an image, video or document header carries an uploaded file and cannot contain a variable at all; a location header is a fixed map pin with no text.
What button types are available?
Quick Reply (a tap-to-reply shortcut), Visit Website (opens a URL, up to 2 per template), Call Phone Number (dials a number, up to 2 per template) and Copy Offer Code (copies a coupon code, only 1 per template). A template can carry up to 10 buttons in total, with at most 3 quick replies.
How many cards can a carousel template have?
Between 2 and 10 cards. Every card in a carousel must use the same header type (all image or all video, for example), and each card can carry up to 2 buttons of its own alongside the fixed body text.
What does the Authentication builder let me customise?
Only four things: whether to append Meta's standard security recommendation sentence, the code's expiry in minutes (1 to 90), the OTP button type (Copy Code, One-Tap or Zero-Tap), and for One-Tap or Zero-Tap, the Android app's package name and signature hash. The wording itself is fixed by Meta.
Can a footer and a limited-time offer be on the same template?
No. Meta does not allow a footer and a limited-time offer component together, because the offer strip occupies the same space in the message bubble the footer would use. VGraple CRM's builder removes the footer automatically when a limited-time offer is added.
What is required for a limited-time offer component?
A coupon code, a countdown expiry length, and a Visit Website button placed right after the code button. Meta pins the button order for an offer template; the Copy Code button must be first and the URL button second, and VGraple CRM's builder arranges this automatically.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.