How to Send Personalized WhatsApp Messages from Excel/CSV (2026 Tutorial)
Published Jun 11, 2026 | Last updated: Jul 2026 | 8 min read | Sayanta Ghosh
Quick Answer
Build an Excel/CSV file with a column per merge field (name, phone, city, order…), import it into WhatsApp Connect Pro, and write your message using placeholders like {name} and {city}. The software replaces each placeholder with that row’s value, so all recipients get a unique, personal message — sent automatically with a randomized delay.
"Hi {name}" is the cheapest conversion lift in messaging. The same offer, personalized with a name and one contextual detail, consistently doubles reply rates versus an identical blast — and it also keeps your account safe, because a thousand personalized messages are a thousand different strings rather than one repeated fingerprint.
The good news: if you can make a spreadsheet, you can personalize at any scale. This tutorial covers the exact column setup, message syntax, and the formatting mistakes that break campaigns.
How Merge Fields Work
A merge field is a placeholder in your message that gets replaced, per recipient, with a value from your spreadsheet. You write the message once:
And each row produces its own message:
Hi Joseph! Your sourdough loaf is ready for pickup at our Bandra store…
It is the same mail-merge concept email marketers have used for decades — applied to the channel with a 90%+ open rate. If you want to sanity-check merge logic before sending, our free Mail-Merge Preview tool renders every row of a template + CSV in the browser.
Build the Spreadsheet
Open Excel or Google Sheets. Row 1 is your header row — those headers become your merge field names. Keep them short, lowercase and space-free:
| name | phone | item | branch | due_date |
|---|---|---|---|---|
| Kavita | 919812345678 | birthday cake | Andheri | Friday |
| Joseph | 919922334455 | sourdough loaf | Bandra | Saturday |
| Amara | 971509876543 | brownie box | Marina | Friday |
name not Customer Name, due_date not Due Date. Short headers make clean placeholders.- First names only in the name column. "Hi Kavita" reads human; "Hi Mrs. Kavita R. Sharma" reads database.
- Fill every cell you reference. An empty {item} cell produces "Your is ready" — the classic merge embarrassment. Sort by each column and fill or remove blanks.
- Dedupe before export. Paste the phone column into the free Remove Duplicate Lines tool to catch repeats.
Save/export as CSV.
Phone Number Formatting Rules
The #1 cause of failed deliveries is formatting, not the software:
| Written as | Delivers? | Why |
|---|---|---|
919812345678 | Yes | Country code + number, digits only |
+91 98123 45678 | Risky | Plus and spaces need stripping |
9812345678 | No | Missing country code |
09812345678 | No | Leading zero instead of country code |
="91"&RIGHT(SUBSTITUTE(A2," ",""),10) — adapt the prefix and length for your country.Write the Message with Placeholders
In WhatsApp Connect Pro, compose your campaign message and insert any column header in curly braces. A strong personalized template has four parts:
Personal open
"Hi {name}!" — the name in the first five words is what stops the scroll.
Context line
Reference the relationship: "Your {item}…", "Since your last visit to our {branch} store…", "As a {segment} customer…"
One offer, one ask
A single clear value and a single low-friction action: "Reply YES", "Reply MENU", "Tap to confirm".
Human sign-off
"— Anil, FreshBakes". People reply to people. This one line measurably lifts response.
Import, Preview, Send
Import the CSV, and the app maps your columns to merge fields. Then the safety ritual: send a test to your own number first. Check that every placeholder resolved, the attachment opens, and the formatting holds on a phone screen. Then enable the randomized auto delay and start the campaign. Delivery reports show you exactly which rows succeeded.
₹3,000 / $35 per year · No subscription · Access via WhatsApp
Personalization Ideas Beyond {name}
- {city} / {branch} — "now available in {city}" makes a national campaign feel local.
- {last_purchase} — the strongest relevance signal you own: "How is the {last_purchase} holding up?"
- {due_date} / {expiry} — renewals, AMC, subscriptions, policies: "your plan renews on {due_date}".
- {discount_code} — unique per-customer codes let you track exactly who converted from the campaign.
- {amount_due} — polite payment reminders are among the highest-ROI WhatsApp messages a service business sends.
Every one of these is just another spreadsheet column. The data you already have in your billing system or order book is a personalization engine waiting for an export.
Common Errors and Fixes
| Symptom | Cause | Fix |
|---|---|---|
| Message shows literal {name} | Placeholder does not match header exactly | Match case and spelling; use header name, placeholder {name} |
| "Hi ," with blank gap | Empty cells in the column | Fill blanks or remove rows before export |
| Many failed deliveries | Missing country codes / formatting | Apply the formatting rules above; re-run failed rows |
| Numbers like 9.19E+11 | Excel scientific notation | Format column as Text before entering data |
| Garbled characters (’) | CSV saved in wrong encoding | Export as CSV UTF-8 |
Bottom Line
Personalized WhatsApp at scale is a spreadsheet skill, not a technical one: clean headers, formatted phone numbers, placeholders that match, test send, go. WhatsApp Connect Pro is the fastest way to see your own customer data turn into replies.
See Pricing & Access →Where this trips people up
Two quiet killers dominate merge campaigns. The first is the almost-matching placeholder: header says name, message says {Name}, and because nothing errors out, 800 people receive a message containing literal curly braces. Exact-match discipline (lowercase everything) plus a test send catches it every time. The second is trusting Excel with phone numbers: the moment a long number becomes 9.19812E+11, that row is dead, and Excel does this silently the instant you open a CSV and re-save it. Format the column as Text first, or do your final edits in Google Sheets which leaves long numbers alone. And a copy tip learned the hard way: resist stuffing five merge fields into one message because you can. One name plus one genuinely relevant detail outperforms a message that reads like a filled-in form — past a point, visible personalization starts feeling like surveillance instead of service.