Export your Excel or Google Sheets list as a CSV with a phone column (country code included) plus name, custom1 and custom2 columns. Import it into a WhatsApp bulk sender such as Wassuply, write one message that uses those columns as merge fields, and send with random gaps. No contacts saved, no API, no copy-pasting.
phone, name, custom1, custom2.{Hi|Hey} {name} style merge fields and spintax, or AI per contact.The steps below use Wassuply, a Windows and Mac app for warming up and running many WhatsApp numbers for cold outreach. The spreadsheet part works the same for any bulk sender.
One column is required: the phone number. Three more are optional and become merge fields. Use these headers in the first row:
| phone | name | custom1 | custom2 |
|---|---|---|---|
| 447700900123 | Priya | Brightline | Leeds |
| +1 202 555 0143 | James | Acme Corp | Austin |
| 61 491 570 156 | Mia | Harbour Dental | Sydney |
+1 202 555 0143 works as well as 12025550143. What does not work is a number without its country code: it will be read as a different number.Wassuply's campaign import reads .csv files, so save your .xlsx as CSV first. UTF-8 keeps names with accents and non-Latin characters intact.
Start a new campaign and upload the file in the first step (or paste numbers instead). Wassuply drops duplicate numbers and anything too short to be a phone number, and tells you how many rows it removed. Nobody is added to your phone's contacts; if that is what you are after, see how to send WhatsApp messages without saving the number.
Merge fields use single braces: {name}, {phone}, {custom1} and {custom2}. Add spintax, alternatives in braces separated by pipes, so the wording changes from contact to contact as well:
{Hi|Hey} {name}, {Sam here|it's Sam} from Northwind. Saw {custom1} is growing in {custom2}. {Worth a quick chat|Open to a 5-minute call} this week?
For the first row above, one possible result is: "Hey Priya, it's Sam from Northwind. Saw Brightline is growing in Leeds. Open to a 5-minute call this week?"
Pick one or more connected WhatsApp numbers. The list is split across them, and when one number reaches its daily cap the next one picks up. Each number runs in its own isolated session with its own browser fingerprint and optional proxy, side by side in one app.
Only send from numbers that are ready. A brand-new number should warm up for at least 15 days before its first campaign, and 30 is recommended; Health & Risk gives each number its plan, safe daily limit and first campaign size. The WhatsApp warmer page explains how warm-up works.
These are Wassuply's defaults. Why each one matters is covered in how to avoid a WhatsApp ban and WhatsApp sending limits.
The campaign screen lists every contact with its planned wait and estimated send time, and you can pause or stop at any point. With Smart Send on, a number slows down when its live ban-risk score reaches 60 and pauses at 80, and the panic button stops everything. No tool can honestly promise you'll never be banned; Wassuply removes what gets numbers banned.
Import your CSV, write one message, let Wassuply pace it. Free download for Windows 10/11 and macOS 12+.
Save it as CSV first. Wassuply's campaign import reads .csv files, which every spreadsheet app can export: in Excel use File, Save As, CSV UTF-8.
Only a phone column is required (phone, mobile or number; otherwise the first column is used). Add name, custom1 and custom2 columns to use them as the merge fields {name}, {custom1} and {custom2}.
Yes. Wassuply reads only the digits, so +44 7700 900123 and 447700900123 both work, but 07700 900123 has no country code and would go to the wrong number.
No. Campaigns, contacts and message history stay on your computer. Sign-in, Warm-up Pods and the optional encrypted backup use Wassuply's cloud.
There is no universal safe number. Health & Risk gives each number a safe daily limit from its age and history. To send more, add more warmed numbers and split the list across them.
More: the Wassuply WhatsApp bulk sender, and how sending without the API works.