The failure mode of a dirty contact list is that nothing appears to go wrong. You send to 300 people, the app reports the send, and you move on. Twelve numbers were dead, eight people got the message twice, and four received “Hi ,”. You find out weeks later, or never.
Unlike email, SMS gives you almost no feedback. There is no bounce message. A text to a disconnected number frequently just vanishes — the carrier accepts it and drops it. So the cleaning has to happen before the send, because afterwards there is nothing to diagnose.
What actually goes wrong
Duplicates. The same person saved twice — once from their mobile, once from a form, once with a typo in the name. They get the message two or three times, which reads as careless at best and spammy at worst. On a list built over years, 5–10% duplicates is normal.
Invalid numbers. Too short, too long, missing digits, a landline where you need a mobile, a fax number from 2009. These fail silently.
Landlines. A landline cannot receive SMS. In many address books they are mixed in with mobiles and indistinguishable without checking the prefix.
Missing or unusable names. Contacts saved as “Plumber”, “Mum”, “Marco (do not call)” or just a bare number. These break name personalisation in a way that is visible to the recipient.
Formatting inconsistency. +39 340 123 4567, 00393401234567 and 3401234567 may be the same person three times, and a naive duplicate check will not notice.
Stale numbers. Numbers get recycled. A number that stopped being your customer’s two years ago now belongs to a stranger who receives your marketing text — which is exactly the kind of complaint that gets a sender blocked.
What to check
In rough order of return on effort:
- Duplicates, comparing normalised numbers rather than raw strings, so the three formats above collapse into one person.
- Obviously invalid numbers — wrong length for the country, non-numeric characters that are not formatting, missing digits.
- Landlines, identified by prefix where your country’s numbering plan makes that possible.
- Empty or unusable name fields, if you plan to personalise.
- Age of the record. Anything older than about two years without contact is worth questioning before it goes into a commercial send.
Our Android app includes a Smart Cleaner that does the first two automatically: it finds duplicate contacts and flags numbers that cannot be valid, so you can fix or exclude them before sending rather than discovering the problem afterwards. On a list imported from a CSV it is the first thing to run.
Why this pays for itself
Cost. Every message to a dead number is billed and delivers nothing. On 300 recipients with 20 bad numbers and 15 duplicates, that is 35 wasted messages — every single time you send.
Reputation. Carriers watch for senders producing high failure rates and complaints, because that is the signature of a spam operation. A consistently clean list keeps you out of that pattern. See carrier limits.
Credibility. Duplicates and “Hi ,” are visible to the recipient. They are small things that make a business look like it does not have its house in order.
Keeping it clean
Cleaning once and never again just means doing it all over in a year.
- Honour opt-outs immediately. Someone who replies STOP must come off the list before the next send — required, and also the single best way to avoid complaints.
- Remove hard failures when you notice them, rather than leaving them to be re-sent forever.
- Normalise on entry. Save numbers in international format from the start and the duplicate problem largely disappears.
- Keep lists separate. One list per purpose — clients, suppliers, staff — rather than one giant list you filter each time.
- Re-check before any large send, particularly if the list has been imported or edited since last time.
Step by step
- Normalise every number to a consistent international format so comparisons are meaningful.
- Run a duplicate check on the normalised numbers, not the display text.
- Flag and fix invalid numbers — wrong length, stray characters, missing digits.
- Remove landlines if the send is SMS.
- Fill in or exclude contacts with no usable first name when you plan to personalise.
- Send a test to yourself, then send in batches and record the result.
Questions people ask
How do I know if a text was delivered?
Often you cannot. SMS delivery reports are inconsistent between carriers and frequently unavailable, which is precisely why cleaning the list beforehand matters more than analysing it afterwards.
Can an app tell whether a number is a mobile?
Only by inference from the numbering plan — a prefix check catches landlines in many countries but is not universal. There is no reliable offline way to confirm a line is active.
How many duplicates should I expect?
On a contact list built up over several years, 5–10% is typical. Imports from multiple sources push it higher.
What should I do with numbers that keep failing?
Remove them. Repeatedly sending to dead numbers costs money and contributes to the failure-rate pattern carriers use to identify spam.
Do I have to remove people who ask to stop?
Yes — immediately, and it is a legal requirement for commercial messages in most jurisdictions, not a courtesy.