whatsapp broadcast templates

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.

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

PartWhat it isLimit
NameThe internal label, never seen by customers512 characters, lowercase letters, numbers and underscores only
HeaderA short title, or an image, video or document60 characters of text, exactly one variable
BodyThe actual message1,024 characters, counted after variables are filled in
FooterA small line underneath, often the opt-out60 characters, static text, no variables allowed
ButtonsQuick replies, or a link or phone button25 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.

CategoryWhat it is forCost per message (US)Cost per message (India)
UtilityOrder updates, receipts, reminders — things tied to something the customer did$0.0034$0.0014
MarketingOffers, promotions, announcements, anything selling$0.0250$0.0118
AuthenticationOne-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:

PartWhat goes in itExample
1. Greeting with nameOne variable, nothing cleverHi {{1}},
2. The point, in one sentenceWhy you are writing, immediatelyyour order #{{2}} is on its way.
3. The useful detailDates, amounts, times — the stuff they wantIt should arrive on {{3}}.
4. One actionA single next step, not threeTrack it below.
5. A human lineSo it does not read like a robotAny problems, just reply to this message.
6. FooterOpt-out, every timeReply STOP to unsubscribe
7. ButtonThe action, in 25 characters or fewerTrack order

Three rules that come from the limits themselves:

  1. 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.
  2. Every variable needs a realistic sample. When you submit, give “Sarah Ahmed” and “ORD-4821”, not “xxx” or “test”.
  3. 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.

PracticeWhy it matters
Keep bodies to 200–300 charactersPeople read phones in queues. Long messages get ignored and get blocked
One call to actionTwo buttons asking different things halves both
Opt-out in the footer, alwaysPeople who cannot leave politely report you instead, and reports hurt your quality rating
Lead with the useful factNot “We are delighted to announce” — “Your order shipped today”
Name the business in the first lineWhatsApp has no subject line, so they need to know who this is
Write one template per purposeEasier to approve, easier to measure, cheaper to categorise
Test with long values1,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 wallsOne 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 didWhy it fails
Put a discount code in an order confirmationPromotional content in a utility template. Described as a guaranteed rejection
Submitted marketing copy as utilityWrong category. An instant rejection
Added a promotional image header to a utility templateOff-purpose media
Linked a sales landing page from a utility templateUnrelated URL
Used a variable containing a whole sentenceVariables 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 recordConsent 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

  1. 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.
  2. Name it properly. Lowercase, numbers and underscores only: order_shipped_en. Add a language suffix if you run more than one.
  3. Write the body, then count it filled in. Replace every {{n}} with your longest realistic value and check you are under 1,024.
  4. Add realistic samples. “Sarah Ahmed”, “ORD-4821”, “14 October 2026”. Never “xxx”.
  5. Keep the footer static. 60 characters, no variables, and put your opt-out there.
  6. 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).
  7. Submit and wait 24–48 hours. Longer near big shopping dates.
  8. Send a test to yourself first. Read it on a phone, not a monitor.

If your template is rejected

StepWhat to do
1Read the reason Meta gives. It usually names the problem
2Check the category first — wrong category causes most rejections
3Strip any promotional words from a utility template, including the footer and buttons
4Replace vague variables with real data examples
5Rewrite non-descriptive buttons
6Resubmit 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.

Similar Posts