Marketing, Utility or Authentication?
The category decides both the price and the odds of approval.
Utility covers messages about something the customer already did: an order, a booking, a bill, a delivery. Marketing covers anything promotional. Authentication is one-time codes only.
Meta re-categorises templates on its own reading of the text, so a "Utility" template that thanks the customer and then offers 20% off will be billed as Marketing.
"Can this be Utility?", the category advisor
A one-click check that shows which phrases are making your template Marketing.
In the template builder, run the check before submitting. It gives a verdict, highlights the exact phrases Meta will read as promotional, and offers a rewrite you can accept with one click.
On a large monthly volume, moving order and payment templates from Marketing to Utility is usually the single biggest saving available.
Get approved the first time
Most rejections are formatting, not content.
Keep to these and approval is routine.
- 1No variable at the very start or very end of the body, and never two variables side by side.
- 2Provide realistic sample values for every variable, placeholders like 'xxx' get rejected.
- 3Match the category to the intent, honestly.
- 4Skip URL shorteners; use your own domain.
- 5No mention of WhatsApp itself, and no all-caps shouting.
My template was rejected
Edit and resubmit. You do not have to start a new template.
Meta gives a reason code. "Invalid format" is nearly always variables or samples; "policy violation" means the content itself has to change.
Fix it and resubmit from the same screen. Repeated rejections on one number can affect your standing, so read the reason before resubmitting.
Media headers, buttons and carousels
Images, PDFs, video, quick replies, call-to-action buttons and multi-card carousels.
A template can carry an image, video or document header, up to three buttons, and, for catalogue-style sends, a carousel of cards each with its own image and buttons.
Header media set on the template is prefilled automatically at send time, so you are not re-uploading the same image for every campaign.
Personalise with your own customer fields
Map a variable to any field on the contact, including fields you invented.
Define custom fields for whatever your business tracks (outstanding balance, plan, city, renewal date), and point a template variable at one. Each recipient gets their own value at send time.
Fields are filled by import, by the API, by a Flow response, or by a Tally or Sheets sync.
Send a bulk campaign
Choose the template, build the audience, review the checklist, send.
Audiences come from tags, custom fields, imported lists, or a saved segment. The pre-send checklist shows the recipient count, the template's approval status, the header media and the source of every variable before anything leaves.
Delivery is paced deliberately. A campaign to a large list is queued rather than fired at once, which protects both your quality rating and your limit.
Schedule a send, or cancel a scheduled one
Pick a date and time; cancel any time before it fires.
Scheduled campaigns are listed on the Scheduled Messages page with their send time and audience, and can be cancelled from that list.
Times follow your account's timezone, so set that first if your team works across regions.
Recurring campaigns
Hourly, daily, weekly, monthly or yearly, set once and it keeps running.
Useful for weekly stock updates, monthly statements and annual renewal reminders. Each run appears in campaign history as its own batch, so you can compare week to week.
A recurring campaign stops when you stop it, or when the template is no longer approved.
Read campaign history and delivery numbers
Sent, delivered, read and failed, per campaign and per recipient.
Campaign history is searchable and filterable by status, template and date, and each row opens to per-recipient detail, including the exact error on anything that failed.
Sends made through the external API appear here too, so the totals on your dashboard cover everything that left the platform.
Pull templates and statuses from Meta
Refresh approval status, or import templates that only exist on Meta.
The refresh has two modes: update the status of templates you already have, or also pull in templates that exist on Meta but were never created in VedLink, useful right after a migration.
Imported templates arrive with their components intact, so media headers and buttons come across.