Validate email addresses before campaign sending. Takes a contact CSV, validates each email via a verification provider, removes invalid/do_not_mail/abuse/unknown addresses, and optionally cleans them from sequencer campaigns. Outputs a verified CSV ready for campaign-sending. Fits between email-generation and campaign-sending in the pipeline. Triggers on: "verify emails", "validate emails", "email verification", "clean emails", "check emails before sending", "remove bad emails", "email hygiene".
Validate emails before sending. Sits between email-generation and campaign-sending:
email-generation → email-verification → campaign-sending
Provider selection and credentials are handled in Step 0 of the workflow.
| Input | Required | Source |
|---|---|---|
| Contact CSV with email column | yes | From email-generation output or any CSV |
| Sequencer campaign IDs | no | From campaign-sending — only if cleaning uploaded leads |
email, Email, email_address){N} unique emails to validate, {M} rows without email skippedFor each unique email, call the provider's validation endpoint:
{email: {status, sub_status}}unknownGroup results by the provider's status values. Use the status mapping identified in Step 0 to determine which emails to keep and which to remove.
General guidance (confirm against provider docs):
| Action | Typical statuses |
|---|---|
| Keep | valid, catch-all (flag in report) |
| Remove | invalid, do_not_mail, abuse, unknown, spamtrap |
Present summary table with counts per status, then list all emails to remove with their status and sub_status.
{original_name}_verified.csv{original_name}_verification_results.json for reference{kept} emails kept, {removed} removed, {catch_all} catch-all (flagged)If the user provides sequencer campaign IDs:
skills/campaign-sending/references/{N} leads removed from sequencerIf no campaigns are provided, skip this step and note that the user should remove bad emails manually or re-upload with the cleaned CSV.
| File | Contents |
|---|---|
*_verified.csv | Cleaned CSV with only valid emails |
*_verification_results.json | Full validation results for all emails |
| Console report | Summary table + list of removed emails |
Provider API docs are fetched or read during Step 0. No pre-configured provider docs are bundled — add them to references/ as needed.