1. Wiki
  2. Features

WhatsApp templates: create, sync and use

Create WhatsApp templates in BIP, sync the ones you have at Meta and link each variable to a contact field to send personalized messages.

Quick answer

On the Templates tab of the WhatsApp screen, create a template with a text header, a body with variables, a footer and buttons, or sync the ones already at Meta, including those with an image, video or document. Once it's approved, pick the template in the campaign and link each variable to a contact field.

EffortNo-codeChannelWhatsAppPlanLite (paid)

Every WhatsApp message BIP sends starts from a Meta-approved template. This is where you build yours, track their approval and personalize each message with each contact's name, coupon or course of interest.

What you need

  • WhatsApp connected to BIP (see the Connect WhatsApp Business to BIP guide)
  • The custom fields that will fill the variables, such as Coupon, created in Settings
  • The message text and a sample value for each variable
  • For a header with an image, video or document: access to Meta's WhatsApp Manager

What you'll get

  • Campaign-ready templates, created without leaving BIP and sent straight to Meta for approval.
  • Personalized messages: name, coupon or any contact field in the body, the header and the buttons.
  • The templates you already have at Meta, including those with an image, video or document, brought in with one click.
  • Approval status and rejection reason that update on their own.
  • Several templates created at once from a JSON file.

How it works

  1. 1Create the template in BIP or sync the ones already at Meta
  2. 2Wait for approval: the status changes to Approved on its own
  3. 3In the campaign, link each variable to a contact field

A template has up to four parts: Header, Body, Footer and Buttons. The parts that change from person to person are the variables:

  • in the body, the variables are {{1}}, {{2}}, {{3}} and so on, in order;
  • the text header and each URL button have their own numbering and accept a single variable, always {{1}}. The header's {{1}} is a separate value from the body's {{1}};
  • during approval, Meta sees the sample values; at send time, each contact gets their own data, based on the mapping you set up in the campaign.

Step by step

1. Open the Templates tab

  1. In the menu, click WhatsApp and open the Templates tab.
  2. Under All templates, each row shows the name, language, category, status and the beginning of the body.
  3. Filter by All categories (Marketing or Utility) and by All statuses.
  4. Click a template to see the preview beside it, just as the message appears on a phone.
dash.bip.marketing/…/whatsapp?tab=templates
Templates tab with the template list, the filters and a template preview

Screenshot coming soon

Templates tab with the template list, the filters and a template preview

2. Create the template and set its identity

  1. Click Create template. The New WhatsApp template screen opens.
  2. Under Identity, fill in Name (lowercase): lowercase letters, numbers and underscores only, like horizonte_oferta_semana_en. When you leave the field, BIP adjusts the name to this format.
  3. Under Category, choose Marketing for offers, news and invitations. Choose Utility only for notices about an existing transaction, such as an order or an appointment.
  4. Under Language, choose the language of the text: English (US) for American English.
dash.bip.marketing/…/whatsapp/templates/create
New WhatsApp template screen with the Identity section: name, category and language

Screenshot coming soon

New WhatsApp template screen with the Identity section: name, category and language
  1. Under Header, choose the Header type: None or Text. With Text, write the bold line in Header text. It accepts one {{1}} variable; if you use it, fill in the sample value.
  2. Under Body, write the message in Body text, with {{1}}, {{2}} where the contact's data goes. Under Variable Samples, enter a realistic example for each one.
  3. Under Footer, use Footer text (optional) for a short, fixed line, such as the store name and the offer's end date.
  4. Keep an eye on the Preview: it shows the message live, with the samples in place of the variables.

BIP checks Meta's rules as you type. If something is off, Fix these issues before submitting: appears with the list of what to adjust, and Save Template stays disabled until you fix it.

dash.bip.marketing/…/whatsapp/templates/create
Header, Body and Footer sections filled in, with the variable samples and the live preview

Screenshot coming soon

Header, Body and Footer sections filled in, with the variable samples and the live preview

4. Add the buttons

  1. Under Buttons, click Add button. You can add up to 10 buttons.
  2. Under Type, choose Quick reply or URL, and write the button's Text.
  3. For a URL button, enter the full address. For a link that changes per contact, end the URL with {{1}}, like https://www.example.com/summer?coupon={{1}}, and fill in the sample.
  4. Use the arrows to change the order and the trash can to remove a button.

A tap on a Quick reply button counts as a reply in the campaign stats. The conversation that follows continues in the WhatsApp Business app.

dash.bip.marketing/…/whatsapp/templates/create
Buttons section with a URL button with a variable and a quick reply button

Screenshot coming soon

Buttons section with a URL button with a variable and a quick reply button

5. Submit for approval

  1. Click Save Template. BIP submits the template to Meta, shows Template submitted to Meta and returns to the Templates tab.
  2. The template joins the list with the status Meta returns, usually Pending. When Meta decides, the status changes on its own to Approved or Rejected.
  3. If it's rejected, select the template: the Rejection reason appears above the preview.
  4. Meta may change a template's category when it decides the content belongs to another category. BIP always shows the category Meta set.

BIP doesn't edit a template once it's submitted. To change the text, create another template with a new name. Delete removes the template from BIP and from your Meta account.

dash.bip.marketing/…/whatsapp?tab=templates
Template list with a newly submitted Pending template and a Rejected one with its rejection reason

Screenshot coming soon

Template list with a newly submitted Pending template and a Rejected one with its rejection reason

6. Sync your templates from Meta

  1. Templates with an image, video or document header and templates with a copy code button are created in WhatsApp Manager, at Meta.
  2. On the Templates tab in BIP, click Sync from Meta. BIP brings in every template on your account, with category, status and rejection reason, and shows when each one was synced.
  3. Templates deleted at Meta leave the list at the next sync. Newly created Pending templates stay.
  4. A synced template's header media becomes its default media in campaigns.
dash.bip.marketing/…/whatsapp?tab=templates
Template with an image in the header, synced from Meta, in the Templates tab preview

Screenshot coming soon

Template with an image in the header, synced from Meta, in the Templates tab preview

7. Import several templates at once

  1. Click Import from JSON. The Import templates from JSON window opens.
  2. In JSON array, paste a list of templates in Meta's format: name, category, language and components. The ready-made JSON is in Ready to copy.
  3. Click Import. Each template goes to Meta separately.
  4. Check the result: the total that succeeded and failed and, on each row, the name and the error, if any. A template with an error doesn't hold up the others.
dash.bip.marketing/…/whatsapp?tab=templates
Import templates from JSON window with the import result for each template

Screenshot coming soon

Import templates from JSON window with the import result for each template

8. Test the template

  1. Select an Approved template and click Send test. The Test WhatsApp template window opens.
  2. In Lead, enter the email, ID, tracker or phone number (with + and the country code, no spaces) of one of your contacts in BIP.
  3. Fill in the body Variables and click Send Test. The message is real and goes out from the default number.

This test fills in only the body variables. For templates with a variable in the header or in a button, save the campaign and use Test Campaign: that test follows the full variable mapping.

dash.bip.marketing/…/whatsapp?tab=templates
Test WhatsApp template window with the contact and the variable values

Screenshot coming soon

Test WhatsApp template window with the contact and the variable values

9. Use it in a campaign and map the variables

  1. In the campaign, under Channel, choose WhatsApp. The WhatsApp Template section appears.
  2. Under Template, choose an approved template. The list shows the name, language and category.
  3. Under Phone Number, keep Use account default phone number or choose another number.
  4. If the template has a media header, you'll see Header image (for an image, so you can upload the file) or Header media URL (for a video or document). It's a single media file for the whole send. Left blank, the template's own media is used.
  5. Under Variable mappings, click Add variable mapping for each variable. Under Variable, choose the part of the template, such as Body · {{1}}. Under Lead field, choose the data that takes its place.

Each variable is mapped only once, and the campaign can only be activated when every variable is mapped. If you switch templates, the mapping and the media are cleared. On BIP Full, the Send WhatsApp node in Flows uses the same mapping.

dash.bip.marketing/…/campaigns
WhatsApp Template section of the campaign with the template, the number and the variable mapping to contact fields

Screenshot coming soon

WhatsApp Template section of the campaign with the template, the number and the variable mapping to contact fields

Reference

Builder fields

SectionFieldRules
IdentityName (lowercase)Lowercase letters, numbers and underscores. Required.
IdentityCategoryMarketing or Utility.
IdentityLanguageEnglish (US), Portuguese (BR), Spanish (ES) or Spanish (LATAM).
HeaderHeader typeNone or Text.
HeaderHeader textOne bold line, with at most one {{1}} variable and its sample.
BodyBody textRequired. Variables {{1}}, {{2}}… in order, each with a sample in Variable Samples.
FooterFooter text (optional)A short, fixed line below the message.
ButtonsTypeQuick reply or URL. Up to 10 buttons.
ButtonsTextThe button label.
ButtonsURLFull address. For a dynamic link, one {{1}} variable at the end, with a sample.

For a header with an image, video or document, or a copy code button: create the template in WhatsApp Manager and use Sync from Meta.

Validation messages

MessageHow to fix it
The message body cannot start with a variable.Start with text: "Hi {{1}}!".
The message body cannot end with a variable.End with text or punctuation after the last variable.
Add text between variables — two variables cannot be next to each other.Separate the variables with words.
Number the variables in order, starting at {{1}} with no gaps.Use {{1}}, {{2}}, {{3}}, with no gaps.
Provide a sample value for every variable in the body.Fill in all the Variable Samples.
The header supports at most one variable.Keep only {{1}} in the header.
Provide a sample value for the header variable.Fill in the sample below Header text.

Categories

CategoryWhen to use itSends through BIP?
MarketingOffers, launches, invitations, re-engagement.Yes
UtilityNotices about an existing transaction. Meta rejects or reclassifies promotional content.Yes
AuthenticationAccess codes. The builder doesn't create them; they show up when they come from Meta.No

Template status

StatusWhat it means
PendingUnder review at Meta.
ApprovedReady for campaigns and tests.
RejectedMeta turned it down. Read the Rejection reason.
PausedMeta paused the template because of its quality.
DisabledMeta disabled the template.
In AppealThe rejection was appealed and is under review again at Meta.

BIP also shows the other statuses Meta reports, such as Flagged, Limit Exceeded, Locked, Archived, Unarchived, Reinstated, Pending Deletion and Deleted. Only Approved templates in Marketing or Utility appear in campaigns.

Variables at send time

Template partHow it appears in VariableWhat to fill in
Body {{n}}Body · {{1}}One contact field for each variable.
Text header {{1}}Header · {{1}}One contact field.
URL button {{1}}Button 1 · {{1}}One contact field. The value goes at the end of the link.
Copy code buttonButton 2 · coupon codeA contact field with the code the person copies.
Image, video or document headerA separate field above the mappingOne image or URL for the whole send. Left blank, the template's media is used.

The button number follows the order of the buttons in the template. Templates with a location header can't be used in campaigns.

Most-used contact fields

The Lead field list names the data in English. The most common ones:

In the listWhat goes in
first nameThe first name: "Marina".
nameThe full name: "Marina Alves".
emailThe main email address.
phone in national formatThe phone number in the country's format.
"Coupon" field valueThe value of the custom field Coupon.
formatted date from "Birth date" fieldThe date in the Birth date field, in YYYY-MM-DD format.
kpi "Points" valueThe value of a KPI, such as Points.

Approval tips

  • Pick the right category: offers and promotions are Marketing. Utility is only for an existing transaction.
  • Use realistic samples for each variable. They're how Meta understands the message.
  • Say who's talking: put the business name in the body or the footer.
  • Write text before and after the variables, with no variables side by side.
  • Use full links on your own domain, with no URL shorteners.
  • Choose the Language of the text you wrote.
  • Don't ask for sensitive data, such as ID documents or passwords.

Ready to copy

Before using these, create the Coupon and Course of interest fields in Settings → General → Fields, with the String type. Replace www.example.com with your website's address.

Weekly offer with a coupon (Loja Horizonte)

URL button: https://www.example.com/summer?coupon={{1}}

Campaign variableLead fieldSample value
Body · {{1}}first nameMarina
Body · {{2}}"Coupon" field valueSUMMER20
Header · {{1}}first nameMarina
Button 1 · {{1}}"Coupon" field valueSUMMER20

Saturday bake with reservations (Padaria Aurora)

Both buttons are Quick reply buttons. Anyone who taps either one within 24 hours of the send counts under Replies, and the reservation continues in the WhatsApp Business app.

Campaign variableLead fieldSample value
Body · {{1}}first nameTiago

Enrollment is open (Escola Atlas)

Fixed URL button: https://www.example.com/enrollment. The second button is a Quick reply.

Campaign variableLead fieldSample value
Body · {{1}}first nameSofia
Body · {{2}}"Course of interest" field valueEnglish

The three templates in JSON

Paste this into Import from JSON to create all three at once:

whatsapp-templates.json
[
  {
    "name": "horizonte_oferta_semana_en",
    "category": "MARKETING",
    "language": "en_US",
    "components": [
      { "type": "HEADER", "format": "TEXT", "text": "An offer for {{1}} at Loja Horizonte", "example": { "header_text": ["Marina"] } },
      { "type": "BODY", "text": "Hi {{1}}! This week, the Loja Horizonte summer collection is 20% off. Use coupon {{2}} online or in store through Sunday. Happy shopping!", "example": { "body_text": [["Marina", "SUMMER20"]] } },
      { "type": "FOOTER", "text": "Loja Horizonte · Offer valid through Sunday" },
      { "type": "BUTTONS", "buttons": [
        { "type": "URL", "text": "View collection", "url": "https://www.example.com/summer?coupon={{1}}", "example": ["https://www.example.com/summer?coupon=SUMMER20"] }
      ] }
    ]
  },
  {
    "name": "aurora_fornada_sabado_en",
    "category": "MARKETING",
    "language": "en_US",
    "components": [
      { "type": "HEADER", "format": "TEXT", "text": "Special Saturday bake" },
      { "type": "BODY", "text": "Hi {{1}}! This Saturday, Padaria Aurora is pulling sourdough bread and our house apple pie fresh from the oven. Reserve by Friday and pick up from 7 a.m. Want us to set one aside for you?", "example": { "body_text": [["Tiago"]] } },
      { "type": "FOOTER", "text": "Padaria Aurora · Pickup at the counter" },
      { "type": "BUTTONS", "buttons": [
        { "type": "QUICK_REPLY", "text": "Save me one" },
        { "type": "QUICK_REPLY", "text": "Not now" }
      ] }
    ]
  },
  {
    "name": "atlas_matriculas_abertas_en",
    "category": "MARKETING",
    "language": "en_US",
    "components": [
      { "type": "BODY", "text": "Hi {{1}}! Enrollment for the {{2}} course at Escola Atlas is open, with evening and Saturday classes. Save your spot by Friday and get 30% off your first monthly fee. Tap the button to see class times and prices.", "example": { "body_text": [["Sofia", "English"]] } },
      { "type": "FOOTER", "text": "Escola Atlas · 2027 enrollment" },
      { "type": "BUTTONS", "buttons": [
        { "type": "URL", "text": "See class times", "url": "https://www.example.com/enrollment" },
        { "type": "QUICK_REPLY", "text": "Talk to the school" }
      ] }
    ]
  }
]

How to measure

  • On the Templates tab, filter All statuses → Pending to see what's still under review, and by Rejected to read each Rejection reason.
  • Click Sync from Meta whenever you want to check the status of all your templates at once. The preview shows when each template was synced.
  • Before the first campaign, do a test send and check the text with the contact's real data on your phone.
  • To compare templates, send each one to part of your audience and compare Read Rate and Reply Rate in Campaign Stats.

Frequently asked questions

Why can't I create a template with an image in BIP?

BIP's builder creates text headers. For an image, video or document, create the template in WhatsApp Manager, at Meta, and click Sync from Meta. In the campaign, you choose the media for the send or use the template's own.

Can I edit an approved template?

Not in BIP. Create a new template with another name and the updated text, and delete the old one if you won't use it anymore. If you edit the template in WhatsApp Manager, click Sync from Meta to bring the new version into BIP.

Why doesn't my template show up in the campaign?

The campaign lists only Approved templates in the Marketing and Utility categories. Check the status on the Templates tab. If the template was created directly at Meta, click Sync from Meta first.

What's the difference between Marketing and Utility?

Marketing is for offers, news and invitations. Utility is for notices about something the customer already did, such as an order or an appointment. If the content of a Utility template is promotional, Meta rejects it or changes its category to Marketing.

See also