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.
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
- 1Create the template in BIP or sync the ones already at Meta
- 2Wait for approval: the status changes to Approved on its own
- 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
- In the menu, click WhatsApp and open the Templates tab.
- Under All templates, each row shows the name, language, category, status and the beginning of the body.
- Filter by All categories (Marketing or Utility) and by All statuses.
- Click a template to see the preview beside it, just as the message appears on a phone.

Screenshot coming soon
2. Create the template and set its identity
- Click Create template. The New WhatsApp template screen opens.
- 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. - 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.
- Under Language, choose the language of the text: English (US) for American English.

Screenshot coming soon
3. Write the header, body and footer
- 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. - 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. - Under Footer, use Footer text (optional) for a short, fixed line, such as the store name and the offer's end date.
- 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.

Screenshot coming soon
4. Add the buttons
- Under Buttons, click Add button. You can add up to 10 buttons.
- Under Type, choose Quick reply or URL, and write the button's Text.
- For a URL button, enter the full address. For a link that changes per contact, end the URL with
{{1}}, likehttps://www.example.com/summer?coupon={{1}}, and fill in the sample. - 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.

Screenshot coming soon
5. Submit for approval
- Click Save Template. BIP submits the template to Meta, shows Template submitted to Meta and returns to the Templates tab.
- 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.
- If it's rejected, select the template: the Rejection reason appears above the preview.
- 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.

Screenshot coming soon
6. Sync your templates from Meta
- Templates with an image, video or document header and templates with a copy code button are created in WhatsApp Manager, at Meta.
- 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.
- Templates deleted at Meta leave the list at the next sync. Newly created Pending templates stay.
- A synced template's header media becomes its default media in campaigns.

Screenshot coming soon
7. Import several templates at once
- Click Import from JSON. The Import templates from JSON window opens.
- In JSON array, paste a list of templates in Meta's format:
name,category,languageandcomponents. The ready-made JSON is in Ready to copy. - Click Import. Each template goes to Meta separately.
- 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.

Screenshot coming soon
8. Test the template
- Select an Approved template and click Send test. The Test WhatsApp template window opens.
- In Lead, enter the email, ID, tracker or phone number (with + and the country code, no spaces) of one of your contacts in BIP.
- 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.

Screenshot coming soon
9. Use it in a campaign and map the variables
- In the campaign, under Channel, choose WhatsApp. The WhatsApp Template section appears.
- Under Template, choose an approved template. The list shows the name, language and category.
- Under Phone Number, keep Use account default phone number or choose another number.
- 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.
- 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.

Screenshot coming soon
Reference
Builder fields
| Section | Field | Rules |
|---|---|---|
| Identity | Name (lowercase) | Lowercase letters, numbers and underscores. Required. |
| Identity | Category | Marketing or Utility. |
| Identity | Language | English (US), Portuguese (BR), Spanish (ES) or Spanish (LATAM). |
| Header | Header type | None or Text. |
| Header | Header text | One bold line, with at most one {{1}} variable and its sample. |
| Body | Body text | Required. Variables {{1}}, {{2}}… in order, each with a sample in Variable Samples. |
| Footer | Footer text (optional) | A short, fixed line below the message. |
| Buttons | Type | Quick reply or URL. Up to 10 buttons. |
| Buttons | Text | The button label. |
| Buttons | URL | Full 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
| Message | How 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
| Category | When to use it | Sends through BIP? |
|---|---|---|
| Marketing | Offers, launches, invitations, re-engagement. | Yes |
| Utility | Notices about an existing transaction. Meta rejects or reclassifies promotional content. | Yes |
| Authentication | Access codes. The builder doesn't create them; they show up when they come from Meta. | No |
Template status
| Status | What it means |
|---|---|
| Pending | Under review at Meta. |
| Approved | Ready for campaigns and tests. |
| Rejected | Meta turned it down. Read the Rejection reason. |
| Paused | Meta paused the template because of its quality. |
| Disabled | Meta disabled the template. |
| In Appeal | The 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 part | How it appears in Variable | What 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 button | Button 2 · coupon code | A contact field with the code the person copies. |
| Image, video or document header | A separate field above the mapping | One 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 list | What goes in |
|---|---|
| first name | The first name: "Marina". |
| name | The full name: "Marina Alves". |
| The main email address. | |
| phone in national format | The phone number in the country's format. |
| "Coupon" field value | The value of the custom field Coupon. |
| formatted date from "Birth date" field | The date in the Birth date field, in YYYY-MM-DD format. |
| kpi "Points" value | The 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)
horizonte_oferta_semana_en · MARKETING
URL button: https://www.example.com/summer?coupon={{1}}
| Campaign variable | Lead field | Sample value |
|---|---|---|
| Body · {{1}} | first name | Marina |
| Body · {{2}} | "Coupon" field value | SUMMER20 |
| Header · {{1}} | first name | Marina |
| Button 1 · {{1}} | "Coupon" field value | SUMMER20 |
Saturday bake with reservations (Padaria Aurora)
aurora_fornada_sabado_en · MARKETING
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 variable | Lead field | Sample value |
|---|---|---|
| Body · {{1}} | first name | Tiago |
Enrollment is open (Escola Atlas)
atlas_matriculas_abertas_en · MARKETING
Fixed URL button: https://www.example.com/enrollment. The second button is a Quick reply.
| Campaign variable | Lead field | Sample value |
|---|---|---|
| Body · {{1}} | first name | Sofia |
| Body · {{2}} | "Course of interest" field value | English |
The three templates in JSON
Paste this into Import from JSON to create all three at once:
[
{
"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.