How do I personalise WhatsApp messages at scale?
Personalisation at scale on WhatsApp is not about writing a thousand messages by hand — it's about designing one approved template with named variables and letting your CRM or store data fill each slot uniquely. The customer sees "Hi Priya, your order #48201 ships to Pune tomorrow"; you sent it programmatically to 40,000 people in one API call. Done well, personalisation lifts open and reply rates, cuts opt-outs, and keeps your delivery quality high — which in turn protects your messaging limits. This guide shows exactly how to structure variables, wire them to your data, and stay inside WhatsApp's rules while doing it.
Quick answer
Build approved templates with numbered variables ({{1}}, {{2}}…), map each to a clean field in your CRM or store (name, order ID, city, appointment time, language), and send programmatically. Personalise the substance, not just the greeting — segment by category and language, keep it opted-in, and every delivered message stays individually relevant.How variables actually work in a WhatsApp template
A WhatsApp message template is a pre-approved skeleton with placeholders. In the body you write positional variables like {{1}}, {{2}}, {{3}}; header and button URLs can carry their own variables too. When you call the API you pass an ordered list of values, and WhatsApp swaps them in at send time. So a single approved template — "Hi {{1}}, your order {{2}} is out for delivery in {{3}} and will arrive by {{4}}" — becomes tens of thousands of distinct, relevant messages without a separate approval for each. The template text is fixed and reviewed by Meta; only the variable values change per recipient. This is the core mechanic that makes personalisation both scalable and compliant.
- Body variables: {{1}}…{{n}} filled from your data per recipient
- Header variables: personalise the top line, or pass an image/document/PDF
- Button URL variables: append an order ID or tracking token to a dynamic link
- Named samples: provide realistic example values so approval goes smoothly
Connect variables to real data, not guesses
Personalisation is only as good as the field behind each variable. The winning pattern is to map every placeholder to a single, clean, reliably-populated column in your source of truth — your CRM, e-commerce store, POS, or spreadsheet. Name comes from the contact record, order ID from the order table, city from the shipping address, appointment time from the booking system, EMI or fee amount from billing. Where a field might be blank, define a graceful fallback (a plain "there" instead of an empty greeting) so you never send a broken message with a visible gap. With InfiQ you can push these values via the API from your own code, sync them from a connected CRM, or upload a mapped CSV for a one-off broadcast — the same variables, whichever way you feed them.
- Use one field per variable; avoid concatenating messy strings
- Set fallbacks for optional fields so no message looks empty
- Validate data before send — bad phone numbers and blanks waste spend
- Feed via API, CRM sync, or a column-mapped CSV upload
Personalise substance, not just the first name
Adding a name is table stakes; genuinely relevant messages personalise the reason for contacting someone. Segment your audience and pick the template that fits the moment: a cart-recovery nudge with the exact product left behind, a reorder reminder timed to when the last purchase typically runs out, a service reminder for the vehicle or policy that customer actually owns, a regional-language broadcast for contacts who prefer Hindi or Tamil. This is where category discipline matters — utility templates for order and account updates, marketing templates for offers and re-engagement, authentication for OTPs — because category drives both what Meta will approve and what each delivered message costs. Matching the right template category to the right segment is the difference between a message that gets read and one that gets muted.
- Segment by intent: transactional, promotional, re-engagement, reminder
- Localise language per contact, not one language for the whole list
- Pick the correct template category so approval and pricing are right
- Time sends to the customer's context — order stage, renewal date, event
Scale without hurting delivery quality or cost
Sending at scale rewards restraint. WhatsApp scores your number on how recipients react, so blasting a generic, poorly-targeted list drags down your quality rating and can throttle your messaging limits. Relevant, opted-in personalisation does the opposite — higher reads and replies keep your rating healthy and your tier climbing. On cost, remember WhatsApp bills per delivered message by category (marketing, utility, authentication) since Meta moved off per-conversation billing on 1 July 2025; the 24-hour service window is free for replies but is not a billing unit. So a well-personalised utility update is not just friendlier, it's often cheaper than an equivalent marketing blast. InfiQ shows transparent ₹ pricing (ex-GST) and a calculator so you can model a personalised campaign before you send it.
- Keep lists opted-in and relevant to protect your quality rating
- Favour utility templates for genuine updates — better read rates, lower category cost
- Model spend per delivered message by category before a big broadcast
- Retire underperforming templates and A/B test copy to keep improving
Frequently asked questions
How many variables can one WhatsApp template have?+
Do I need a separate template for each personalised message?+
Can I personalise WhatsApp messages without writing code?+
What happens if a variable field is empty for some contacts?+
Does personalisation cost extra on WhatsApp?+
Can I personalise messages in Hindi and regional languages?+
Will personalising at scale get my number banned?+
Do I own the account and data when I personalise through InfiQ?+
Turn one template into thousands of relevant messages
Talk to InfiQ, an official Meta Business Partner, and set up personalised WhatsApp campaigns wired to your CRM data with transparent ₹ pricing from day one.