Updated on October 28, 2026
Below are 60 WhatsApp message template examples you can adapt and submit to Meta for approval, grouped into seven industries: ecommerce, clinics, education, local services, SaaS, events and billing your own customers. Each example shows the likely category (utility or marketing), the {{1}}-style variables and a suggested button. All of them follow Meta’s review rules: no variable at the start or end of the text, sequential numbering and enough text around each variable.
The category is “likely” because Meta makes the final call based on the content. To understand the criteria, see how Meta categorizes your template.
Rules every example follows
Meta’s template review and template components pages set the limits:
| Rule | What Meta requires |
|---|---|
| Variable at the start or end | Not allowed. The body can’t start or end with a parameter |
| Numbering | Sequential: {{1}}, {{2}}, {{3}}, no gaps |
| Density | Too many variables for the message length gets the template rejected |
| Characters in variables | No #, $ or % inside a parameter |
| Samples | Every template with variables needs sample values |
| Body | Up to 1,024 characters |
| Text header | Up to 60 characters and 1 variable |
| Footer | Up to 60 characters, no variables |
| Buttons | Up to 10 in total: up to 10 quick replies, 2 URL, 1 phone number, 1 copy code |
| Button label | Up to 25 characters |
| URL with a variable | 1 variable, always at the end of the URL |
Three more habits you’ll see in the examples:
- Text between variables. Back-to-back parameters (
{{1}} {{2}}) leave the reviewer with no context. - An exit on marketing. Marketing examples include a “Stop promotions” quick reply so you can handle opt-outs from the webhook.
- No promotion in utility. Meta treats mixed content as marketing and recategorizes a promotional utility template after 1 day’s notice (template categorization).
Currency symbols stay in the fixed text, never in the variable value, because $ isn’t allowed inside a parameter. Pricing is per delivered message and depends on the recipient’s country: for recipients in Brazil, since October 1, 2026, marketing costs BRL 0.3217 and utility BRL 0.0350 (Brazilian reais). Since the same date, utility templates sent inside the customer service window are also billed.
Ecommerce (10 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 1 | Hi {{1}}, we received your order {{2}} and it’s being prepared. We’ll message you here once it ships. | Utility | URL: View order |
| 2 | Good news, {{1}}: your order {{2}} has shipped. Your tracking number is {{3}} and you can follow it at the link below. | Utility | URL: Track package |
| 3 | Hi {{1}}, your order {{2}} is waiting for payment confirmation. As soon as it clears, we’ll ship it. | Utility | URL: View order |
| 4 | Hi {{1}}, your order {{2}} is out for delivery today and should arrive by 6 pm. | Utility | URL: Track delivery |
| 5 | Hi {{1}}, your order {{2}} was delivered. If anything is wrong, reply to this message and our team will help. | Utility | Quick reply: Contact support |
| 6 | Hi {{1}}, your refund of $ {{2}} for order {{3}} has been processed and will show on your statement within 2 billing cycles. | Utility | None |
| 7 | Hi {{1}}, the payment link for order {{2}} expires in 30 minutes. Tap the button to complete your payment. | Utility | URL: Pay now |
| 8 | Hi {{1}}! You left {{2}} in your cart. We’re holding your items for a few more hours so you can check out. | Marketing | URL: Back to cart; Quick reply: Stop promotions |
| 9 | Hi {{1}}! The {{2}} on your wishlist is back in stock. Grab yours before it sells out again. | Marketing | URL: View product; Quick reply: Stop promotions |
| 10 | Hi {{1}}! This weekend, everything in {{2}} ships free. Take a look at what’s new. | Marketing | URL: Shop now; Quick reply: Stop promotions |
The most common mistake here is opening with the variable, as in “{{1}} is out for delivery today”. Example 4 says the same thing after a greeting and passes review. Abandoned cart reminders (example 8) are marketing under Meta’s rules, even though they read like a notice.
Want to try it while you read? Create a Vectalk account and send your first message through the official API. Create free account →
Clinics and medical practices (8 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 11 | Hi {{1}}, your appointment with {{2}} is confirmed for {{3}}. Please arrive 15 minutes early. | Utility | Quick reply: Confirm; Quick reply: Reschedule |
| 12 | Hi {{1}}, a reminder that tomorrow at {{2}} you have an appointment at our {{3}} location. Can you confirm? | Utility | Quick reply: I’ll be there; Quick reply: Need to reschedule |
| 13 | Hi {{1}}, your appointment on {{2}} was canceled as requested. Tap the button to book a new time. | Utility | URL: Book again |
| 14 | Hi {{1}}, your {{2}} results are now available in the patient portal. Sign in to view them. | Utility | URL: Open portal |
| 15 | Hi {{1}}, your follow-up with {{2}} should be booked by {{3}}, as recommended at your last visit. | Utility | URL: Book follow-up |
| 16 | Hi {{1}}, to complete your registration before your appointment on {{2}}, please fill out the form below. | Utility | URL: Fill out form |
| 17 | Hi {{1}}! Our {{2}} vaccination campaign has started. Book your slot at the link. | Marketing | URL: Book now; Quick reply: Stop reminders |
| 18 | Hi {{1}}! It’s been {{2}} months since your last checkup. Would you like to book a new visit? | Marketing | URL: Book now; Quick reply: Stop reminders |
Examples 17 and 18 invite the patient to a service they didn’t request, so they’re marketing. Keep diagnoses and sensitive test names out of the text: it shows on the lock screen.
Education and online courses (8 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 19 | Hi {{1}}! Your enrollment in {{2}} is confirmed. You can access the platform right now. | Utility | URL: Start course |
| 20 | Hi {{1}}, the {{2}} class starts today at {{3}}. The live room link is below. | Utility | URL: Join class |
| 21 | Hi {{1}}, the deadline for {{2}} is {{3}}. Submit it on the platform so you don’t lose the grade. | Utility | URL: Submit assignment |
| 22 | Hi {{1}}, your {{2}} certificate is ready to download in your student area. | Utility | URL: Get certificate |
| 23 | Hi {{1}}, your grade for {{2}} has been posted. See the details in your student area. | Utility | URL: View grade |
| 24 | Hi {{1}}, you haven’t opened {{2}} in {{3}} days. Your progress is saved and you can pick up where you left off. | Utility | URL: Resume |
| 25 | Hi {{1}}! Enrollment for the {{2}} cohort is open until {{3}}. Save your seat at the early-bird price. | Marketing | URL: Enroll; Quick reply: Stop promotions |
| 26 | Hi {{1}}! Students who finished {{2}} can move on to the advanced module. See what’s next. | Marketing | URL: See module; Quick reply: Stop promotions |
Example 24 is borderline: add “and get 20% off your next course” and it becomes marketing.
Local services and bookings (8 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 27 | Hi {{1}}, your {{2}} appointment is booked for {{3}}. Use the buttons below if you need to change it. | Utility | Quick reply: Confirm; Quick reply: Reschedule |
| 28 | Hi {{1}}, technician {{2}} is on the way and should arrive in about {{3}} minutes. | Utility | Phone: Call us |
| 29 | Hi {{1}}, the quote {{2}} you requested is ready. See the items and total at the link below. | Utility | URL: View quote |
| 30 | Hi {{1}}, your {{2}} service is complete. Your invoice is available at the link below. | Utility | URL: View invoice |
| 31 | Hi {{1}}, your vehicle with plate {{2}} is ready for pickup at the shop until {{3}} today. | Utility | Phone: Call us |
| 32 | Hi {{1}}, how was your {{2}} service? Reply with a score from 1 to 5 to help us improve. | Utility | Quick reply: 5; Quick reply: 3; Quick reply: 1 |
| 33 | Hi {{1}}! Your {{2}} is almost due for maintenance. Book now and skip the end-of-month rush. | Marketing | URL: Book now; Quick reply: Stop reminders |
| 34 | Hi {{1}}! Customers on the {{2}} plan get one extra cleaning this month. Book at the link. | Marketing | URL: Book now; Quick reply: Stop promotions |
The survey in example 32 is utility because it’s about one specific service and has no promotion; Meta lists feedback surveys about a specific order among its utility examples.
SaaS and software (9 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 35 | Hi {{1}}! Your {{2}} account is ready. Finish the initial setup at the link to get started. | Utility | URL: Set up |
| 36 | Hi {{1}}, there was a new sign-in to your account from {{2}} on {{3}}. If this wasn’t you, change your password now. | Utility | URL: Review sign-in |
| 37 | Hi {{1}}, your trial ends in {{2}} days. Your data stays saved if you choose a plan. | Utility | URL: See plans |
| 38 | Hi {{1}}, the {{2}} report you scheduled is ready in your dashboard. | Utility | URL: Open report |
| 39 | Hi {{1}}, your team has used {{2}} of the {{3}} included in your plan. Track usage in the dashboard. | Utility | URL: View usage |
| 40 | Hi {{1}}, your {{2}} integration stopped syncing. Reconnect it to avoid losing data. | Utility | URL: Reconnect |
| 41 | Hi {{1}}, scheduled maintenance will take place on {{2}} from {{3}} to 4 am. The system may be unstable during that time. | Utility | None |
| 42 | Hi {{1}}! We just launched {{2}}, a feature that speeds up month-end close. See how to turn it on. | Marketing | URL: Learn more; Quick reply: Stop updates |
| 43 | Hi {{1}}! Teams with more than {{2}} users save on the annual plan. Talk to us to run the numbers. | Marketing | URL: Get a quote; Quick reply: Stop promotions |
In example 37, a trial-ending notice is utility; “subscribe today at a discount” would make it marketing. For onboarding and retention flows, see WhatsApp for B2B SaaS.
Events and tickets (8 examples)
| # | Body text | Likely category | Button |
|---|---|---|---|
| 44 | Hi {{1}}! Your registration for {{2}} is confirmed. Your ticket is at the link below. | Utility | URL: View ticket |
| 45 | Hi {{1}}, just one day to go until {{2}}. Check-in opens at {{3}} at the venue. | Utility | URL: Get directions |
| 46 | Hi {{1}}, the {{2}} event has moved to a new venue. The new address is {{3}}, same time as before. | Utility | URL: View map |
| 47 | Hi {{1}}, the {{2}} livestream starts in 15 minutes. Join through the link to save your spot. | Utility | URL: Watch now |
| 48 | Hi {{1}}, the {{2}} recording is now available to registered attendees for 7 days. | Utility | URL: Watch recording |
| 49 | Hi {{1}}, your ticket for {{2}} was transferred to {{3}} as you requested. | Utility | None |
| 50 | Hi {{1}}! Early-bird pricing for {{2}} ends on {{3}}. After that, ticket prices go up. | Marketing | URL: Buy tickets; Quick reply: Stop promotions |
| 51 | Hi {{1}}! Past {{2}} attendees get early access to the next edition. Reserve before general sale. | Marketing | URL: Reserve; Quick reply: Stop promotions |
To space out sends around peak dates, see the Black Friday sending calendar.
Billing your own customers (9 examples)
WhatsApp’s Business Messaging Policy applies here: an invoice reminder to your own customer is utility, while collecting third-party debt (collection agencies, purchased portfolios) is prohibited. These examples are for the company that sold the product or service.
| # | Body text | Likely category | Button |
|---|---|---|---|
| 52 | Hi {{1}}, your {{2}} invoice for $ {{3}} is now available. | Utility | URL: View invoice |
| 53 | Hi {{1}}, a reminder that your $ {{2}} invoice is due on {{3}}. If you’ve already paid, please ignore this message. | Utility | URL: Pay invoice |
| 54 | Hi {{1}}, your $ {{2}} invoice was due on {{3}} and is still open. Pay at the link to avoid a service interruption. | Utility | URL: Pay now |
| 55 | Hi {{1}}, we received your payment of $ {{2}} for {{3}}. Thank you! | Utility | URL: View receipt |
| 56 | Hi {{1}}, your {{2}} subscription will be charged to the card ending in {{3}} in the next few days. | Utility | URL: Manage payment |
| 57 | Hi {{1}}, we couldn’t charge the card ending in {{2}}. Update your payment method to keep your access. | Utility | URL: Update card |
| 58 | Hi {{1}}, the bill for installment {{2}} is ready. Open the link to view and pay it. | Utility | URL: View bill |
| 59 | Hi {{1}}, your {{2}}-installment payment plan is set up. The first payment is due on {{3}}, as agreed. | Utility | URL: View plan |
| 60 | Hi {{1}}! Pay your {{2}} invoice by {{3}} and get 5% off. | Marketing | URL: Pay now; Quick reply: Stop promotions |
Note that example 55 ends with “Thank you!”, not with the variable. In example 60, the discount turns a billing message into marketing. Avoid threatening language too: Meta rejects templates that threaten legal action or public shaming. See WhatsApp billing reminders for a full sequence.
How to create a template through the API
A template is a JSON object with a name, language, category and components. This is example 2, with the sample values Meta requires:
{
"name": "order_shipped_tracking",
"language": "en_US",
"category": "UTILITY",
"components": [
{
"type": "BODY",
"text": "Good news, {{1}}: your order {{2}} has shipped. Your tracking number is {{3}} and you can follow it at the link below.",
"example": { "body_text": [["Anna", "10234", "1Z999AA10123456784"]] }
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Track package",
"url": "https://shop.example.com/tracking/{{1}}",
"example": ["1Z999AA10123456784"]
}
]
}
]
}
The name uses only lowercase letters, numbers and underscores, and the URL variable sits at the end of the address. Review can take up to 24 hours. If it comes back rejected, WhatsApp template rejected lists the fixes. For multi-card messages with images, see the carousel template.
How to do it with Vectalk
Vectalk is a proxy for the official WhatsApp Business API (Cloud API): templates follow Meta’s rules and the payload is the Cloud API payload. You create templates with the Create Template endpoint using your instance token (the account ID is resolved from the token) and send them with Send Template. Billing is a monthly fee plus a prepaid balance: each delivered message is deducted from the balance, and Vectalk pays Meta, with no card registered on Meta. If you’re new to the platform, start with the WhatsApp Cloud API guide or create your account.
Frequently asked questions
Can I use these examples as they are?
Yes, but adapt your company name, deadlines and links. Meta rejects a template whose body and footer are identical to another template in the same account, so don’t submit two copies of the same text.
Is the category I pick the one that sticks?
Not necessarily. Meta reviews the content and can move a utility template to marketing with 1 day’s notice. You have 60 days to appeal the change in Business Support Home.
Why can’t a variable be at the end of the text?
It’s a review rule: Meta calls leading or trailing parameters “dangling parameters” and rejects the template. Always end with a word or phrase after the last variable.
How many templates can I have?
An unverified business portfolio allows 250 templates per messaging account. With a verified portfolio and a phone number with an approved display name, the limit goes up to 6,000. You can create up to 100 templates per hour.
Official sources checked on October 28, 2026: Template fundamentals, Template components, Template review, Template categorization, WhatsApp Business Platform pricing, WhatsApp Business Messaging Policy, Vectalk: Create Template.
Put your business on the official WhatsApp
Create your account, connect your number to the official API (you can keep the app with coexistence) and start serving customers and sending messages.
