# Preparing a contact list: E.164, deduplication and cleaning

> How the importer reads your file, what E.164 means, why duplicates are merged, how invalid rows are reported, and how to keep a list healthy over time.

Updated 2026-08-22. Level: Beginner. By SMSMeteor.

## Key takeaways

- E.164 is the only format carriers understand.
- Duplicates are merged after normalisation.
- Invalid rows are listed, never sent, never billed.
- Remove unknown numbers after every campaign.

## Files the importer reads

CSV, TXT and XLSX, up to 50 MB per file, with or without a header row. The first column that looks like phone numbers is used as the destination; every other column becomes a variable you can use in the text, such as `{first_name}`. Paste a list directly if it is short.

## E.164 in one minute

E.164 is the international format: a plus sign, the country code, the national number without the trunk zero, no spaces. +44 7700 900123 becomes +447700900123. It is the only format carriers understand, and the only one that tells us which country's rate and rules apply.

## What normalisation does

Numbers in local format are converted when the country is known: set a default country for the file, or add a country column. Spaces, dots, dashes and parentheses are stripped. A leading 00 is treated as the plus sign. Numbers that still cannot be resolved, too short, too long, unknown prefix, are excluded and listed, never sent, never billed.

## Deduplication

The same number written two ways is one recipient. After normalisation, duplicates are merged and the first row's variables are kept. The import report says how many were merged so you can check the source when the count surprises you.

## The import report

Rows read, rows ready, invalid rows with the reason, duplicates merged, destinations found with a count per country and the cost split at current rates. Read it before composing: a list that turns out to be 40 % Brazil needs a numeric sender strategy that a European list does not.

## Keeping a list healthy

- After each campaign, remove numbers reported as unknown. The report has a one-click action for it.

- Keep opt-outs; they are excluded from future sends to that list automatically, but you should also stop collecting them elsewhere.

- Store the consent source with each number.

- Re-check dormant lists with a small transactional send before a large campaign.

Message history is kept for 90 days, long enough to compare two campaigns to the same list and see whether it is ageing.

---
Source: https://smsmeteor.com/guides/preparing-a-contact-list (HTML). Generated by SMSMeteor from the same data as the page. Summary of the whole site: https://smsmeteor.com/llms.txt
