Verify, enrich, and clean a contact or account list against
Lusha's verified B2B database. Show every change with source
and confidence level. Flag every record that can't be verified.
Return a clean list and a data quality summary.
Input
The user will provide via $ARGUMENTS:
Contact or account list (required) — paste inline or
reference a saved list. Accepted formats:
- Contact list: name, company, email, title (any combination)
- Account list: company name or domain
- Mixed: contacts and accounts together
List context (recommended) — one sentence on what the list
is for and what data quality bar it needs to clear. Examples:
- "campaign list — needs verified emails and current titles"
- "CRM import — needs deduplication and full enrichment
before it hits Salesforce"
- "territory file — quarterly refresh, flag anyone who has
left and fill missing direct dials"
If list context is missing, default to full verification
and enrichment across all available fields and state that
assumption at the top of the output.
Workflow
Anchor on the list context.
Read the list context from $ARGUMENTS. Identify which
data quality checks are highest priority for this specific
use case. State the parameters at the top of the output.
Parse and deduplicate the list.
Before any enrichment:
- Parse every record from the input.
- Flag duplicate records — same email, same name and
company, or same domain appearing more than once.
- List duplicates in a separate section. Do not enrich
duplicates — flag them for the user to resolve first.
- State the total record count after deduplication.
Resolve and verify each record via Lusha.
For each unique record, run these checks concurrently:
Contact records:
- Email verification: check the email against Lusha's
verified database. Return one of:
- Verified — email confirmed active
- Updated — original email invalid, new email found
- Bounced — email invalid, no replacement found
- Unverifiable — contact not found in Lusha database
- Title and role refresh: check whether the contact is
still in the role on record. Return:
- Confirmed — title and company match current Lusha data
- Updated — title or company has changed, return new data
- Departed — contact has left the company
- Unverifiable — contact not found in Lusha database
- Direct dial enrichment: return verified direct dial
if available. Flag if not found.
Account records:
- Firmographic enrichment: fill missing fields — industry,
employee count, revenue range, HQ, funding stage —
from Lusha's company database.
- Flag any accounts that could not be matched.
Classify each record.
After verification and enrichment, classify every record:
- Clean — all fields verified, no changes needed
- Enriched — missing fields filled, existing fields confirmed
- Updated — one or more fields corrected with new Lusha data
- Flagged — contact departed, email bounced, or title changed
— needs human review before use
- Unverifiable — record could not be matched in Lusha —
exclude from list or escalate for manual research
Write the data quality summary.
Lead with the headline numbers: total records, clean,
enriched, updated, flagged, unverifiable. Then the
clean list. Then the flagged records. Then duplicates.
Then unverifiable records.
Output Format
Data Quality Summary
List context: [restate in one line]
Total records processed: [n]
Clean: [n]
Enriched: [n]
Updated: [n]
Flagged — needs review: [n]
Unverifiable — excluded: [n]
Duplicates found: [n]
Clean List
All verified and enriched records, ready to use.
Privacy rules — apply to every row:
- Names: initials only (e.g. J.K.)
- Email: domain only (j.k@[company].com)
- Direct dial: masked (e.g. +1 415 555 ••••)
- Tag the table: Records verified live via Lusha connector,
[date]
| Name |
Title |
Company |
Email |
Direct Dial |
Status |
Status values: Clean / Enriched / Updated
Flagged Records — Needs Review
Records where something changed or a problem was found.
Do not use until reviewed.
| Name |
Title |
Company |
Email |
Flag |
Reason |
Recommended Action |
Flag types:
- Departed — contact has left the company
- Email bounced — invalid email, no replacement found
- Title changed — contact is still at company but role changed
- Company changed — contact has moved to a new company
Duplicate Records
Records appearing more than once in the input list.
Resolve before enrichment.
| Name |
Company |
Email |
Duplicate Of |
Unverifiable Records
Records that could not be matched in Lusha's database.
Exclude from list or escalate for manual research.
| Name |
Company |
Email |
Reason |
From Lusha's Campus plays library: https://www.lusha.com/campus/plays/data-quality-skill/
1---2name: data-quality3description: Verify, enrich, and clean any contact or account list against Lusha's verified B2B database. Checks emails, refreshes titles, fills missing direct dials, enriches firmographics, and flags duplicates and unverifiable records. Returns a clean list with a data quality summary showing exactly what was fixed and why. Requires a Lusha connection.4---56Verify, enrich, and clean a contact or account list against7Lusha's verified B2B database. Show every change with source8and confidence level. Flag every record that can't be verified.9Return a clean list and a data quality summary.1011## Input1213The user will provide via $ARGUMENTS:1415- Contact or account list (required) — paste inline or16 reference a saved list. Accepted formats:17 - Contact list: name, company, email, title (any combination)18 - Account list: company name or domain19 - Mixed: contacts and accounts together20- List context (recommended) — one sentence on what the list21 is for and what data quality bar it needs to clear. Examples:22 - "campaign list — needs verified emails and current titles"23 - "CRM import — needs deduplication and full enrichment24 before it hits Salesforce"25 - "territory file — quarterly refresh, flag anyone who has26 left and fill missing direct dials"2728 If list context is missing, default to full verification29 and enrichment across all available fields and state that30 assumption at the top of the output.3132## Workflow33341. Anchor on the list context.35 Read the list context from $ARGUMENTS. Identify which36 data quality checks are highest priority for this specific37 use case. State the parameters at the top of the output.38392. Parse and deduplicate the list.40 Before any enrichment:41 - Parse every record from the input.42 - Flag duplicate records — same email, same name and43 company, or same domain appearing more than once.44 - List duplicates in a separate section. Do not enrich45 duplicates — flag them for the user to resolve first.46 - State the total record count after deduplication.47483. Resolve and verify each record via Lusha.49 For each unique record, run these checks concurrently:5051 Contact records:52 - Email verification: check the email against Lusha's53 verified database. Return one of:54 - Verified — email confirmed active55 - Updated — original email invalid, new email found56 - Bounced — email invalid, no replacement found57 - Unverifiable — contact not found in Lusha database58 - Title and role refresh: check whether the contact is59 still in the role on record. Return:60 - Confirmed — title and company match current Lusha data61 - Updated — title or company has changed, return new data62 - Departed — contact has left the company63 - Unverifiable — contact not found in Lusha database64 - Direct dial enrichment: return verified direct dial65 if available. Flag if not found.6667 Account records:68 - Firmographic enrichment: fill missing fields — industry,69 employee count, revenue range, HQ, funding stage —70 from Lusha's company database.71 - Flag any accounts that could not be matched.72734. Classify each record.74 After verification and enrichment, classify every record:75 - Clean — all fields verified, no changes needed76 - Enriched — missing fields filled, existing fields confirmed77 - Updated — one or more fields corrected with new Lusha data78 - Flagged — contact departed, email bounced, or title changed79 — needs human review before use80 - Unverifiable — record could not be matched in Lusha —81 exclude from list or escalate for manual research82835. Write the data quality summary.84 Lead with the headline numbers: total records, clean,85 enriched, updated, flagged, unverifiable. Then the86 clean list. Then the flagged records. Then duplicates.87 Then unverifiable records.8889## Output Format9091### Data Quality Summary9293List context: [restate in one line]94Total records processed: [n]95Clean: [n]96Enriched: [n]97Updated: [n]98Flagged — needs review: [n]99Unverifiable — excluded: [n]100Duplicates found: [n]101102---103104### Clean List105106All verified and enriched records, ready to use.107108Privacy rules — apply to every row:109- Names: initials only (e.g. J.K.)110- Email: domain only (j.k@[company].com)111- Direct dial: masked (e.g. +1 415 555 ••••)112- Tag the table: Records verified live via Lusha connector,113 [date]114115| Name | Title | Company | Email | Direct Dial | Status |116|---|---|---|---|---|---|117118Status values: Clean / Enriched / Updated119120---121122### Flagged Records — Needs Review123124Records where something changed or a problem was found.125Do not use until reviewed.126127| Name | Title | Company | Email | Flag | Reason | Recommended Action |128|---|---|---|---|---|---|---|129130Flag types:131- Departed — contact has left the company132- Email bounced — invalid email, no replacement found133- Title changed — contact is still at company but role changed134- Company changed — contact has moved to a new company135136---137138### Duplicate Records139140Records appearing more than once in the input list.141Resolve before enrichment.142143| Name | Company | Email | Duplicate Of |144|---|---|---|---|145146---147148### Unverifiable Records149150Records that could not be matched in Lusha's database.151Exclude from list or escalate for manual research.152153| Name | Company | Email | Reason |154|---|---|---|---|155156---157158---159160From Lusha's Campus plays library: https://www.lusha.com/campus/plays/data-quality-skill/