Your sales team is probably doing this right now: a rep opens LinkedIn, searches for prospects in their target industry, reads their profile, checks their company news, crafts a personalised email, and sends it. Then repeats this 20 times per week. If they're doing 50 outreach emails weekly, that's roughly 10 hours of manual work, most of it repetitive data gathering and copy-pasting. The problem is that each step involves a different tool and a human decision point. Research happens in LinkedIn or Apollo. Writing happens in Gmail. Sending happens separately. Data between steps doesn't talk to each other. What should take 3 minutes per prospect ends up taking 15. This workflow removes those handoffs. You'll feed prospect data into an automated pipeline, generate personalised emails based on their company and role, and send them all without ever opening your email client. The orchestration tool keeps everything talking; the AI tools do the cognitive work. For more on this, see AI Email Outreach for Sales Teams: Finding the Right Tool....
The Automated Workflow
You'll use n8n for this one because it has reliable webhook support, built-in HTTP nodes, and won't rate-limit you during testing. Zapier works too, but n8n gives you more granular control over the JSON payloads you're passing between tools.
Step 1: Trigger on spreadsheet updates
Your sales team adds prospects to a shared Google Sheet or Airtable. Every time a new row is added, the workflow fires. In n8n, use a Google Sheets trigger node that watches a specific range. Configure it to check every 5 minutes for new rows.
Step 2: Fetch prospect details with ColdConvert AI
ColdConvert AI has an API endpoint that enriches basic prospect data. You send it a name, company, and role; it returns recent company news, funding information, and job titles for people at that company.
POST https://api.coldconvert.ai/v1/enrich
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY { "company_name": "Acme Corp", "prospect_name": "Jane Smith", "prospect_role": "Head of Marketing", "industry": "SaaS"
}
In n8n, add an HTTP Request node after your Sheets trigger. Map the columns from your spreadsheet into this request body. ColdConvert returns structured JSON with company recent news, employee count, funding round, and relevant keywords. Store this in n8n's internal variables for the next step.
Step 3: Generate personalised email copy with ChatGPT
Use OpenAI's API (GPT-4o mini is enough for email generation; it's faster and cheaper than GPT-4.1) to write an email that references the prospect's company news and role.
POST https://api.openai.com/v1/chat/completions
Authorization: Bearer sk-YOUR_KEY
Content-Type: application/json { "model": "gpt-4o mini", "messages": [ { "role": "user", "content": "Write a cold email to Jane Smith, Head of Marketing at Acme Corp. They recently raised Series B funding (from ColdConvert data). The email should be 50-80 words, mention their recent funding, and pitch our sales automation platform. Use a professional but conversational tone. No closing signature needed." } ], "temperature": 0.7, "max_tokens": 200
}
Add this as a second HTTP Request node in n8n. Pass in the enriched prospect data from step 2 into your prompt. OpenAI returns the generated email in the choices[0].message.content field. Extract that and store it.
Step 4: Send via Emailit
Emailit's API handles transactional email delivery. You have two options here: use their REST API directly or use their SMTP integration if you want it to appear to come from your actual email address. For this workflow, use the REST API:
POST https://api.emailit.io/send
Authorization: Bearer YOUR_EMAILIT_API_KEY
Content-Type: application/json { "to": "jane.smith@acmecorp.com", "from": "your-email@yourcompany.com", "subject": "Acme Corp's Series B, congrats, let's talk growth", "html": "<p>Hi Jane,</p><p>[generated email body here]</p>", "reply_to": "your-email@yourcompany.com", "tags": ["prospecting", "outreach"]
}
In n8n, add a third HTTP Request node. The to address comes from your sheet, the html is the generated email from step 3, and the subject can be dynamically constructed too. Emailit returns a delivery ID and status.
Step 5: Log results and update spreadsheet
Add a final node in n8n that writes back to your Google Sheet: the generated email text, the Emailit delivery status, and a timestamp. This creates an audit trail so your team can see what was sent and when.
{ "email_sent": true, "delivery_id": "emailit_12345", "timestamp": "2026-03-15T10:32:00Z", "generated_subject": "Acme Corp's Series B, congrats, let's talk growth", "generated_body": "[full email text]"
}
Optional: Add error handling for failed sends
If Emailit returns an error (invalid email, rate limit, etc.), route that prospect to a separate workflow. Use n8n's conditional node to check the HTTP response. On failure, you could send a Slack message to your sales operations person, add the prospect to a retry queue, or log them for manual follow-up. This stops bad data from breaking the entire workflow. Use Payman AI if you want humans to fix and re-process failed records: Payman routes tasks to human workers, they correct the email address or add missing data, and Payman automatically re-triggers your workflow once the task is complete.
The Manual Alternative
If automation feels risky for your first run, start hybrid. Set n8n to generate emails and log them back to your spreadsheet, but don't send them yet. Your team reviews the generated emails, tweaks the ones that don't match your brand voice, and then sends them manually through Gmail or your normal email client. After a few hundred emails, you'll have a feel for whether the generated copy is consistent enough to send automatically. Most teams find that 80-90% of AI-generated cold emails are send-ready after one or two adjustments to the system prompt. Alternatively, use ChatGPT Writer as a browser extension instead of the API. A rep copies a prospect's LinkedIn profile, ChatGPT Writer generates an email right in their Gmail compose window, they hit send. This keeps the human in the loop but still saves the research and writing time. It's slower than full automation, but it's a no-code entry point.
Pro Tips
Batch your sends to avoid spam filters.
If Emailit sends 100 emails to the same domain in 10 minutes, it flags you as a bulk sender.
Stagger sends across 2-3 hours by adding a delay node in n8n between each HTTP Request to Emailit. Use Wait node set to a random interval (3-8 minutes). Your delivery rates will be much higher.
Monitor your email deliverability metrics.
Emailit provides bounce rates, open rates, and click rates via their analytics API. Pull these weekly into a Google Sheet so you can see which subject lines and email lengths get the best response. Adjust your GPT prompt based on what's working: "Write emails similar to this high-performing example: [top email]."
Cache ColdConvert API responses.
If you're researching multiple prospects at the same company, ColdConvert will return the same company data each time. Store enrichment results in n8n's built-in database or a cheap Postgres instance so you're not making redundant API calls. This cuts your ColdConvert spend by 40-60% depending on how clustered your prospect list is.
Set up dead-letter queues for invalid emails.
Some prospects in your spreadsheet will have typos or incomplete email addresses. Add a validation step in n8n before sending: check that the email matches a basic regex pattern. If it fails validation, route it to a separate table called "Invalid Emails" instead of trying to send and bouncing. Your Emailit bounce rate stays clean.
Use Claude Sonnet 4.6 for trickier prompts.
If you're selling into an industry you don't know well, GPT-4o mini sometimes generates generic emails that miss industry-specific hooks. Claude Sonnet 4.6 is better at nuance and reading between the lines. It costs a bit more but it's worth testing on a small batch if your open rates are below 8%.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| n8n | Cloud Pro or self-hosted | £20–£0 | Cloud Pro allows 5,000 tasks/month; self-hosted on a £5 VPS is free but requires maintenance |
| OpenAI (GPT-4o mini) | Pay as you go | £10–£30 | ~£0.00015 per 1K input tokens, ~£0.0006 per 1K output tokens; 500 emails ~£5 |
| ColdConvert AI | Starter plan | £49 | 200 enrichment requests; overages £0.25 each |
| Emailit | Standard | £25 | 10,000 emails/month; overage £0.10 per 100 emails |
| Google Sheets | Free tier | £0 | Or £7.50 for Google Workspace if you're already using it |
| Payman AI (optional) | Task-based | £0.50–£2 per task | Only pay if you have failed sends that need human review |
| Total baseline (500 emails/month) | £104–£134 | Increases roughly £0.15 per additional email once you hit volume |