Quick overview
This workflow manually pulls B2B leads from Google Sheets, uses an OpenAI chat model to draft a short cold email per company using only provided lead data and your offer, validates each draft against basic quality rules, and appends the results to a Drafts sheet for human review.
How it works
- Starts when you run the workflow manually.
- Loads your sender details, offer, unsubscribe line, and rule settings such as word limit, banned words, and max leads per run.
- Reads lead rows from the Leads tab in Google Sheets and keeps only valid, unprocessed business emails, deduplicated to one lead per company domain.
- Sends each cleaned lead’s non-empty fields plus your settings to an OpenAI chat model to generate a subject line and email body without inventing facts.
- Checks each draft for required elements (subject and unsubscribe line), length, banned words, placeholders, and numbers not present in the source data.
- Appends every draft to the Drafts tab in Google Sheets with a needs review status and a pass/fail check result.
Setup
- Create a Google Sheet with a Leads tab containing the expected columns (including email and status) and an empty Drafts tab for outputs.
- Add Google Sheets OAuth credentials in n8n and replace YOUR_GOOGLE_SHEET_URL in both Google Sheets nodes.
- Add an OpenAI credential (or OpenAI-compatible base URL) and confirm the chat model selection in the OpenAI model node.
- Update the Settings (edit me) values (company, sender name, offer, CTA, unsubscribe line, word limit, and banned words) before executing the workflow.
Additional info
Need lead sourcing, email verification, sourced research notes, automatic rewrites and one-click approval before sending? A production version is available at https://zhangautomation.gumroad.com/l/lwnqd