← GTM Recipes

List · CSV → Sequencer

Verify email addresses before you send.

Re-verify any address older than 90 days before every campaign. Invalid ones drop out, catch-all addresses get their own lane, team inboxes stay out – and your bounce rate stays under 2 percent.

One call from Claude Code, n8n or ChatGPT

Q1 Outbound · 25 addresses7.5 credits
lena.graf@nordwerk-sample.comchecked 120 days agovalid
t.lenz@helioworks-sample.comnever checkedcatch_all
m.vogt@seeblick-sample.comvalid 95 days ago – mailbox is goneinvalid
info@kontur-sample.comteam inboxdo not send

verify_email · 0.3 credits per address · an address from the last 7 days costs nothing

Example · fictional contacts, real prices

Setup

Build this workflow.

A list or CSV with email addresses – and, if you have it, the date of the last check. The same call from Claude Code, n8n or ChatGPT.

What does a run cost?

0.3 credits per address – 25 addresses cost 7.5 credits ($0.26 on Pro). An address checked in the last 7 days costs nothing. The checks for team inboxes and disposable domains are free of credits.

  1. Your agent by call

    Pick the stale addresses

    Rows whose address was never checked or was checked more than 90 days ago. Email data decays by 20 to 30 percent a year.

  2. ListPlus by call

    Check deliverability

    verify_email answers valid, invalid, catch_all or unknown per address – up to 25 per call, at once. An address checked in the last 7 days costs nothing.

  3. ListPlus by call

    Flag team inboxes and disposable addresses

    The standard checks find info@, office@ and throwaway domains at no credit cost. A verified team inbox is deliverable – and still not a person.

  4. Your team manual in ListPlus

    Set the lanes

    valid → main sequence. catch_all → its own low-volume lane. invalid and disposable → do not send. If a campaign passes 2 percent hard bounces: stop and re-verify the list.

With your agent

Give your agent this brief.

An agent with a key or sign-in; the workspace's credits. Without a list it works straight from addresses in the file.

The same call from Claude Code, ChatGPT, Cursor or an n8n HTTP node – MCP and REST offer the same tools.

Agent guide (.md) ↗
Agent prompt

Take the list “Q1 Outbound”. Find every row whose email was never checked or was checked more than 90 days ago. Verify them with verify_email in batches of 25. Set invalid to status “Do not send”, catch_all to “Own lane”. Leave team inboxes (info@, office@) out. Change nothing that is valid, and tell me what it cost.

Tools and sample call

describe_list · query_records · check_list · verify_email · mark_records

verify_email({
  "emails": [
    "lena.graf@nordwerk-muster.de",
    "info@kontur-muster.de",
    "t.lenz@helioworks-muster.de"
  ]
})
mark_records({
  "list_id": "<shared_list_id>",
  "record_ids": [
    "<invalid_row_id>"
  ],
  "status": "Do not send"
})

Try it with your data

A check says whether the mailbox exists – not whether the person still works there. A hard bounce on a known contact hints at a job change (see that recipe).

Connect your AI