PromptSales

Prompt: clean a contact export without breaking the IDs

Trim names and emails, keep accents and leading zeros (0007 stays 0007), flag malformed addresses for review, and get a change log you can check before importing.

Works with: ChatGPT, Claude, Copilot, Gemini

The task

Prepare a contact list for import: tidy the fields, keep IDs and French names intact, and list every change for review.

Prompt
Clean these fictional records. Keep every row and preserve id as text,
including leading zeros. Preserve accents, apostrophes and letter case
in organization names; trim outside whitespace and collapse repeated
internal spaces. In email, trim outside whitespace and lowercase only
the domain after @. An address with other than one @, an empty part on
either side, or internal whitespace is REVIEW_EMAIL; leave its
cleaned_email blank. This is a structural check, not proof that an
address exists. Do not merge contacts or invent missing values.
Return id, original_organization, cleaned_organization, original_email,
cleaned_email, status and change log. Use PROPOSE for rows passing the
specified structural check.

id="0007"; organization="  Équipe   du Nord  ";
email=" Demo@EXAMPLE.INVALID "
id="0081"; organization="L'Atelier   Bleu";
email="demo2@example.invalid"
id="0092"; organization="Exemple";
email="contact@@example.invalid"

How to use it

  1. Run it with the three fictional records and check that 0007 is still 0007.
  2. Practise on a synthetic batch shaped like your export; real contact data stays in your company's approved tools.
  3. Review the change log row by row, fix the REVIEW_EMAIL rows at the source, then import.

What you get

Every row kept, IDs unchanged with their leading zeros, names trimmed with accents and apostrophes intact, domains lowercased, and malformed emails marked REVIEW_EMAIL with a blank cleaned value.

Example answer we got
| id | original_organization | cleaned_organization | original_email | cleaned_email | status | change log |
|---|---|---|---|---|---|---|
| "0007" | "  Équipe   du Nord  " | Équipe du Nord | " Demo@EXAMPLE.INVALID " | Demo@example.invalid | PROPOSE | Organization: removed spaces at the start and end, and collapsed repeated internal spaces to one. Email: removed spaces at the start and end, and lowercased the domain (EXAMPLE.INVALID to example.invalid). The local part "Demo" keeps its case. |
| "0081" | "L'Atelier   Bleu" | L'Atelier Bleu | "demo2@example.invalid" | demo2@example.invalid | PROPOSE | Organization: collapsed repeated internal spaces to one; the apostrophe and letter case are kept. Email: no change needed. |
| "0092" | "Exemple" | Exemple | "contact@@example.invalid" | (blank) | REVIEW_EMAIL | Organization: no change needed. Email: it has two "@" characters instead of one, so it fails the structural check and cleaned_email is left blank. |

Where should you start with AI?

The free assessment gives you, in 4 minutes, the 3 tasks to automate first in your business.

Take the free assessment

Newsletter

The essentials of AI for small businesses, once a week

The week’s articles in 5 minutes, plus a prompt and a template to use right away. Free, no ads.