Clean a CRM contact export

Built by: Lusha
Time to build: 1 min
Difficulty: Easy
Tools: ClaudeLusha
Type: Prompt

A Claude prompt that takes a messy CRM contact export and returns a cleaned, validated table — confirmed current titles, validated emails with confidence grades, callable phones with Do Not Call flags surfaced, and recent role changes flagged inline. Built for RevOps and Sales Managers running list hygiene before a campaign or a calling block.

Once Lusha is connected in Claude, the connector runs in the background — no special syntax needed. Just paste the export and run.

Images on this webpage are for illustrative purposes only. Any named individuals shown in live demo outputs are real, with last names abbreviated for privacy.

The prompt

<context>
Clean a CRM contact export before a campaign or calling block.
Stale titles, possible role changes, unknown DNC status, likely some departures.
</context>

<task>
1. CRM contact list (paste with name and company):
   [PASTE LIST]
2. For each contact, validate via Lusha:
   current title and company,
   validated email (with confidence grade),
   all phones (mobile, office, direct) with DNC status,
   job start date (flag promotions or role changes).
3. Output a cleaned table sorted by record status:
   Name | Company | Current title | Email (grade) |
   Callable phone | DNC | Status | Action.
4. For each row, assign a status:
   Current: up to date, callable, ready.
   Promoted: same company, new title or expanded scope (signal opportunity).
   Partial: verified contact but missing email OR phone.
   No match: Lusha returned no current record (archive or re-research).
5. One-line summary at the top: total validated, promoted (signal), partial, no-match.
</task>

<constraints>
- No-match returns no credit charge. Flag for re-research, don't drop silently.
- Treat DNC=yes as a hard skip for phone outreach. Surface those rows separately.
- Email confidence below A is worth flagging for a follow-up validation pass.
- Do not invent fields. If Lusha returns no email, the row goes to Partial, not Current.
</constraints>

What you'll get back

Input: 5-row CRM contact export across enterprise SaaS: data, productivity, customer messaging, developer tools, and analytics companies.

Output: 4 of 5 validated, 1 no-match (Tyler W. at the customer messaging SaaS), 1 promotion signal (Tori M. promoted to Global Head of RevOps in April 2026), 1 partial record (Saad S. has phone but no current email), 2 mobile DNC flags.

ContactCurrent titleCompanyEmail (grade)PhoneDNCStatus
Brian R.Chief Financial Officer[Cloud data platform]A+MobileYesCurrent — email only
Tori M.Global Head of Revenue Operations[Productivity SaaS]A+Office + mobileMobile yes, office noPromoted (Apr 2026)
Tyler W.[Customer messaging SaaS]No match — re-research
Laura F.Head of Revenue Operations and Strategy[Dev workflow SaaS]A+MobileNoCurrent — fully callable
Saad S.VP of Revenue Operations[Cloud analytics SaaS]Direct + mobilePartialPartial — phone only

Names and company identifiers abbreviated for privacy. Full records — including emails and direct dials — are returned inside your Claude session. 

A no-match result does not consume a Lusha credit. Promoted contacts surface as a signal — useful intelligence for the next campaign, since first-90-days mandates often unlock budget.

Why use Lusha

CRM data decays at roughly 30% a year in B2B. The decay isn’t visible until a campaign hits, a calling block fails, or a sequence bounces. Running enrichment before the campaign instead of after the bounce changes three things.

The decay surfaces as data, not as a campaign failure. The list returns segmented into actionable buckets — current, promoted, partial, no-match — so the rep knows exactly what to act on, what to update, and what to archive. The campaign goes out cleaner.

Promotions get flagged inline. A contact who got promoted in the last quarter isn’t just a refreshed row — they’re a buying-signal row. The prompt surfaces job start dates so the campaign can route promoted contacts to a different message (first-90-days framing) instead of treating them as standard records.

DNC and compliance handling runs in the same pass. Lusha surfaces Do Not Call flags per phone number, sourced through the verified contact base under GDPR, CCPA, SOC 2, ISO 27701, ISO 31700, and TRUSTe. DNC rows route out of the calling block automatically — compliance win and time saver in one step.

FAQ

  • How big a list can I paste in one run?

    A few hundred rows works cleanly in one Claude session. For larger CRM exports (1,000+ contacts), batch by segment or owner. Lusha credit usage scales linearly — one credit per successful match, no charge for no-matches.

  • What's a "no match" result and why didn't it charge?

    Lusha could not find a current record for that name and company combination. Three common causes — the contact left the company, the spelling is off, or the company name is too ambiguous to resolve. The prompt flags these for re-research and Lusha does not charge a credit when no data is returned.

  • What does the email confidence grade mean?

    Lusha grades each work email from A+ (recently verified through multiple signals) down to D (older, lower-confidence). The prompt flags anything below A for a follow-up pass before a campaign send. A+ emails are safe to send today.

  • How does the prompt detect a promotion?

    The contact lookup returns a job start date and previous job. When the job start date is recent and the title has changed or expanded, the row surfaces as a promotion signal. That’s useful for routing — a contact who’s 30 days into a new mandate engages with different messaging than one who’s been in role for three years.

  • Can the prompt push the cleaned list back to my CRM?

    The Claude output is a structured table you can copy into a CRM, ABM platform, or campaign tool. Direct push to Salesforce, HubSpot, and other systems runs through Lusha’s standard integrations — separate from this prompt.

  • How often should I run this?

    Quarterly minimum for any CRM segment that drives active outreach. Monthly if the list is fueling weekly campaigns. The decay rate doesn’t slow down — the surface area just gets noticed less.

Ready to run this?

One data connection. Works in Claude, ChatGPT, your CRM, or any agent you build.