Bulk WhatsApp Sender Helper
Send a personalized WhatsApp message to a whole list of contacts, without typing each one. Paste your list, write the message once with placeholders like {{Name}}, and get a ready-to-open chat link for every person. You stay in control: every message is still sent by you, with one tap.
📘 New here? Read the step-by-step guide →Your contacts
One row per person. The first column is the WhatsApp number; every other column becomes a field you can drop into the message.
Or simpler: select your columns in Excel or Google Sheets, copy them, and paste into the first cell of the table.
| International format, digits only, e.g. 447700900123 | ||
|---|---|---|
🇬🇧 | ||
🇬🇧 | ||
🇬🇧 |
Your list is saved on this device so you can close the tab and finish later, it’s never uploaded. Use “Clear all” to remove it.
Your message
Write it once. Fields like {{Name}} are replaced with each contact’s own values, check the preview to see the result.
Click a field to insert it into your message:
WhatsApp formatting works: *bold*, _italic_, ~strikethrough~.
Pro tips: {{Name|there}} sets a fallback when a field is empty, {{FirstName}} uses just the first name, and {{morning|afternoon|evening}} picks one variation at random per contact (so 100 messages aren’t identical).
Hello Emma, remember to come tomorrow to the meeting at 10:00. See you there!
Your links
One personalized link per contact. Open the chats one by one, WhatsApp opens with the message ready, you just tap send.
What gets numbers banned is blocks and reports, not raw volume, so the people you write to matter more than how many. Don’t blast a big list at once, especially to people who don’t have your number saved. On a new number, start at 10–30 messages a day to contacts who already have you saved, reach 30–50 in week one and 100–200 by the end of week two, then cap around 200 a day and add a second number rather than pushing this one. Keep it under 30 an hour, space the sends across the day, personalize every message, and only write to people who expect to hear from you.
Full warm-up schedule and ban triggers →| Done | Contact | Message | Link |
|---|---|---|---|
| Emma | |||
| Liam | |||
| Aisha |
Nothing is sent automatically: each link opens WhatsApp with the message pre-filled, and you tap send for every chat.
Everything runs in your browser, your contact list is never uploaded anywhere.
Saves everything, contacts, message, opt-out list and which chats you’ve already opened, as a file you can keep or reopen on another device. Import it here to carry on where you left off.
What this tool does (and deliberately doesn't)
WhatsApp's click-to-chat links can pre-fill a message for a specific number, but only one at a time. This tool does the repetitive part for you: it merges your contact list into your message template, like a mail merge, and produces one [wa.me link](/whatsapp-link-format) per person. Opening a link shows the chat with the personalized text already typed; you review it and tap send. Nothing is ever sent automatically: WhatsApp doesn't allow that from links, and pretending otherwise is how numbers get banned.
That makes it ideal for the in-between scale: reminding 40 parents about a school meeting, inviting 100 members to the club assembly, confirming appointments for the week, or thanking every volunteer by name after an event. The checklist keeps your place: each opened chat is ticked off, so you can stop halfway and continue after lunch. When you'd rather work from your spreadsheet, download the CSV: it contains every contact, the final message and the link, ready to share with a colleague who does the sending.
Because it only builds standard wa.me links and never touches the official WhatsApp Business API, there's nothing to apply for and no eligibility gate, which also makes it one of the few bulk-messaging options open to political parties and electoral campaigns, who Meta bars from that API. Whoever you are, send responsibly: what gets numbers restricted is blocks and reports, not raw volume, so warm a number up first (10–30 messages a day at the start, 100–200 by week two, capped around 200) and only message people who expect to hear from you. Not sure the link approach fits at all? Compare the three WhatsApp account types.
Your list never leaves the browser: the table, the template and the links are all built on your device, and nothing is uploaded or stored on our servers. For one-off links, the WhatsApp Link Generator is quicker; for print, turn any link into a QR code.
Not sure this is the right approach at all? A broadcast list, a group, a Channel or the official API each fit a different job, and each has a catch worth knowing before you commit. We compare all seven ways to message many people on WhatsApp, including who they actually reach and what gets a number restricted.
Frequently Asked Questions
wa.me click-to-chat links in your browser. It never connects to the WhatsApp Business API or any WhatsApp server. There's no approval process, no API key and no eligibility check: if you can send a WhatsApp message by hand, you can use these links. Because it doesn't touch the official API, it's also open to organizations the API excludes (see the next question).wa.me links that you open and send yourself, exactly like typing a message by hand, which is ordinary personal WhatsApp use. Stick to the usual etiquette (message people who opted in, personalize, don't blast strangers, and warm your number up), and read We Are a Political Party: Can We Use the WhatsApp API? for the compliant options in depth.{{Name}} in the message template inserts that row's value from the Name column, so "Hello {{Name}}" becomes "Hello Emma" for Emma's link and "Hello Liam" for Liam's. Add as many columns as you like (dates, amounts, locations) and click the field chips above the message box to insert them. Matching ignores case, and a misspelled placeholder stays visible in the preview so you can spot it.+, spaces, dashes or leading zeros. For example, UK 07911 123456 becomes 447911123456. The table flags numbers that look wrong (kept the leading 0, missing country code) without blocking the rest of your list. See the complete wa.me link format reference for details.Time or Amount), fill it in per contact, and use {{Time}} or {{Amount}} in your message. Every new column becomes a placeholder chip above the message box. That's how you go from "Hello {{Name}}" to "Hello {{Name}}, your appointment is on {{Date}} at {{Time}}".*bold*, _italic_, ~strikethrough~ and triple backticks for monospace. The preview renders the formatting exactly as WhatsApp will.