What Send to a list does
You write one message. Wherever a person’s own details belong, you drop in a column from your spreadsheet. When it sends, each person’s row fills those gaps, so everyone reads a message made for them.
| A | B | C | |
|---|---|---|---|
| 1 | Parent Name | Mobile | Student |
| 2 | Mrs Tan | 9123 4567 | Ethan |
| 3 | Mr Lim | 9876 5432 | Sara |
| 4 | Mrs Ng | 9111 2233 | Kai |
The spreadsheet is only used for this send. Its columns are not saved to your contacts unless you ask for that (see Advanced). The one thing it does add by default: a phone number you don’t have yet becomes a new contact, so their reply lands in your Inbox.
Not sure this is the right tool? Pick by the job:
Open it from Contacts
Send to a list lives behind the Import button on the Contacts page. Three clicks.
Open Contacts
Click Import
Choose Send to a list
A dialog titled Send message to a list opens over the page. Everything from here happens inside it, in three steps. The grey line under the title always tells you which step you’re on.
Upload your spreadsheet
Drag your file onto the box, or click Browse files and pick it.
Every column becomes a variable you can drop into the message. Nothing is written to your contacts unless you choose to.
A good file has just three things:
- One heading row on top. Each heading becomes the name of a variable, so write Parent Name, not col_a.
- One column of phone numbers. It’s the only column you must have. Exabloom finds it by its heading (phone, mobile, whatsapp, hp, contact no) or by what’s in it.
- One row per message. Two children, two reminders: that’s two rows.
Files can be .csv, .xlsx, .xlsm or .xls, up to 20 MB.
6.59123E+10. Once saved that way, the real number is gone. Before you save, select the phone column and set its format to Text.Check who gets it
Read the big line at the top, open anything amber, then click Next.
Once the file is read, the same step turns into a summary. Before you’ve written a word, it answers two questions: who is getting this? and why not everyone?
All 5 of these can be dropped into the message as variables. Nothing here is saved to your contacts.
First 3 of 128 rows
Here are ① and ② opened up, at full size:
9123 4567 · Mrs Tan - rows 2, 47 · differ in Next lesson: sending “Tue 4pm”, not sending “Thu 4pm”
+65 9876 5432 · Mr Lim - rows 3, 88 · only the first row is sent
Row 63 · “6.59123E+10” - damaged by Excel
Every one of these comes back in the report with its reason.
- This file has 3 sheetsReading “Term 3”. Switch sheet above if that’s the wrong one.
- 1 number damaged by ExcelValues like 6.59123E+10 can’t be read. Format the phone column as Text in your spreadsheet and re-save - these rows are excluded.
- 97 numbers without a country codeRead using this workspace’s default country.
A row is left out for one of three reasons:
- Its number can’t be read, for example a blank cell or a number Excel damaged.
- Its number already appeared on an earlier row. By default each number gets one message, and the first row in the file wins. The list shows what differs, so you can see which version goes out.
- It isn’t a contact yet, and you chose to skip those. By default new numbers are created as contacts instead.
In between sits How we read your file: six decisions already made for you, each with a Change link. The defaults are right for most lists; if one isn’t, see Advanced. Below it, Your columns shows the first three rows of your own sheet, so you can see it was read the way you meant. The violet headings are the ones you can use in the message; the grey one is the phone column.
Pick the sending number
Click the channel the messages should come from.
This choice decides what step 3 looks like. Whatsapp Business (the official WhatsApp API) can only start a conversation with an approved template, so you pick one and fill its blanks. Any other channel gives you a plain message box. If nothing is connected, you’ll see Connect a channel instead, which takes you to Settings.
Write the message
On every channel it works the same way. Click the tag icon, pick a column, and it drops in as a violet chip like Student. A chip is one piece: Backspace removes all of it, never half. Most workspaces send from WhatsApp Business, so that path comes first.
Fill a WhatsApp template
On WhatsApp Business, step 3 has three tabs: 1. Select template, 2. Configure, 3. Schedule. You can’t skip ahead: Configure opens once a template is picked, and Schedule once every blank is filled.
Click your template, then Next.
Hi {{1}}, just confirming {{2}}’s {{3}} lesson on {{4}}. See you then!
Hi {{1}}, a friendly reminder that Term 4 fees are due on {{2}}.
You’re invited to our open house this Saturday!
For each numbered blank, click its tag icon and pick the column that fills it.
You can’t change the words of an approved template. What you decide is what fills each numbered blank, like {{1}}. The template’s text sits at the top so you can see which blank is which.
Hi {{1}}, just confirming {{2}}’s {{3}} lesson on {{4}}. See you then!
Columns of term-3-parents.xlsx · used in this message only
A blank can hold more than one thing: mix chips and typed words, like “Class (Term 3)”. Each blank is capped at 256 characters. The menu also has Contact fields, Custom values and Date & time, and the search box looks through all four. If the template has an image, video or document header, you can upload your own file or leave the template’s default.
Set “If empty, use”: don’t skip this
WhatsApp refuses a template message with an empty blank. So if a column is empty on some rows, those people get nothing, and the report marks them as errors. The fix takes one word per blank.
Under every blank you filled from a column, type a stand-in in If empty, use: “there”, “your child”, “your usual slot”.
Leave this blank and the message will not send when this variable comes back empty.
4 rows have an empty Next lesson - it will render blank.
4 rows will not send - a variable is empty and has no If empty text.
Here is ② at full size, before and after filling ①. The row stays the same; only what Mrs Ng would read changes.
4 rows have an empty Next lesson - it will render blank.
4 rows will not send - a variable is empty and has no If empty text.
Page through rows with the arrows, or pick one from the list by name. You can page through the first 50 rows, but the warnings count every row in your file. Violet text is a value from the row: exactly what that person will read.
Other channels: type it
On any channel other than WhatsApp Business, there are no templates and no tabs. You get one screen: the recipient card, a message box, the preview, and the schedule underneath.
2 rows will not receive a message - their number already appears on an earlier row.
New contacts will be created for numbers you do not have yet. 1 row excluded (no valid phone number).
4 rows have an empty Next lesson - it will render blank.
…then the interval, days and hours, as on WhatsApp Business.
There’s no approval and no rule about empty values: an empty column just leaves a gap, so an amber “empty” in the preview is a warning about looks, not about delivery. You can attach an image or a document, and its caption takes chips too. The button at the bottom reads Send message.
Schedule it and send
Give it a name, check the start time, then click Send.
The card at the top repeats the count from step 1, so you don’t have to go back and check. Below it, the schedule decides when and how fast it goes out. On other channels this sits under the message box.
2 rows will not receive a message - their number already appears on an earlier row.
New contacts will be created for numbers you do not have yet. 1 row excluded (no valid phone number).
Your bulk message has been scheduled.
It will be sent over the next period based on your schedule.
- Action name is how the send is listed on the Bulk Actions page. It starts as a date and time; “Term 3 lesson confirmations” is easier to find later.
- Start on is when the first batch goes out. It starts one minute from now.
- Batch quantity (up to 5) and Time interval per batch set the pace: by default, 1 message every 5 minutes.
- Days and hours set when sending is allowed. Outside them it waits and carries on in the next allowed slot, which keeps a big send from arriving at 3am. The default is every day, 08:00 to 20:00.
On an official WhatsApp Cloud API number you’ll also see Enable high throughput? Switch it on to drop the pause between batches.
Track it and get the report
Your send shows up on the Bulk Actions page as a Send Message action, under the name you gave it. Its status goes from Creating to Processing to Completed, and you can pause or cancel it from the same menu while it runs.
Click the ⋮ next to its name, then Download send message report.
Monitor, pause, resume, and review large-scale operations across your contacts in a single place.
You get your own spreadsheet back, same columns in the same order, with Status and Reason added at the end. If your sheet already had a Status or Reason column, the new ones are called Exabloom Status and Exabloom Reason.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Parent Name | Mobile | Student | Next lesson | Status | Reason |
| 2 | Mrs Tan | 9123 4567 | Ethan | Tue 4pm | SUCCESS | |
| 3 | Mr Lim | +65 9876 5432 | Sara | Wed 5pm | SUCCESS | |
| 4 | Mrs Ng | 9111 2233 | Kai | SUCCESS | ||
| 5 | Mrs Tan | 9123 4567 | Ethan | Thu 4pm | SKIPPED | Duplicate of row 2 |
| 6 | Mr Ong | 6.59123E+10 | Jun | Fri 3pm | ERROR | Invalid phone number |
Every row ends up with one of these:
Change how the file is read, or keep a column
Most sends never need this section. It covers the Change links in step 1, saving a column onto your contacts, and what happens if you swap the file halfway.
Change a decision under How we read your file
Click Change next to any row and a control opens in its place; click Done to close it. The count at the top updates straight away.
- Phone column: which column the messages are sent to.
- Name for new contacts: used only when a number isn’t a contact yet. The value is split at the first space into first and last name. Not set, and the contact is named after the number.
- Rows not in your workspace: Create new contacts (the default) or skip those rows. Leave it on for anything you want replies to. With it off, the headline says “Up to” because the exact count is only known once it sends.
- Repeated numbers: Send once per number (the default, first row wins) or send every row.
- First row: Column headings or Data, not headings. With no headings, columns are named Column 1, Column 2 and so on.
- Sheet: only shown when the workbook has more than one. The first sheet is read unless you pick another.
Save a column onto your contacts
If a value is worth keeping, like a student’s name or a class, you can write it onto each contact as part of the send. It’s off for every column until you tick one, and it’s the only thing in the dialog that changes your contacts’ details.
Off for every column. Tick one to write that row’s value onto the contact when the blast is created - that is the only thing here that touches your CRM.
This field doesn’t exist yet - it’s created when you send.
You can pick a built-in contact field, one of your custom fields, or create a new custom field right there. A new one shows · new and is only created when you send; close the dialog and nothing is created. Each contact field takes one column.
If you replace the file halfway
You can go Back to step 1 and click Replace at any point. Any chip that pointed at a column the new file doesn’t have turns into a red Deleted variable, and Send stays switched off until you remove it or pick the matching column. Otherwise someone would read a raw {{list.Term 3 grade}}.
This message uses a column your file no longer has
Term 3 grade - remove it or pick the matching column from the variable menu before sending.
Behind every chip is a plain token like {{list.Parent Name}}. You can type or paste one, and it turns into a chip as soon as it matches a column.
Setups to copy
Four common jobs. The two settings that change most between them are Repeated numbers and Rows not in your workspace.
Good to know & pitfalls
- There is no draft. The file, the settings and the message live in the dialog only. Closing it with the X, pressing Esc or clicking the dimmed page behind it throws everything away. Have your template approved and your file ready before you start.
- Format the phone column as Text before you save the file. Excel turns long numbers into
6.59123E+10, and the real number is gone. Those rows are left out. - On WhatsApp Business, a blank placeholder stops the row. WhatsApp refuses a template with an empty value, so that person gets nothing and the report says Empty value for … with no fallback. Fill every If empty, use box.
- “Don’t send to contacts from past campaigns” has no effect here. The button shows on the schedule, but a list send ignores it today. Use Repeated numbers and your own spreadsheet to decide who is on the list.
- Sending starts at your Start on time, not instantly. It goes out in batches inside the days and hours you set. Watch it on the Bulk Actions page.
- Your spreadsheet is not saved to your contacts. The columns exist for this send only, unless you tick one under Also save a column to a contact field. New numbers do become contacts while Create new contacts is on, so their replies reach your Inbox.
- Numbers without a country code use your workspace’s default country. If the list mixes countries, write the code into every number (
+6591234567). - Every column needs a heading. A column with a blank heading is ignored, a repeated heading gets a “(2)” added, and only the first 60 columns are read (headings up to 64 characters). Delete columns you don’t need before uploading; the variable menu gets easier to use too.
First big send coming up?
Send us the file and we’ll check it with you before it goes out. Our Singapore-based team is one message away.