Sending bulk WhatsApp messages the official way, from an Excel file

How to send bulk WhatsApp messages to your customers from an Excel or CSV file, the official way — preparing the file, approved templates, the cost and the daily limit — without risking your number.
You have a list of customers in an Excel file: your clinic's patients, your institute's students, the diners who left their numbers at your restaurant. You want to send all of them one WhatsApp message: an offer, a reminder, a piece of news.
Most of the ways people do this are unofficial: bulk sending from a phone, or unofficial bulk-sending software. Those put your number at risk of a ban. This article explains the official way: a campaign from your file over Meta's official connection, step by step.
Can you send bulk WhatsApp messages the official way?
Yes. Meta lets businesses send in bulk over the official connection (WhatsApp API), on two conditions: the message is a template Meta has approved, and it goes to people who expect to hear from you.
The difference from sending from a phone is large. The WhatsApp app on a phone, and numbers linked as a device the way WhatsApp Web is, weren't built for bulk sending: no approved templates, no published daily limit, and a number that messages a big list this way puts itself at risk of a ban. That is why campaigns in ATMET Chat go out over the official connection only.
What do you need before your first campaign?
- A number on the official connection. You connect it from the channels page in ATMET Chat, and it can be your current number.
- A template approved by Meta. You write it in ATMET Chat and send it to Meta for review, which can take up to 24 hours. If you'd rather not write it yourself, press "Write with AI", describe the message in your own words, and get up to three drafts.
- A payment method on your WhatsApp Business account. Meta charges for every template message, and without a payment method no template is sent.
- Customers who agreed to your messages. Numbers of people who dealt with you or signed up with you, not bought lists.
How do you prepare the Excel or CSV file?
The file is xlsx or csv, its first row holds the column names, and every row after it is one customer.
- A phone column, in international form like 9665XXXXXXXX, or local form like 05XXXXXXXX. A local number takes the country code of your own number, or Saudi Arabia's when that can't be read.
- Data columns you will put in the message: the name, the branch, the appointment time, or anything else.
- Size: up to 100,000 rows and up to 40 columns in one file.
Don't worry about incomplete rows. A row with no number, an invalid one, a duplicate, or a number on your excluded numbers list is skipped and named in the campaign's results, and doesn't stop the rest.
How do you link the file's columns to the template?
A template has variables, like the customer's name or their appointment. When you create the campaign you pick a source for each one: a column from the file, so every message takes its value from its own row, or fixed text, which reaches everyone as written.
A campaign in ATMET Chat has four steps:
- Basics: the campaign's name, and its purpose, targeting from a file.
- Message: the approved template.
- File and mapping: upload the file and map each variable to its column.
- Schedule: send now, or at a time you set.
A template in a file campaign can carry an image or a document in its header, and buttons with a fixed link. Buttons whose link changes per customer aren't part of this kind of campaign. If your file has a discount code per customer, put it in the message from its column.
What should your campaign say? Examples from different businesses
The type of message decides its template and its price. Examples of campaigns from a file:
- A clinic: reminding patients of tomorrow's appointments, with the doctor's name and the time from the file's columns. That is a utility message, since it concerns an appointment the patient booked.
- An institute or training centre: announcing that registration is open for a new course, to students of past courses. That is a marketing message.
- A restaurant: a new menu or a weekend offer for people who left their number with you. A marketing message.
- A real-estate office: telling people who asked about a district about a new property there. A marketing message, and best sent after splitting your file by district so each message reaches someone it matters to.
- A salon: a booking reminder, which is a utility message, or a seasonal offer, which is marketing.
The rule: anything about an existing transaction the customer asked for is a utility message, and anything inviting them to something new is a marketing message. Don't slip an offer into a utility template: Meta moves it to marketing and charges the marketing price.
What does the campaign cost?
Meta charges for every message delivered, by its type and the customer's country. For a customer in Saudi Arabia, on Meta's rate card in effect since October 1, 2026:
- A marketing message (an offer, an invitation, a piece of news): 0.2159 SAR.
- A utility message (an appointment reminder, a booking confirmation): 0.0401 SAR.
So a marketing campaign that reaches a thousand customers costs 215.90 SAR in Meta fees, and reminding five hundred patients of their appointments costs 20.05 SAR. You pay Meta directly, and ATMET adds nothing on top. Prices for every country are on the Meta message rates page.
How many messages can you send in a day?
Meta sets a daily limit on how many distinct customers you start a conversation with on a template in a rolling 24 hours. The limit is set for your business portfolio on Meta and shared by all your numbers in it; it starts at 250 customers and rises in steps until there is no limit, and verifying your business with Meta is one of the ways to raise it to 2,000. The details are in our guide to the official WhatsApp API.
ATMET Chat reads the limit from Meta and shows it before you send, and when your file is bigger than your limit the campaign runs over several days. If Meta doesn't report the limit, we send up to 250 messages a day.
The speed follows your number. If it also runs on the WhatsApp Business app on your phone, the campaign goes out gradually, one message a second, because the app treats fast sending as spam. If it is on the official connection alone, you can send fast.
How do you protect your number in bulk campaigns?
- Send to people who know you. A cold list is the first cause of a drop in a number's quality.
- Add an unsubscribe button to marketing templates and set it to stop campaigns. Whoever taps it goes on your excluded numbers list and gets no more campaigns from you.
- Don't repeat a campaign to the same customer too soon. Meta doesn't deliver marketing messages to a customer who has had many.
- Start with part of the file. Try a hundred customers, see what was delivered, then send to the rest.
More in Why does a WhatsApp number get restricted after a campaign?.
How do you see the campaign's results?
Every campaign has a results page: how many messages were actually delivered, how many were sent, how many failed, how many were skipped, and who unsubscribed.
From the same page you can export the results to Excel or CSV, all of them or only the undelivered ones. And you can create a new campaign for those it didn't reach in one click, retrying them without sending again to anyone it did reach.
Which plan includes campaigns from a file?
For businesses without an online store, campaigns from an Excel or CSV file are on every plan, from Plus at 99 SAR a month, because a file is the main way you reach your customers. Alongside it come a team inbox and keyword auto-replies, and from Pro, an AI that answers from your files.
For stores on Salla, Zid and Shopify, targeting from a file is included from the Pro plan, since a store's customers already reach ATMET Chat from the store itself.
The plans in full are on the businesses page.
Frequently Asked Questions
Which plan includes campaigns from an Excel or CSV file?
For businesses without an online store, campaigns from a file are on every plan, from Plus at 99 SAR a month. For stores on Salla, Zid and Shopify, targeting from a file is included from the Pro plan.
How many rows can the file have?
Up to 100,000 rows in one file, and up to 40 columns. The first row holds the column names.
Do I need a new number to send officially?
No. You can connect your current number to the official connection (WhatsApp API). If your number is on the WhatsApp Business app, the app keeps working on your phone with the same number.
Does the message arrive under my business's name?
Yes. It is sent from your business's own number and under its name, on a template Meta approved for you, and the customer can reply to it; their replies land in your inbox.
What does one message cost?
Meta charges for every message delivered. For a customer in Saudi Arabia a marketing message is 0.2159 SAR and a utility message 0.0401 SAR, on Meta's rate card in effect since October 1, 2026. You pay Meta directly, and ATMET adds nothing on top.
Interested in applying this to your business?
