Guard your sender reputation on cold outreach campaigns

Every weekday morning, vet your pending leads for bad emails and low engagement scores, then only send personalized cold emails to the ones that pass.

Agentic Task
Google SheetsZeroBounceGmailSalesMarketingEmail AutomationLead Enrichment

Build an agent workflow that gates a cold outreach campaign so we never burn sender reputation on a junk list. The agent framing is right because the per-row decision combines multiple signals and the drafting step is open-ended.

Trigger: cron, every weekday (Monday through Friday) at 9am in the user's local timezone.

Step 1. Use Google Sheets Get Values to read pending rows from the 'outreach_queue' tab of the user's spreadsheet. The columns are: name, company, email, talking_point, status. Process every row where the status column is empty. Skip rows where status is already filled in (they've been handled in a previous run).

Step 2. For each empty-status row, call ZeroBounce Validate Email on the email address, then call ZeroBounce AI Email Scoring on the same address. Capture the deliverability verdict (status / sub-status) and the AI score (0 to 10).

Step 3. Decide what to do with the row based on the combined signals:

- If the ZeroBounce verdict is invalid, abuse, spamtrap, or disposable, do NOT send. Mark the row's status as 'skipped: bad_email'.

- Else if the AI score is below 8, do NOT send. Mark the row's status as 'skipped: low_score'. (Note to the user: 9 is a conservative cutoff, 8 is balanced. Pick one and stick with it.)

- Otherwise, draft a short, personalized cold email using the talking_point column for context. Keep it under 120 words, plain text, no marketing fluff, and end with a single soft call to action. Send it from the user's Gmail account using Gmail Send a Message.

Step 4. After each row is processed, use Google Sheets Update Values to write back to that row: the new status ('sent', 'skipped: bad_email', or 'skipped: low_score'), the ZeroBounce verdict, and the AI score. Leaving these reasons in the sheet matters because the operator may want to manually re-check borderline cases (e.g. a 7.9 score for a known good prospect).

Process rows sequentially so a failure on one row never blocks the others, and so the agent can log a clear per-row outcome. At the end of the run, log a one-line summary: how many rows processed, how many sent, how many skipped for bad email, and how many skipped for low score.

Additional information

What does this prompt do?
  • Reads pending rows from your outreach queue spreadsheet every weekday morning.
  • Checks each address for deliverability issues like disposable, spam-trap, abuse, and invalid emails.
  • Scores each lead's engagement likelihood and skips anyone below your quality threshold.
  • Drafts and sends a short, personalized cold email from your Gmail account to qualified leads only.
  • Writes the verdict, the score, and the outcome back into your sheet so you always know why a lead was sent or skipped.
What do I need to use this?
  • A Google account with an outreach queue spreadsheet (columns for name, company, email, talking point, and status).
  • A Gmail account that you want to send the cold emails from.
  • A ZeroBounce account for email validation and AI quality scoring.
How can I customize it?
  • Change the send time or the days of the week the campaign runs.
  • Adjust the AI score cutoff (9 is conservative, 8 is balanced) and which deliverability verdicts count as a skip.
  • Edit the email tone, opening line, signature, or call to action the agent uses when drafting.

Frequently asked questions

Why does this protect my sender reputation?
Sending to invalid, disposable, or spam-trap addresses causes bounces and complaints, which inbox providers use to throttle or block future emails. Filtering those out before anything goes out keeps your domain in good standing.
What happens to leads that get skipped?
They stay in the sheet with a clear reason written next to them, like 'skipped: bad_email' or 'skipped: low_score', along with the ZeroBounce verdict and AI score. An operator can review borderline cases and manually re-queue them if they want.
Can I change the quality threshold?
Yes. The agent uses an AI score cutoff that you control. A score of 9 is conservative and only emails very high-quality leads, while 8 is more balanced. You can tune it up or down at any time.
Does the agent write the email itself?
Yes. For each lead that passes both checks, the agent drafts a short personalized cold email using the talking point you've recorded for that row, then sends it through Gmail.
What if my sheet uses different column names?
You can rename columns and update the prompt to match. As long as you have an email column, a personalization column, and a status column the agent can write to, it will work.

Stop burning sender reputation on bad leads.

Connect Google Sheets, Gmail, and ZeroBounce once, and Geni runs your validated cold outreach campaign every weekday at 9am.