โ† Blog

WhatsApp Cold Outreach Guide

How to write WhatsApp templates that actually get approved

WhatsApp Business templates aren't email โ€” Meta reviews every one before you can send. Templates that read like spam, mismatch your category, or stuff variables in the wrong place get rejected. This guide shows you how to write service and marketing templates that pass on the first try, with real examples you can adapt today.

The two rules behind everything

Two rules decide whether your template gets approved

Meta's review is automated for the most part โ€” it scores your template against a few simple signals. Get the signals right and approvals come back in minutes. Get them wrong and you'll keep cycling through rejections.

Rule 1: your template body must match the category you declared. A coupon code in a Utility template is an instant reject. Rule 2: every variable like {{1}} must have a realistic sample value attached, and the body must read naturally with that sample inserted.

๐Ÿ’ก If you only remember one thing

Marketing = promotion / sales. Utility = something the customer already started or expects (appointments, orders, reminders, account events). When in doubt, pick Utility โ€” the bar is lower.

Service / Utility templates

Service templates: write them like a polite confirmation

Service templates are easy to get right because they have a clear job: confirm, remind, or update. The customer is already expecting the message, so Meta's bar is low.

  • Reference a specific action the customer took (booked, ordered, signed up).
  • Include a concrete detail โ€” the appointment time, order number, balance.
  • End with a clear next step or a way to reply ("reply YES to confirm", "call us at...").
  • Don't add a discount code or promotional phrase โ€” that flips it to Marketing.
  • Don't write a generic message with no customer-specific detail. Meta rejects "informational" templates that could be sent to anyone.
Good โ€” Utility / Appointment reminder

Hi {{1}}, this is a reminder of your appointment on {{2}} at {{3}}. Reply CANCEL to cancel or call us at {{4}} to reschedule.

Sample values: Sara ยท Mar 12 ยท 2:30 PM ยท +1-555-0123

Marketing templates

Marketing templates: the bar is higher, the wording matters more

Marketing templates can sell, promote, or re-engage โ€” but Meta knows users hate spam, so it's stricter. The winning pattern is to lead with personalization and value, not the discount.

  • Open with the customer's name and a reason for the message ("you saved this last week", "you're a Silver member").
  • Be specific about the offer โ€” what, for whom, when it ends.
  • Include an explicit opt-out ("reply STOP to unsubscribe") for promotional messages. This is the single biggest approval lever.
  • Avoid all-caps screaming ("SALE!!!"), excessive emoji, or fake urgency ("LAST CHANCE โ€” TODAY ONLY" with no real deadline).
  • Don't bury the offer behind vague teasers ("Click to find out what we have for you!"). Meta wants the message to stand on its own.
Good โ€” Marketing / Welcome offer

Hi {{1}}, thanks for joining {{2}}! As a new member, you have {{3}} off your first order โ€” valid until {{4}}. Reply STOP to opt out of promotions.

Sample values: Sara ยท Layali Abaya ยท 15% ยท Mar 20

Variables done right

Variables ({{1}}, {{2}}โ€ฆ): the #1 reason templates get rejected

Variables are placeholders you fill in at send time โ€” but Meta checks that they have realistic example values, and that the body still makes sense when the value is plugged in. "Hi {{1}}, your {{2}}" with no examples gets rejected instantly.

Always provide a sample for each variable. If {{1}} is a name, write "Sara". If {{2}} is a date, write "March 12, 2026" โ€” not "2026-03-12T14:30:00Z". Meta wants the preview to look like a real WhatsApp message.

๐Ÿ’ก A simple test

Read your template out loud with the sample values inserted. If it sounds like something you'd actually send a friend or customer, you're good. If it reads like a template, rewrite it.

Why approvals fail

The 4 most common rejection reasons (and how to fix each)

Almost every rejection falls into one of these four buckets. Skim them before you submit anything.

  1. Category mismatch. Promotional copy in a Utility template, or transactional copy in a Marketing template. Fix: change the declared category to match the body's intent.
  2. Missing variable examples. Your template uses {{1}} but you didn't pass an example value. Fix: in Safqat's form, fill the sample field; on raw Graph API, include `example.body_text`.
  3. Generic / spammy wording. "Don't miss out!", "Click here", or anything that could be sent verbatim to thousands of strangers. Fix: rewrite with customer-specific detail or remove.
  4. Language mismatch. You declared the language as `en_US` but the body is in Arabic, or vice versa. Fix: the declared language must match the script you wrote in.
Faster path: Meta's library

Skip review entirely with auto-approved templates

Meta maintains a library of pre-approved utility templates you can import to your account with one click. They cover the most common use cases:

  • Appointment confirmation and reminders
  • Delivery and shipping notifications
  • Account creation and password resets
  • Order updates and receipts

Use Safqat's "Meta Templates Library" tab to import any of these instantly. Reserve custom-written templates for marketing copy and for service messages with wording too specific to your brand to be covered by the library.

Outreach

Stop guessing โ€” let Safqat handle the approvals

Browse Meta's auto-approved library, write custom templates with built-in policy checks, and track every approval and rejection in one place. Cold Outreach is included in every Safqat plan.

Writing WhatsApp templates that get approved | Safqat AI