WhatsApp API & Developers

WhatsApp Template Examples: 30 Messages to Adapt

Writing a WhatsApp template from a blank page is slow, and the first draft usually fails review for a reason you could have avoided: a variable at the very end, a promo line in an order update, a vague body Meta files as marketing.

These WhatsApp template examples are written to pass. There are 30 of them, grouped by job: orders and delivery, appointments, payments, accounts and security, support, and re-engagement. Each one lists its body with named variables, suggested buttons and the category it will most likely land in.

Treat each category as a strong guess: Meta decides from the final wording, and one added offer can turn utility into marketing.

How to use these examples

Each template uses named variables such as {{first_name}}. If you prefer positional ones ({{1}}, {{2}}), renumber in order of appearance. Our guide to template variables covers both formats and the send payload.

Before submitting any of them:

  • Keep the category honest. Utility must be non-promotional and tied to something the customer did or asked for. See template categories for the lines.
  • Add realistic samples for every variable when you create the template.
  • Check button limits. Up to 10 buttons in total, labels up to 25 characters, at most 2 URL buttons and 1 phone button.
  • Remember opt-in. Every business-initiated template needs the customer's prior consent.

Orders and delivery

Describe what happened to the order and stop there. For the event wiring, see our guide to order notifications.

  1. order_confirmed (likely utility). Body: Hi {{first_name}}, thanks for your order {{order_id}}. We will message you here as soon as it ships. Button: URL "View order".
  2. order_shipped (likely utility). Body: Good news, {{first_name}}. Order {{order_id}} has left our warehouse with {{courier}}, tracking number {{tracking_id}}. Button: URL "Track parcel" with the tracking ID as the URL variable.
  3. out_for_delivery (likely utility). Body: Order {{order_id}} is out for delivery today between {{time_window}}. Reply here if nobody will be home. Buttons: quick replies "Reschedule" and "Leave with neighbour". A location header can show the depot or drop point.
  4. delivery_failed (likely utility). Body: We could not deliver order {{order_id}} today. Pick a new slot below and we will try again. Buttons: quick replies "Tomorrow", "This weekend", "I will collect".
  5. item_backordered (likely utility). Body: One item in order {{order_id}} is back-ordered. We expect to ship it by {{ship_date}}, and you can cancel it for a full refund below. Button: quick reply "Cancel item".
  6. refund_processed (likely utility). Body: We have received your return for order {{order_id}}. A refund of {{amount}} is on its way and should reach you within {{days}} business days. No buttons needed.

Appointments and bookings

Reminders work best when rescheduling is one tap away. Our appointment reminders guide covers timing and replies.

  1. booking_confirmed (likely utility). Body: Your appointment with {{staff_name}} is confirmed for {{date}} at {{time}}. Please arrive 10 minutes early. Buttons: URL "Manage booking", phone "Call us".
  2. reminder_day_before (likely utility). Body: Reminder: you are booked with {{staff_name}} tomorrow at {{time}}. Can you still make it? Buttons: quick replies "Yes, see you", "Reschedule", "Cancel".
  3. reminder_same_day (likely utility). Body: See you today at {{time}}, {{first_name}}. The address is shown above, and parking is free on site. Header: location.
  4. booking_rescheduled (likely utility). Body: Your appointment has moved to {{new_date}} at {{new_time}}. Reply here if the new time does not work. No buttons needed.
  5. missed_appointment (likely utility). Body: We missed you at your {{time}} appointment today. Tap below to pick a new slot that suits you. Button: URL "Book again". Adding a "10% off your next visit" line would make this marketing.

Payments and billing

Payment messages stay utility while they report facts about the account. Keep the tone neutral, since threats are a common policy rejection.

  1. invoice_ready (likely utility). Header: document (the PDF). Body: Invoice {{invoice_id}} for {{amount}} is attached. It is due on {{due_date}}. Button: URL "Pay invoice".
  2. payment_due_soon (likely utility). Body: A quick reminder that {{amount}} for {{service}} is due on {{due_date}}. You can pay with the link below. Button: URL "Pay now".
  3. payment_overdue (likely utility). Body: Invoice {{invoice_id}} for {{amount}} was due on {{due_date}}. If you have already paid, thank you and please ignore this message. Buttons: URL "Pay now", quick reply "Talk to accounts".
  4. payment_received (likely utility). Body: We have received your payment of {{amount}} for invoice {{invoice_id}}. Thank you, {{first_name}}. No buttons needed.
  5. autopay_notice (likely utility). Body: Your monthly payment for {{plan_name}} will be charged on {{charge_date}} to the card ending {{last_four}}. Button: URL "Update card". This mirrors one of Meta's own utility examples.
  6. plan_renewal_notice (likely utility). Body: Your {{plan_name}} plan renews on {{renewal_date}} for {{amount}}. No action is needed to keep it running. Turn it into "renew now and save" and it becomes marketing.

Accounts and security

  1. verification_code (authentication). You don't write this body. Authentication templates use Meta's fixed text ("123456 is your verification code."), with optional security and expiry lines, plus a copy code or one-tap button.
  2. new_sign_in_alert (likely utility). Body: A new sign-in to your {{app_name}} account happened on {{device}} at {{time}}. If this was not you, reset your password from the app. Button: URL "Secure account".
  3. password_changed (likely utility). Body: The password for your {{app_name}} account was changed on {{date}}. If you did not do this, contact us right away. Button: phone "Call support".
  4. profile_incomplete (likely utility). Body: To finish setting up your {{app_name}} profile, please add a profile photo in the app. It takes under a minute. Button: URL "Open app". Never ask for ID documents or full card numbers in the chat itself.
  5. opt_in_confirmed (likely utility). Body: Thanks for confirming, {{first_name}}. You will now get order and booking updates from {{business_name}} here. Reply STOP to opt out. No buttons needed.

Support and service follow-ups

  1. ticket_updated (likely utility). Body: Your support request {{ticket_id}} is now {{ticket_status}}. Reply to this message to add details or ask a question. No buttons needed.
  2. callback_follow_up (likely utility, only if the customer asked to move to WhatsApp). Body: Hi {{first_name}}, following up on your call with us today about {{issue}}. Reply here and we will pick it up.
  3. order_feedback (likely utility). Body: Order {{order_id}} was delivered on {{date}}. Was everything as expected? Let us know below. Buttons: quick replies "All good", "Something was wrong". Meta only treats feedback as utility when it is tied to a specific order or interaction.

Re-engagement and marketing

Everything below is marketing, and should only go to customers who opted in to promotional messages. Meta does not currently deliver marketing templates to US phone numbers (error 131049), and per-user limits can hold back marketing to people who rarely read them.

  1. cart_reminder (marketing). Body: You left {{item_name}} in your cart, {{first_name}}. We have saved it for you if you would like to finish your order. Button: URL "View cart". Meta classes cart recovery as marketing even though the customer started it.
  2. back_in_stock (marketing). Body: {{item_name}} is back in stock in your size. Stock is limited this time, so grab yours while it lasts. Button: URL "Shop now".
  3. win_back_offer (marketing). Body: It has been a while, {{first_name}}. Use code {{coupon_code}} for {{discount}} off your next order this month. Buttons: copy code, URL "Shop now", quick reply "Stop promotions".
  4. new_collection (marketing). Header: image. Body: Our {{collection_name}} collection is live. Take a look before the most popular pieces sell out. Button: URL "See the collection". A carousel template can show several products instead of one image.
  5. event_invite (marketing). Body: You are invited to {{event_name}} at {{venue}} on {{date}}. Seats are limited, so reserve yours below. Buttons: URL "Reserve a seat", quick reply "Not interested".

Patterns behind templates that pass

A few habits do most of the work:

  • Lead with the fact. "Order 4821 has shipped" beats "Exciting news!" and keeps utility templates clearly utility.
  • Put words between variables and never start or end the body with one.
  • One job per template. A shipping update and an offer belong in two templates with two categories.
  • Give the customer a next step, ideally a quick reply. A reply opens a customer service window, and engagement feeds the template's quality rating.
  • Version names such as order_shipped_v2, so you can replace wording without deleting live templates.

Where Tenashi fits

Many of these messages go to people you already talk to: the customer who booked yesterday, the client with an invoice due. On the official API each one is a metered template.

In Tenashi, which runs on your existing WhatsApp number linked by QR scan rather than on Meta's official platform, the same wording works as canned replies your team inserts into any chat, and as scheduled sends for reminders. There is no template approval and no per-message fee, from $18/mo, and replies land in a shared inbox with a CRM under each chat. The trade-off: no buttons, so "Reply 1 to confirm, 2 to reschedule" replaces quick replies, and there is no green tick or OTP support. Sends are paced, messages to people who never wrote to you are capped, and WhatsApp can still ban numbers that spam. For bulk alerts and codes, stay on the official API; our complete guide to the WhatsApp API compares the routes.

See every feature · Get started

FAQ

What is a good example of a WhatsApp utility template?

An order shipped message is the classic case: "Good news, Priya. Order A-48213 has left our warehouse, tracking number 8812." It reports a fact about the customer's own order, contains no offer, and gives a next step with a tracking button. Add a discount line and it becomes marketing.

Can I copy these templates exactly?

You can use them as a starting point, but Meta rejects templates whose body and footer match an existing template in your account, so adjust the wording to your business. Replace sample values with realistic ones, check the category fits your final text, and submit each language as its own template.

Which of these templates need customer opt-in?

All of them. Meta requires opt-in before any business-initiated template, including utility messages like order updates. Marketing templates such as cart reminders, back-in-stock alerts and offers should only go to customers who agreed to receive promotions. Make opting out easy with a footer line or a quick reply.

Why is a cart reminder marketing and not utility?

Meta's guidelines put retargeting in the marketing category even when the user started the action, and an abandoned cart message exists to drive a purchase. The same applies to back-in-stock alerts and saved-search matches. Only messages that report on a completed order, booking or account event qualify as utility.

How many buttons can a WhatsApp template have?

Up to 10 in total. Within that, a template can have up to 10 quick replies, 2 URL buttons, 1 phone number button and 1 copy code button. Templates with four or more buttons, or quick replies mixed with other types, cannot be viewed on WhatsApp desktop, so keep most templates to three.


Good templates read like someone who knows the order. For the conversations after, get started with Tenashi.