Contacts3 steps

How to import contacts from an Excel or CSV file

Last updated: 12 September 2026

This article shows you how to import contacts into Rasil from an Excel or CSV file in three steps: Upload the file, Map columns, then Preview and finish. Use it when you have a large list of contacts and want to add them all at once instead of entering them one by one.

Before you start

Start from the ready-made template (the easy way)

The upload step asks Don't have a template? and gives you a Download template button. Download it and fill in your data: it is a CSV file whose columns are named exactly as Rasil names them, so the mapping is direct.

ColumnMaps to
nameName
emailEmail
phonePhone
localeLocale
labelsLabels

Swipe the table sideways to see the rest

File requirements

  • Supported formats: .csv, .xlsx, .xls, .tsv, and tab-delimited .txt
  • Number of rows: the upload screen states a limit of 5,000 rows per file.
  • The first row must contain your column headers (for example: Name, Number), not contact data.

Required data

  • Email or phone — at least one of them is mandatory. You cannot continue the import until you map a column to one of these two fields.
  • Name is not required for an import. If the name cell is empty, Rasil fills in No name and the row stays valid. (This differs from adding a contact by hand through the New contact form, where the name is required.)
  • Phone numbers must be in international (E.164) format. Write the number as +, then the country code, then the rest — unbroken digits, no spaces, dashes or brackets, and no leading zero.
    • ✅ Correct: +966500000001
    • ❌ Incorrect: +966 50 000 0001 (spaces) · 966-50-000-0001 (dashes) · 0500000001 (leading zero) · 00966500000001 (starts with 00 instead of +)

    Rows whose numbers don't follow this format are marked Invalid with an Invalid phone message and are skipped on import.

  • A labels column (if you have one) separates labels with a comma , or a semicolon ;, for example: customers, Riyadh, 2026.

Getting to the import page

Open the Contacts page

In the sidebar of your dashboard, click Contacts to open the contacts management page.

The Contacts option in the Rasil dashboard sidebar

Click Import

On the Contacts page, click the Import button in the toolbar at the top of the page. This takes you to the Import contacts page.

The Import button in the Contacts page toolbar

The three import steps

The import page is a three-step flow, shown in the Import steps indicator at the top: 1 Upload → 2 Map columns → 3 Preview.

In steps 2 and 3 you can go back one step with the Back button, or leave the flow with Back to contacts.

Step 1: Upload

In the Upload step — headed Upload your file — upload the Excel or CSV file that contains your contact data. Drag and drop the file onto the area marked "Drop a CSV or Excel file or click to browse", or click it to browse for the file on your device.

The upload area also states what it takes: "Accepts .csv, .xlsx, .xls, .tsv, and tab-delimited .txt up to 5,000 rows."

If you don't have a file ready, click Download template under Don't have a template?, fill it in, and upload it.

The upload area for a CSV or Excel file and the download template button on the import contacts page

Step 2: Map columns

In the Map columns step — headed Match your columns — match each column in your file to its corresponding contact field in Rasil. The table shows three columns: Column, Sample values and Maps to, so you can see real values from your file while you choose.

Example: if your file's column is called Number, map it to the Phone field in Rasil. If your columns already use the template's English names, you'll find them matched automatically and won't need to change anything.

Fields available under Maps to:

  • Contact fields: Name · Email · Phone · Locale · Labels
  • Custom fields: any fields you have defined under Settings → Custom fields. This group only appears if you have already defined custom fields; otherwise the list shows the contact fields and the Ignore option only.
  • Ignore: skip the column and don't import its data

Important rules in this step:

  • You must map a column to Email or Phone before you can continue, otherwise you'll see: "Map a column to Email or Phone before continuing."
  • A contact field can only be mapped to one column.
  • Unmatched columns are ignored and their data is not imported.
The map columns table with the file's five columns automatically matched to contact fields

Apply labels to all imported contacts

At the bottom of the mapping step — directly below the column table and above the Back and Continue buttons — you'll find the Apply labels to all imported contacts block, with a row of label chips you click to select. Choose the labels you want applied to every contact in this file, so you can find them easily later.

If your file has a mapped Labels column, the labels in it are added on top of these general labels rather than replacing them. Within a single cell, separate labels with a comma , or a semicolon ;.

Any new label in that column is created automatically in your workspace — you don't need to create it first, and this happens even if the block above doesn't appear for you.

Then click Continue to move on to the preview step.

Choosing the labels applied to imported contacts

Step 3: Preview

In the Preview step — headed Preview before importing — review your data before importing it. The page shows:

  • Row counters: Valid · Invalid · Total rows.
  • A review table that by default shows the first 20 rows of your file — or all of them if the file is smaller — "Showing first :count rows." — with each row's status.
  • An "Only show rows with errors" filter so you can review just the invalid rows. With it on, the table lists every invalid row in the whole file, not only the first 20.

"Invalid rows are highlighted and will be skipped on import." Valid rows are imported normally.

Once you've confirmed the data looks right, click Import :count contacts (for example: Import 4 contacts) to complete the import. While it runs you'll see the progress as "Importing… :sent of :total".

Previewing contacts with the valid and invalid row counters before completing the import

After the import completes

When the import finishes, an Import complete screen appears, showing:

  • A result counter: how many contacts were Imported, and how many rows were Skipped.
  • Import another file — start a new import right away.
  • View contacts — go to the Contacts page and see what was added.
The import complete screen showing how many contacts were imported and skipped

Tips

  • Start from the template. Downloading the template and filling it in saves you most of the mapping work, because its columns carry the names Rasil recognises.
  • Clean up your phone numbers before uploading. Strip spaces, dashes and brackets, drop any leading zero, and start the number with + and the country code (+966500000001). Contact files often arrive with numbers formatted using spaces or dashes, and that is one of the most common reasons rows come back invalid.
  • Check your file before uploading. Make sure the first row holds clear column headers and that your data starts on the second row.
  • Use the error filter in the preview. "Only show rows with errors" is the fastest way to see what will be skipped and why before you import — and it lists every invalid row in the whole file, not just the first 20 the table shows by default.
  • Test with a small file first. If your list is large, import a handful of rows to confirm the mapping is right, then import the rest.
  • Put labels to work. Add a label for each import batch (the source name or the import date, for example) to make filtering those contacts easier later.
  • Don't rush past the preview. It is your last chance to catch a mapping mistake before the data is actually added.

Frequently asked questions

Which file formats can I upload?

You can upload Excel or CSV files in these formats: .csv, .xlsx, .xls, .tsv and tab-delimited .txt.

How many contacts can I import at once?

The upload screen states a limit of 5,000 rows per file.

Why did all my columns come up as Ignore in the mapping step?

Most likely because your file's column headers are in Arabic — automatic matching only recognises the English names used by the template (name · email · phone · locale · labels).

The quickest fix: use Download template and move your data into it, or rename your file's headers to the English names above.

The map columns step with every column set to Ignore after uploading a file with Arabic headers

If an import stops halfway and I upload the file again, will contacts be duplicated?

No. The contacts that made it in on the first attempt will not be duplicated when you upload the same file again.

And if your list already contains older duplicates, the Find duplicates tool on the Contacts page helps you review and resolve them.

What happens if I leave a column unmapped?

Unmatched columns are ignored and their data is not imported — and you can explicitly choose Ignore for any column you don't need.

Keep two rules in mind, though: you must map a column to Email or Phone before continuing, and a contact field can only be mapped to one column.

What happens if some rows are invalid?

The preview step shows Valid, Invalid and Total rows counters, and you can turn on the Only show rows with errors filter to review them — it lists every invalid row in the file, not just the first 20. Invalid rows are highlighted and will be skipped on import, while valid rows are imported as usual.

What do the error messages mean?

Messages differ depending on where they appear, at three levels:

File-level messages (shown in the Upload step)

These mean the file itself wasn't accepted, and you won't reach the mapping step until you fix it.

MessageCause and fix
That file looks empty.The uploaded file contains no data at all.
The file has a header row but no data rows.The header row is there, but there are no data rows beneath it. Add your data and upload again.
We couldn't find a header row.There is no header row at all. Make the first row your column names (for example: Name, Number), not contact data.
We couldn't read that file. Make sure it's a CSV or Excel file.The file is corrupted or in an unsupported format. Save it again in one of the supported formats and upload it.

Swipe the table sideways to see the rest

Messages in the Map columns step

MessageCause and fix
Map a column to Email or Phone before continuing.No column was mapped to either field. Map a column to at least one of them.
A contact field can only be mapped to one column.You mapped the same field to two columns. Set one of them to Ignore.

Swipe the table sideways to see the rest

Cell-level messages (shown inside a row in the Preview step)

These apply to a single row, and they are why it appears among the Invalid rows that will be skipped on import. Use the Only show rows with errors filter to review them all at once.

The custom-field messages only appear if you have defined custom fields and mapped a column to one of them.

MessageCause and fix
Invalid phone (use +1234567890)The number is not in international format. Add + and the country code.
Invalid emailThe email format is not valid. Check the cell in your file.
Add email or phoneThe row has neither an email nor a phone number, and one of them is required.
Too longName field only: the name exceeds 200 characters. Shorten it.
Value too longCustom fields only: the value exceeds 2,048 characters. Shorten it.
Must be a numberThe custom field is of type number, and the value isn't one.
Not in allowed optionsThe custom field is of type select, and the value isn't one of its options. Check the field's options under Settings → Custom fields.

Swipe the table sideways to see the rest

All guides

Stuck on a step?

The Rasil team is ready to reply directly on WhatsApp.

Contact us now