Step 1: Prepare the spreadsheet

One row per person, one column per detail, and a header on the top row. The phone column is the only one you must have. Everything else is optional and becomes a merge field.

An example contact sheet with made-up names
phonefirst_nameclassbalance
0888123456ChisomoForm 245,000
0999123456ThokoForm 312,500
+265888654321LimbaniForm 260,000
Do this first: select the phone column in Excel, choose Format Cells, then Text, before you type or paste any numbers. It stops Excel from removing leading zeros or turning long numbers into something like 2.65888E+11.

Step 2: Upload it

  1. Sign in to the dashboard and start a new campaign, or open Contacts.
  2. Drop your file into the upload box.
  3. Match your columns: tell it which one is the phone number, which is the name, and which are merge fields.
  4. Let it process. It cleans the numbers and sorts out the rows it cannot use.

Step 3: Check the summary

You get a count of the rows that can be sent and the rows that cannot, with the reasons. Download the error file if you want to fix those rows and upload them again. Mixed Airtel and TNM numbers are fine, and so are mixed formats: 0888..., 265888... and +265888... all end up the same. The phone number guide has the full list.

Step 4: Write a personal message

Put a column name in curly brackets and each person gets their own value. Add a fallback after a line, so a missing value does not leave a gap: {first_name|there}.

For example, this message:

Dear parent, {first_name|your child} in {class} has a fee balance of MWK {balance}. Please pay by Friday.

What the first person on the sheet receives
YOURSCHOOL

Dear parent, Chisomo in Form 2 has a fee balance of MWK 45,000. Please pay by Friday.

GSM-7, 85 characters, 1 part: K20 per person

Step 5: Check the cost and send

The review screen shows how many people will get the message, the total parts and the cost at K20 per part. Because merge fields change the length, some people's messages may use more parts than others. Send now or schedule it, and follow the status of each message in the campaign.

Common problems and fixes

Common spreadsheet problems, causes and fixes
You seeWhyFix
Numbers like 2.65888E+11Excel changed the number to scientific notationFormat the column as Text and enter the numbers again from the source
Numbers without the leading 0Excel removes leading zeros from number cellsChoose Malawi as the default country at import, or format as Text
Two numbers in one cellA person was given both numbers in one fieldGive each number its own row
Rows marked as duplicatesThe same number appears twiceNothing to do. Only one copy is kept, so nobody is charged twice
Rows marked as opted outThe number is on your opt-out listLeave it. That person asked not to hear from you

If scientific notation has already replaced the digits, Excel may have lost them for good, so go back to the original list. Saving as CSV keeps what you see, so fix the file first. Ready to send? See bulk SMS in Malawi, or how schools use it.

Questions

Which file types can I upload?

Excel .xlsx and .xls files, and CSV files. You can also paste numbers straight into the dashboard, or link a Google Sheet.

How big can my file be?

Up to 500,000 rows or 50 MB. For a file close to that size, CSV is the safest choice.

Do I need column headers?

Use them. You match each column to phone, name or a merge field during the upload, and clear headers make that quick. Headers also become the names of your merge fields.

What if a person has no value for a merge field?

Add a fallback, such as {first_name|there}. If a field has no value and no fallback, the send is stopped with a clear message and nothing is charged, so nobody gets a broken text.

Upload your list

Create an account and try it with a small file first.