50 WhatsApp Broadcast Message Templates (Copy and Paste) + Approval Rules
Below are 50 WhatsApp broadcast templates you can copy, paste and submit: 15 utility, 20 marketing, 5 authentication and 10 written for specific industries. Every one fits inside Meta’s real limits — 1,024 characters in the body, 60 in the header, 60 in the footer, 25 per button. But the most useful thing on this page is not the templates. It is the category rule: in the US a marketing message costs $0.0250 and a utility message costs $0.0034, so the same message written as a genuine order update costs roughly a seventh as much. Get the category right and you cut your bill by 85%.
Most template lists hand you ten examples and wish you luck. They do not tell you the character limits, so your template fails when a long customer name pushes it over. They do not tell you that putting a discount code in an order confirmation is a guaranteed rejection. And they do not mention that you cannot edit an approved template — you have to build a new one and retire the old.
This guide gives you the WhatsApp broadcast message templates and the rules together, because templates without the rules are just 50 rejections waiting to happen.
Table of Contents
What is a WhatsApp broadcast template?
A WhatsApp broadcast template is a message you write in advance, send to Meta for approval, and then send to many customers at once — with little gaps in it that fill in automatically with each person’s details.
Think of it like a school letter home. The teacher writes one letter, prints 30 copies, and writes a different child’s name at the top of each. The letter is the template. The name is the variable. WhatsApp calls those gaps {{1}}, {{2}} and so on.
You need an approved template for any message you send outside the 24-hour window that opens when a customer messages you first. Inside that window you can reply normally.
The parts of a template
| Part | What it is | Limit |
|---|---|---|
| Name | The internal label, never seen by customers | 512 characters, lowercase letters, numbers and underscores only |
| Header | A short title, or an image, video or document | 60 characters of text, exactly one variable |
| Body | The actual message | 1,024 characters, counted after variables are filled in |
| Footer | A small line underneath, often the opt-out | 60 characters, static text, no variables allowed |
| Buttons | Quick replies, or a link or phone button | 25 characters per label |
The limit that catches everybody is the body. That 1,024 characters counts the finished message, so a template that looks fine in the editor can fail when {{1}} turns out to be “Priyanka Venkataraman” instead of “Jo”. Write with your longest realistic values and leave 10–20% spare.
The three categories, and why the category decides your bill
Every template belongs to one of three categories. Meta decides which, and that decision sets your price.
| Category | What it is for | Cost per message (US) | Cost per message (India) |
|---|---|---|---|
| Utility | Order updates, receipts, reminders — things tied to something the customer did | $0.0034 | $0.0014 |
| Marketing | Offers, promotions, announcements, anything selling | $0.0250 | $0.0118 |
| Authentication | One-time codes | $0.0014 (India local) | $0.0304 international |
Read those two columns again. In the US, marketing costs 7.4 times more than utility. Send 10,000 messages and that is $250 versus $34.
So before you write anything, ask: is this genuinely an update about something this customer did, or is it a promotion? If it is a real update, write it as one and pay a seventh of the price. If it is a promotion, write it honestly as marketing and pay for it. What you must not do is dress a promotion up as an update — that is the single most common rejection, and it is covered below.
One thing the category rule does not do is protect your number. Approved templates keep you compliant; sending volume too fast, to people who never opted in, is what gets accounts restricted. That is a separate set of rules, and I have written them up in how to send bulk WhatsApp messages without getting banned.
How to create effective broadcast message templates for business communication?
Effective broadcast templates follow one structure: name the customer, say exactly what happened or what is on offer, give one clear next step, and make the opt-out visible. Keep the body under about 300 characters even though 1,024 is allowed, use variables for data rather than sentences, and write one template per purpose instead of one template trying to do three jobs.
Here is the seven-part structure that works:
| Part | What goes in it | Example |
|---|---|---|
| 1. Greeting with name | One variable, nothing clever | Hi {{1}}, |
| 2. The point, in one sentence | Why you are writing, immediately | your order #{{2}} is on its way. |
| 3. The useful detail | Dates, amounts, times — the stuff they want | It should arrive on {{3}}. |
| 4. One action | A single next step, not three | Track it below. |
| 5. A human line | So it does not read like a robot | Any problems, just reply to this message. |
| 6. Footer | Opt-out, every time | Reply STOP to unsubscribe |
| 7. Button | The action, in 25 characters or fewer | Track order |
Three rules that come from the limits themselves:
- Variables hold data, not sentences.
{{1}}should be “Sarah” or “ORD-4821” or “14 October”, never “we have a fantastic offer for you”. Meta rejects variables containing promotional phrases. - Every variable needs a realistic sample. When you submit, give “Sarah Ahmed” and “ORD-4821”, not “xxx” or “test”.
- One template, one job. An order confirmation that also plugs a sale is a rejection. Send two messages, or send one and save the offer for a marketing template later.
Best practices for creating effective WhatsApp broadcast templates
The best practices for creating effective WhatsApp broadcast templates are: write utility messages as genuine updates so they cost a seventh of marketing, keep the body short even though you have 1,024 characters, use one clear call to action, put an opt-out in the footer of every template, test with your longest variable values, and build a small library of single-purpose templates rather than a few that try to cover everything.
| Practice | Why it matters |
|---|---|
| Keep bodies to 200–300 characters | People read phones in queues. Long messages get ignored and get blocked |
| One call to action | Two buttons asking different things halves both |
| Opt-out in the footer, always | People who cannot leave politely report you instead, and reports hurt your quality rating |
| Lead with the useful fact | Not “We are delighted to announce” — “Your order shipped today” |
| Name the business in the first line | WhatsApp has no subject line, so they need to know who this is |
| Write one template per purpose | Easier to approve, easier to measure, cheaper to categorise |
| Test with long values | 1,024 characters counts the filled-in version |
| Use descriptive button labels | “Track order” is fine; “Click here” gets rejected |
| Avoid urgency language | “Buy now or miss out!” is a documented rejection trigger |
| Skip decorative emoji walls | One or two is friendly. Ten looks like spam |
And the thing nobody mentions: templates you cannot measure are templates you cannot improve. Give each one a name that tells you what it is (order_shipped_v2, not template_4), because you will have thirty of them within a year. Good WhatsApp broadcast templates are boring to look at and easy to audit.
Why templates get rejected
These are documented rejection causes, not guesses.
| What you did | Why it fails |
|---|---|
| Put a discount code in an order confirmation | Promotional content in a utility template. Described as a guaranteed rejection |
| Submitted marketing copy as utility | Wrong category. An instant rejection |
| Added a promotional image header to a utility template | Off-purpose media |
| Linked a sales landing page from a utility template | Unrelated URL |
| Used a variable containing a whole sentence | Variables must hold data |
| Gave sample values like “xxx” or “test” | Samples must look like real data |
| Wrote “Buy now or miss out!” | Aggressive urgency |
| Labelled a button “Click Here” | Non-descriptive button text |
| Sent marketing with no opt-in on record | Consent is required for marketing |
Review takes 24–48 hours, and longer at busy periods such as before major shopping holidays. Build that into your campaign plan.
And the rule that surprises people: approved templates cannot be edited. If you want to change a word, you create a new template, wait for approval, then retire the old one. That is why it is worth getting the first version right rather than submitting something you know you will tweak.
The 50 WhatsApp broadcast message templates
Copy these WhatsApp broadcast message templates, swap the square-bracket bits for your own business, keep the {{n}} variables, and submit. Every body here sits well under 1,024 characters even with long values, and each one is labelled with the category I would submit it under — because the category, not the wording, is what decides your bill.
Utility templates (15)
These are tied to something the customer did. They are the cheap ones.
1. order_confirmation
Hi {{1}}, thanks for your order with [Business]. Order #{{2}} is confirmed and we are packing it now. Total: {{3}}. We will message you the moment it ships. Footer: Reply STOP to unsubscribe Button: View order
2. order_shipped
Hi {{1}}, good news — order #{{2}} has shipped. Estimated delivery is {{3}}. Your tracking number is {{4}}. Footer: Reply STOP to unsubscribe Button: Track order
3. order_delivered
Hi {{1}}, order #{{2}} was delivered on {{3}}. If anything is missing or damaged, just reply to this message and we will sort it. Footer: Reply STOP to unsubscribe Button: Report a problem
4. order_delayed
Hi {{1}}, apologies — order #{{2}} is running late. The new estimated delivery is {{3}}. Sorry for the wait, and thank you for bearing with us. Footer: Reply STOP to unsubscribe Button: Track order
5. appointment_booked
Hi {{1}}, your appointment at [Business] is booked for {{2}} at {{3}}. Address: [Address]. Reply to this message if you need to change it. Footer: Reply STOP to unsubscribe Buttons: Reschedule · Cancel
6. appointment_reminder
Hi {{1}}, a reminder that your appointment is tomorrow, {{2}}, at {{3}}. Please arrive five minutes early. Reply if you need to move it. Footer: Reply STOP to unsubscribe Buttons: Confirm · Reschedule
7. appointment_rescheduled
Hi {{1}}, your appointment has been moved to {{2}} at {{3}} as requested. Nothing else has changed. Footer: Reply STOP to unsubscribe Button: View booking
8. payment_received
Hi {{1}}, we have received your payment of {{2}} for invoice {{3}}. Thank you. Your receipt is attached below. Footer: Reply STOP to unsubscribe Button: Download receipt
9. payment_failed
Hi {{1}}, your payment of {{2}} for invoice {{3}} did not go through. This usually means an expired card. You can update your details below. Footer: Reply STOP to unsubscribe Button: Update payment
10. subscription_renewal_due
Hi {{1}}, your [Business] subscription renews on {{2}} and the amount will be {{3}}. No action needed if you are happy to continue. Footer: Reply STOP to unsubscribe Buttons: Manage plan · Cancel
11. booking_confirmed
Hi {{1}}, your booking for {{2}} on {{3}} is confirmed. Reference: {{4}}. Please bring this message with you. Footer: Reply STOP to unsubscribe Button: View booking
12. service_completed
Hi {{1}}, we have finished the work at {{2}} today. Job reference {{3}}. Your invoice follows separately. Thanks for choosing [Business]. Footer: Reply STOP to unsubscribe Button: View invoice
13. document_ready
Hi {{1}}, your {{2}} is ready and available to download. It will stay available until {{3}}. Footer: Reply STOP to unsubscribe Button: Download
14. feedback_request
Hi {{1}}, thanks for visiting [Business] on {{2}}. If you have thirty seconds, we would really value your feedback — it genuinely helps us improve. Footer: Reply STOP to unsubscribe Button: Leave feedback
15. account_update
Hi {{1}}, the {{2}} on your account was updated on {{3}}. If this was not you, reply to this message straight away. Footer: Reply STOP to unsubscribe Button: Review account
Marketing templates (20)
These sell something. They cost more, and they need opt-in on record. They also work much better as the first message in a conversation than as a one-way blast — see how WhatsApp bots nurture leads for what to do with the replies.
16. new_product_launch
Hi {{1}}, our new {{2}} is here. [One sentence on why it is good.] Launch price is {{3}} until {{4}}. Footer: Reply STOP to unsubscribe Button: See it
17. back_in_stock
Hi {{1}}, the {{2}} you asked about is back in stock. We have {{3}} available at the moment. Footer: Reply STOP to unsubscribe Button: Buy now
18. seasonal_sale
Hi {{1}}, our {{2}} sale starts today — up to {{3}} off selected items. It runs until {{4}}. Footer: Reply STOP to unsubscribe Button: Shop the sale
19. flash_sale
Hi {{1}}, quick one: {{2}} off everything today only, until {{3}}. Code {{4}} at checkout. Footer: Reply STOP to unsubscribe Button: Shop now
20. loyalty_reward
Hi {{1}}, you have earned {{2}} points with us, which is worth {{3}} off your next order. Thanks for being a regular. Footer: Reply STOP to unsubscribe Button: Use reward
21. win_back_customer
Hi {{1}}, we have not seen you since {{2}} and wanted to check in. Here is {{3}} off if you fancy coming back. Footer: Reply STOP to unsubscribe Button: Shop now
22. abandoned_cart
Hi {{1}}, you left {{2}} in your basket. It is still there if you want it, and we have {{3}} left in stock. Footer: Reply STOP to unsubscribe Button: Finish order
23. event_invite
Hi {{1}}, we are hosting {{2}} on {{3}} at {{4}}. You are very welcome to come. Places are limited. Footer: Reply STOP to unsubscribe Buttons: Save my place · More info
24. referral_offer
Hi {{1}}, if you recommend us to a friend, you both get {{2}} off. Just share your code: {{3}}. Footer: Reply STOP to unsubscribe Button: Share code
25. early_access
Hi {{1}}, you are getting first look at our {{2}} before anyone else. Early access closes {{3}}. Footer: Reply STOP to unsubscribe Button: Shop early
26. bundle_offer
Hi {{1}}, buy {{2}} together and save {{3}}. The bundle is {{4}} instead of the usual price. Footer: Reply STOP to unsubscribe Button: See bundle
27. price_drop
Hi {{1}}, the {{2}} you were looking at has dropped to {{3}}. That is {{4}} less than before. Footer: Reply STOP to unsubscribe Button: View item
28. newsletter_roundup
Hi {{1}}, here is what is new at [Business] this month: {{2}}. Short read, no sales pitch. Footer: Reply STOP to unsubscribe Button: Read it
29. birthday_offer
Happy birthday {{1}}! Here is {{2}} off from us, valid until {{3}}. Have a good one. Footer: Reply STOP to unsubscribe Button: Use my gift
30. milestone_thanks
Hi {{1}}, it has been {{2}} since your first order with us. Genuinely, thank you. Here is {{3}} off as a small thanks. Footer: Reply STOP to unsubscribe Button: Use thanks
31. webinar_invite
Hi {{1}}, we are running a free session on {{2}} on {{3}} at {{4}}. It is 30 minutes and there is a recording if you cannot make it. Footer: Reply STOP to unsubscribe Button: Save my seat
32. new_location_opening
Hi {{1}}, we are opening in {{2}} on {{3}}. Come and say hello — first {{4}} visitors get a free {{5}}. Footer: Reply STOP to unsubscribe Button: Get directions
33. menu_update
Hi {{1}}, our new menu is live. {{2}} new dishes, including {{3}}. Available from {{4}}. Footer: Reply STOP to unsubscribe Button: See menu
34. limited_stock
Hi {{1}}, we are down to {{2}} of the {{3}}. Not trying to rush you, just letting you know while it is still here. Footer: Reply STOP to unsubscribe Button: View item
35. free_shipping_offer
Hi {{1}}, free delivery on everything until {{2}}, no minimum spend. Use code {{3}}. Footer: Reply STOP to unsubscribe Button: Shop now
Authentication templates (5)
An important note on these five. Authentication body text is fixed by Meta and cannot be rewritten the way marketing and utility copy can. So treat these as the pattern you configure in your provider’s authentication template builder, not as free text you paste in. The code, the expiry and the security line are the configurable parts.
36. login_code — one-time code for signing in, with expiry in minutes and a copy-code button.
37. password_reset_code — reset code with expiry, plus a “did not request this” security line.
38. transaction_verification — code confirming a payment or transfer, with the amount shown.
39. device_verification — code confirming a new device or browser sign-in.
40. account_recovery — code for recovering a locked account.
For all five: set the shortest sensible expiry, use a copy-code button rather than making people retype, and never add promotional content — authentication templates are the strictest category Meta reviews.
Industry templates (10)
Most of these are utility, which is deliberate: they are the cheap, high-trust messages that every local business sends constantly.
41. clinic_appointment_reminder (utility)
Hi {{1}}, a reminder of your appointment with {{2}} on {{3}} at {{4}}. Please bring your ID and arrive 10 minutes early. Reply to reschedule. Footer: Reply STOP to unsubscribe Buttons: Confirm · Reschedule
42. salon_booking_confirmation (utility)
Hi {{1}}, you are booked in for {{2}} with {{3}} on {{4}} at {{5}}. See you then. Footer: Reply STOP to unsubscribe Buttons: Reschedule · Cancel
43. restaurant_table_confirmed (utility)
Hi {{1}}, your table for {{2}} is booked for {{3}} at {{4}}. We hold tables for 15 minutes. Reply if you are running late. Footer: Reply STOP to unsubscribe Button: Get directions
44. trades_job_scheduled (utility)
Hi {{1}}, we are booked in to {{2}} at {{3}} on {{4}}, arriving between {{5}}. Please make sure someone is home. Footer: Reply STOP to unsubscribe Buttons: Confirm · Reschedule
45. gym_class_reminder (utility)
Hi {{1}}, your {{2}} class is tomorrow at {{3}} with {{4}}. Bring water and a towel. Reply to cancel your spot. Footer: Reply STOP to unsubscribe Buttons: Confirm · Cancel
46. school_fee_reminder (utility)
Hi {{1}}, a reminder that {{2}} fees of {{3}} for {{4}} are due on {{5}}. Payment options are below. Footer: Reply STOP to unsubscribe Button: Pay fees
47. real_estate_viewing (utility)
Hi {{1}}, your viewing of {{2}} is confirmed for {{3}} at {{4}}. {{5}} will meet you there. Footer: Reply STOP to unsubscribe Buttons: Reschedule · Get directions
48. ecommerce_cod_confirmation (utility)
Hi {{1}}, please confirm your cash-on-delivery order #{{2}} for {{3}}. We will only dispatch once you confirm. Footer: Reply STOP to unsubscribe Buttons: Confirm order · Cancel
49. finance_statement_ready (utility)
Hi {{1}}, your statement for {{2}} is ready. Closing balance: {{3}}. Available to download until {{4}}. Footer: Reply STOP to unsubscribe Button: View statement
50. travel_booking_itinerary (utility)
Hi {{1}}, your trip to {{2}} is confirmed for {{3}}. Booking reference {{4}}. Your full itinerary is below. Footer: Reply STOP to unsubscribe Button: View itinerary
How to submit a template and get it approved
- Pick the category honestly. Is this tied to something the customer did, or is it selling? Get this wrong and you are rejected before anything else is read.
- Name it properly. Lowercase, numbers and underscores only:
order_shipped_en. Add a language suffix if you run more than one. - Write the body, then count it filled in. Replace every
{{n}}with your longest realistic value and check you are under 1,024. - Add realistic samples. “Sarah Ahmed”, “ORD-4821”, “14 October 2026”. Never “xxx”.
- Keep the footer static. 60 characters, no variables, and put your opt-out there.
- Check your buttons. 25 characters per label, descriptive words, up to 3 quick replies or 2 call-to-action buttons (one phone plus one link, or two links).
- Submit and wait 24–48 hours. Longer near big shopping dates.
- Send a test to yourself first. Read it on a phone, not a monitor.
If your template is rejected
| Step | What to do |
|---|---|
| 1 | Read the reason Meta gives. It usually names the problem |
| 2 | Check the category first — wrong category causes most rejections |
| 3 | Strip any promotional words from a utility template, including the footer and buttons |
| 4 | Replace vague variables with real data examples |
| 5 | Rewrite non-descriptive buttons |
| 6 | Resubmit as a revised template |
And remember: you cannot edit an approved template. To change approved copy, build a new version (order_shipped_v2), get it approved, switch to it, then retire the old one.
If you are still choosing the software that will hold your template library, I compare the options in my guide to the best WhatsApp chatbot platforms. What matters for templates specifically is whether the editor shows you the live character count after substitution — most do not.
How we researched this
The character limits, button rules and variable requirements come from 2026 provider documentation of Meta’s template components, including the detail that the 1,024-character body limit applies to the message after variables are substituted. The rejection causes and the 24–48 hour review window come from 2026 template-approval guidance, and we have noted where sources disagree — quick-reply labels are documented at 25 characters in current docs while some older third-party sources still say 20, so check what your provider’s editor enforces. The per-message prices come from Meta’s July 2026 rate card.
What we have not invented: Meta does not publish a complete list of rejection reasons or a guaranteed review time, so treat precise promises elsewhere with suspicion. The 50 templates are our own writing, built to sit inside the published limits. Authentication templates are flagged as pattern-only because Meta fixes that body text.
Frequently asked questions
Do I need a template for every message I send?
No, and this is the part people miss. You only need an approved template for messages sent outside the 24-hour window that opens when a customer messages you first. Inside that window you reply in free text with no template and no approval. So WhatsApp broadcast templates are for the conversations you start, not the ones you answer.
What are the WhatsApp template character limits?
Body 1,024 characters (counted after variables are filled in), header 60 characters with one variable, footer 60 characters with no variables, button labels 25 characters, template name 512 characters in lowercase with underscores. URL buttons allow 2,000 characters with one variable at the end.
Why do WhatsApp templates get rejected?
Most often the wrong category — promotional content inside a utility template, such as a discount code in an order confirmation, is a guaranteed rejection. Other causes are variables containing full sentences, placeholder samples like “xxx”, urgency language such as “Buy now or miss out!”, and buttons labelled “Click Here”.
How long does WhatsApp template approval take?
Meta aims for 24–48 hours, and it takes longer at busy times such as the run-up to major shopping dates. Build a few days of slack into any campaign that needs a new template.
Can I edit an approved WhatsApp template?
No. You create a new template with the change, wait for it to be approved, switch to it, then retire the old one. This is why it is worth getting the first version right rather than submitting a draft you plan to tweak.
Which template category is cheapest?
Utility, by a long way. In the US a utility message costs $0.0034 against $0.0250 for marketing, so 10,000 messages is $34 instead of $250. Write genuine updates as utility and you cut that cost by roughly 85%.
How many variables can I use in a template?
The header allows exactly one. The body allows several, but each one needs a realistic sample value and must contain data rather than sentences. The footer allows none at all. URL buttons allow one variable, at the end of the URL only.
Do I need an opt-out in every template?
Templates are not a copywriting exercise, they are a categorisation exercise. Decide honestly whether each message is a genuine update or a promotion, write it as what it is, and you will get approved faster and pay a fraction of the price — $34 instead of $250 for ten thousand messages is the difference between a channel that pays and one that does not.
WhatsApp requires you to honour opt-out requests, and putting “Reply STOP to unsubscribe” in the 60-character footer is the simplest way to do it. It also protects your quality rating, because people who cannot leave politely tend to report you instead.
The bottom line
Then keep them short, put one action in each, leave the opt-out visible, and test with your longest customer name before you submit. Fifty templates is plenty to start; a working library of fifteen you actually use beats fifty sitting unapproved.
Want these running without the copy-paste? My Markleyo plan is $14.50 a month and includes a WhatsApp and Telegram marketing bot for campaigns plus an AI chatbot on WhatsApp that answers the replies your broadcasts bring in, with handover to your team. Note that the per-message fees above are Meta’s and are billed by Meta whatever software you use — no tool makes a marketing message cost utility prices. See what is included and start a free trial — and if you are new to this, read my guide to building a WhatsApp marketing bot first.