Add country code
01Adds your region's country code to numbers saved without one. It only rewrites a number that validates as your own region, so a foreign number stored in local format is left alone.
/ cleanups - twelve rules
A number with no country code. A SHOUTING email address. A name mangled by an import in 2016. ContactOne ships twelve cleanup rules for exactly this, ten of which involve no AI at all. Each one shows you the before and after for every affected contact before a single byte changes.
No contact data is uploaded, and no cleanup consults a server.
Every rule shows the exact before to after and you select what applies.
Each applied cleanup is written to History and restores the exact prior bytes.
Rules also run during a merge, so a merged contact comes out tidy.
Adds your region's country code to numbers saved without one. It only rewrites a number that validates as your own region, so a foreign number stored in local format is left alone.
Adds a leading “+” to numbers that already carry a country code, so they dial correctly from anywhere. It never adds a code that is not already there, which is why it cannot double-prefix.
Reformats numbers into your region's standard grouping, so a list of numbers reads consistently instead of six people writing it six ways.
Email is case-insensitive, so this is always safe. It also makes case-sensitive duplicate detection work properly - two spellings of one address stop looking like two addresses.
Lowercases the site and domain. The page path is left exactly as it was, because paths genuinely are case-sensitive and rewriting one would break the link.
Repairs ALL-CAPS and all-lowercase names from old imports, while keeping the names that are meant to look unusual - McDonald, O'Brien and van Gogh come through intact.
Repairs text scrambled by an encoding mix-up: J√∂rn back to Jörn, Müller back to Müller. ContactOne tries several legacy encodings, scores each candidate repair and accepts only the best one, so it never trades one mangled name for another.
Read the deep dive on garbled namesWhen several contacts share a work email domain but spell the employer differently, you pick the spelling once and ContactOne applies it across the whole group.
When contacts share a work email domain and none of them has a company set at all, ContactOne proposes one from the domain. You approve it before anything is written.
Collapses values duplicated inside a single card - the same mobile number stored twice, once with dashes and once without. This is the duplication nobody notices, because it never creates a second contact.
Removes profile links to services that no longer exist, so a card is not half-full of dead addresses. The patterns come from what is actually in your own address book, and you approve each pattern before it becomes a rule.
Canonicalizes equivalent labels so fields sort and read consistently, even when every connected account uses its own vocabulary for the same thing.
The rules above are deterministic Swift. They run the same way on every supported device, and they would run the same way if Apple Intelligence did not exist. Calling that work “AI” would both overstate the model and hide the fact that it works on every phone - so in the app those rules are simply labelled Recommended.
Where a model is genuinely useful is proposing rules: noticing that seventeen of your contacts carry links to a service that shut down years ago, or that three accounts spell “mobile” three different ways. That runs on Apple's on-device system language model through the Foundation Models framework, and it proposes only - the deterministic engine still does the work, and you still approve it.
Aggregate, de-identified signals - URL scheme prefixes with occurrence counts, thresholded so one-offs are excluded. Never a specific URL, name, number, email or note.
iOS 26 or newer on Apple Intelligence-capable hardware. On any other device the AI section is hidden and nothing about the standard rules changes.
Output is filtered deterministically before you see it. A proposal is discarded if the service still runs, if the pattern was not observed in your own contacts, or if it is the wrong shape.