Personalizing WhatsApp Broadcasts with Variables
Give every recipient their own name, order number or city — and a safe fallback when a value is missing.
A message that opens with the customer's name reads like a conversation, not a blast. Personalization binds each template placeholder to a per-contact value so a single broadcast produces thousands of individually-tailored messages.
How template variables work
Template placeholders look like {{1}}, {{2}}, and so on. When you build a broadcast, you decide what fills each one. For every placeholder you pick a source:
- Custom text — the same value for everyone (e.g. a promo code all customers share).
- Contact attribute — a per-recipient value pulled from that contact, like first_name, order_number or city.
Fallbacks: never send a blank
WhatsApp rejects a template message if a body variable resolves to an empty value — so every attribute-backed variable needs a fallback. If a contact is missing first_name, the fallback ("there", "friend", your brand name) is used instead. ConvoFly blocks you from launching if any variable could resolve blank, so a missing value never fails a send mid-broadcast.
Where personalization is resolved
- Broadcasts — each recipient's values are resolved from their attributes at send time.
- CSV uploads — values come straight from the columns in your file.
- Drip campaigns — every step personalizes independently, resolved when that step actually sends. See drip campaigns.
- Test sends — resolved against your test number's attributes, so your preview reflects real data.
Use your own fields
Beyond the fields that come from Shopify, you can personalize with fields you create yourself — a plan name, a loyalty tier, a booking reference. Create the field in Settings → Contact Attributes, then fill it either automatically from your store (an Update Customer Attribute step in the automation builder) or by pushing it from your own tool via the account API key in Settings. Once a field has a value, it's available as a personalization variable. Full steps are in building audiences with segments.
Tips for clean personalization
- Keep your field values tidy — the personalization is only as good as the values on your contacts.
- Choose fallbacks that read naturally in the sentence, not "N/A".
- Combine personalization with segments: target a slice, then speak to it by name.
Frequently asked questions
What happens if a contact is missing a personalization value?
The fallback value you set for that variable is used instead. WhatsApp rejects empty template variables, so ConvoFly requires a fallback and blocks launch if any variable could resolve blank — protecting the whole broadcast from a mid-send failure.
Can different recipients get different values in the same broadcast?
Yes — that's the point. When a variable's source is a contact attribute, each recipient's own value is resolved at send time, so one broadcast produces thousands of individually personalized messages.
Does personalization work with CSV uploads?
Yes. With a CSV audience, variable values are read directly from the columns in your uploaded file rather than from stored contact attributes.