Weekly email list cleanup with Hunter and Google Sheets

By General Input

Every Monday morning, verify new and stale addresses in your sheet, mark each one deliverable or not, and post a recap to Slack.

Integrations

  • Hunter
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Marketing
  • Operations

Build a code workflow that cleans up my marketing email list in Google Sheets every Monday at 7am so we don't torch our sender reputation on the next send. This is a deterministic loop with a known per-row schema: read, verify, write back, summarize. It is not a reasoning workflow.

Trigger: cron, every Monday at 7am in my workspace time zone.

Steps:

1) Use Google Sheets Get Values to read every row from the 'list' tab of the spreadsheet I'll point to. The sheet has columns for email, verification_status, confidence, and last_verified_at.

2) For each row, decide whether to verify. Skip rows whose last_verified_at is within the last 90 days (freshness window). Verify rows where verification_status is empty, or last_verified_at is missing, or last_verified_at is older than 90 days. This skip step is important so we don't burn Hunter credits re-verifying the same addresses every week.

3) For each row that needs verification, call Hunter Verify Email Address with the email. Hunter's verifier may return HTTP 202 (verification in progress); if it does, wait a short delay (a few seconds) and retry the same request before writing anything. Read back the deliverability result (deliverable, risky, or undeliverable) and the confidence score from the response.

4) Use Google Sheets Batch Update Values to write the deliverability result, the confidence score, and a fresh last_verified_at timestamp back into the same row. Batch the writes into one update at the end of the run, not one update per row.

5) Use Slack Send a Message to post a summary to the #marketing channel: total rows checked this run, count by status bucket (deliverable / risky / undeliverable), how many rows were skipped because they were already fresh, and a direct link to the sheet so anyone on the team can audit.

Make these things easy to change at the top of the workflow: the schedule, the spreadsheet ID, the tab name, the column names, the freshness window (90 days), and the Slack channel.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats