Cleaning an outbound prospect list before a sequence
An example workflow for turning a raw, multi-source prospect export into a deliverable, deduplicated list before it enters an email sequence.
The challenge
A prospect list assembled from several exports carries inconsistent formatting, role-based and invalid emails, and duplicate people who appear under slightly different names. Sending to it as-is wastes sends and hurts deliverability.
Data before & after
Before
{
"name": " bob SMITH ",
"email": "Bob.Smith@Example.com ",
"phone": "(415) 555-0100 x12",
"company": "example, inc"
}After
{
"name": "Bob Smith",
"email": "bob.smith@example.com",
"phone": "+14155550100",
"phone_extension": "12",
"company": "Example, Inc."
}The workflow
- Normalize every record's name, email, phone, and company into consistent formats.
- Validate each email and flag invalid, role-based, and undeliverable addresses.
- Deduplicate the list, collapsing people who appear under formatting variants.
- Export the clean, deduplicated set into the sequencing tool.
Capabilities used
Repair
POST /api/v1/repairValidate
POST /api/v1/validateDeduplicate
POST /api/v1/dedupeProblems detected
- Whitespace, casing, and punctuation inconsistencies across name, email, and company
- Invalid and role-based email addresses
- Phone numbers with embedded extensions and non-standard formatting
- Duplicate people under formatting variants
Repairs performed
- Names title-cased and trimmed
- Emails lowercased and validated; undeliverable addresses flagged, not silently dropped
- Phone numbers normalized to E.164 with extensions split into their own field
- Duplicates collapsed to a single canonical record
Illustrative figures
Example dataset — illustrative only, not a customer result.
- 10,000
- Records processed
- 1,284
- Formatting problems detected
- 312
- Duplicates detected
- 96
- Invalid records flagged
Implementation
Run the list through Repair to normalize, Validate to flag deliverability, and Dedupe to collapse variants. Each step is one request; batch endpoints handle the whole list at once.
bash
curl -X POST https://zapinner.com/api/v1/repair \
-H "Authorization: Bearer $ZAPINNER_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "records": [ /* your prospect rows */ ] }'Technical architecture
- Batch requests process the full list in one call rather than per-row round-trips.
- Validation results are advisory — your pipeline decides whether to drop or hold flagged rows.
- No data is persisted by Zapinner; the cleaned output is returned to your job to store.
Fix messy data before it breaks your workflow.
Start free with 1,000 credits a month across every capability — no credit card required.
