How to send bulk WhatsApp messages from Excel without getting banned
In short
Send it through the WhatsApp Business Platform, not through a tool that drives WhatsApp Web or the app. Save the sheet as a CSV with a phone number column that includes the country code, a first name column and a record of who agreed to hear from you; import it into a platform provider; send an approved template whose blanks are filled from the columns; and leave out everybody who did not agree. Bulk-sender extensions and "WhatsApp marketing software" that automate the ordinary app break WhatsApp's terms, and that is what gets numbers banned.
Checked
There are two ways to send WhatsApp messages to a spreadsheet of customers. One of them ends with a banned number, usually the one printed on everything you own.
The way that gets numbers banned
Search “bulk WhatsApp sender” and most results are browser extensions or desktop programs that take an Excel file and type each message into WhatsApp Web for you, one chat after another, sometimes with random pauses to look human.
WhatsApp’s terms do not allow automated or bulk messaging through the ordinary app or WhatsApp Web. It looks for exactly this pattern, and a number that suddenly messages hundreds of people who never saved it, and gets reported by a few of them, is banned. Sometimes after the first run, sometimes after the fifth. The extension keeps working; the number does not.
The pauses do not help. Neither does a “safe mode”. The tool is not the problem the detection is looking for — the messages are.
The official way
The WhatsApp Business Platform exists for this. Meta sells businesses the right to message customers at volume, through a provider, with rules: a template Meta has approved, a person who agreed to hear from you, and a limit on how many new people a day while your account is new. Follow them and there is nothing to detect.
What it takes from your spreadsheet is the same file, prepared properly.
Preparing the sheet
One row per person, one column per fact. Name in one column, phone in another. A cell holding “Priya – 98250 12345 – Ahmedabad” cannot be imported by anybody.
Phone numbers with the country code. +91 98250 12345 or 919825012345 are unambiguous. 98250 12345 is fine if every number in the file is from one country and you tell the importer which. A mix of countries without codes is guesswork.
Excel will damage the numbers if you let it. It turns 919825012345 into 9.19825E+11 and drops a leading zero. Format the phone column as Text before pasting into it, and check a few rows before you save.
A first name column, if your message greets people by name. Expect blanks — in a real customer list, a good share of rows have none.
Where and when each person agreed. A column that says “billing counter form, March 2026” or “website checkout box” is what makes the list usable, and the thing you can point to if anybody asks. Rows with nothing in it are people you do not yet have permission to message. What counts as agreeing.
Duplicates out. The same number twice is the same person getting your message twice.
Save as CSV. In Excel, File → Save As → “CSV UTF-8 (Comma delimited)”. The UTF-8 part keeps names written in Hindi, Gujarati or any other script intact. In Google Sheets, File → Download → Comma-separated values.
The message
A broadcast is a template: text you submit to Meta once, approve, and then send to everybody, with blanks filled per person. “Hi {{1}}, your order is ready to collect” fills {{1}} from the first name column.
Decide what happens to the blanks. For a row with no first name, either give the variable a fallback — “Hi there” — or leave those people out. A message that reads “Hi , your offer is live” is refused by Meta, and is worse when it is not.
Promotional messages need a way to stop: a “Stop promotions” button, and a tool that honours it automatically. Why templates get rejected. · Templates to start from.
Sending it
- Import the CSV and match each column to a field. Check that the count of people you can message matches what you expect.
- Choose who receives it. Only people who agreed, minus anybody who has unsubscribed.
- Look at the number before you press send. A list of 4,000 might be 2,600 people after the unsubscribed, the duplicates and the unreadable numbers come out. That is the number you are approving, and what it can cost.
- Start small. A new business account can message 250 different people a day until it is verified, and it is better to find a problem with 250 than with all of them. The daily limit, explained.
Doing it in talkv
talkv imports a CSV exported from Excel or Google Sheets, up to 20 MB. It guesses which column is which and asks you to confirm, reads phone numbers in any local format using your workspace’s country for the ones without a code, and records each person’s consent: agreed, no record, or unsubscribed. Re-importing the same spreadsheet never re-subscribes somebody who unsubscribed. Before a broadcast goes out, it shows who will receive it, who is left out and why, and the most it can cost.