Looking for someone who has built AI personalized cold email automation

Hi everyone,

I want to know if anyone here has already built a workflow like this in n8n.

Workflow idea:

1. Read leads from CRM or Google Sheets

2. Each lead has name, email, company name, and website

3. Automatically visit and scrape the company website

4. AI analyzes the business and understands what they do

5. AI writes a personalized cold email based on that website analysis

6. Email is automatically sent to the prospect

7. Follow-up emails are sent automatically if there is no reply

8. Reply detection stops the sequence if the lead is interested

I am not asking if this can be built.

I want to know if someone has ALREADY built something similar before.

If yes, please share your workflow, demo, or experience.

Thanks.

Yes, close variants: lead row → site fetch → short business summary → personalized draft → send/no-send check → sequence stop when a reply lands.

The two pieces that usually decide whether it works are the website fetch quality and the reply-stop rule. If you want to compare notes, what are you starting from: CRM, Sheets, or a scraped list?

Welcome @Ayesha_Saeed!

This is a very buildable flow in n8n. The critical node to research first is the HTTP Request node for the website scraper step - pairing it with a Jina Reader URL (https://r.jina.ai/[URL]) gives you clean markdown from any business website without dealing with raw HTML. From there, a single LLM call to summarize + draft the email in one step keeps the workflow fast and token-efficient.

Hello, I’m interested in this automation. How can it be implemented end-to-end? Thank you in advance.

Hi,

Yes, I’ve built a similar n8n workflow before for AI-powered lead research and personalized cold email automation.

The workflow pulled leads from Google Sheets/CRM, scraped the company website, used AI to understand the business, generated a personalized email, sent it through the connected email system, and managed follow-ups based on reply status.

I also handled duplicate checks, failed website scraping, lead status updates, logging, and reply detection so the sequence stops when someone responds.

One question: are you planning to send emails through Gmail/SMTP, or through a cold email tool like Instantly, Smartlead, or Apollo?

:telephone_receiver: Book a quick call:Calendly - Automaxion

I’ve just built one today. It takes leads from a google sheet and sends that data into an AI agent, which writes personalized outreach and sends followups every few days

Yes, built this exact flow. Two guards that actually bite once it’s live, then the importable workflow below.

The scrape feeds an LLM whose output you auto-send — so the site is attacker-controllable input. A page containing “ignore previous instructions…” can steer the email you send from your own domain. I delimit the scraped text as untrusted in the prompt so it can’t.

And don’t send on a failed scrape: a dead or blocked site (a 503 with a long error page, a Cloudflare challenge) still produces a confident “loved your website ___” email if you only check that you got some text back. Gate the send on HTTP status (2xx), not byte count — skip + log the rest.

Import-ready (swap the OpenAI / SMTP / Postgres / Slack creds, point the trigger at your lead source):

Built this exact shape a few times — two gotchas that bite everyone: Treat the scraped site text as untrusted input to the LLM. A page can contain “ignore previous instructions” and your email writer will obey it. Wrap the scrape in clear delimiters and tell the model the content between them is data, never instructions. Reply-detection is where sequences leak. Don’t just check for inbound mail — check it’s from the same thread/lead AND isn’t an autoresponder/out-of-office, or you’ll stop sequences on “I’m on vacation” bounces.\n\nFor scraping, Jina Reader + an HTTP-status check before you pass anything to the model saves you from feeding 404 pages into the LLM. Happy to share how I wire the stop-condition if useful — I build these for small service businesses.

@Ayesha_Saeed @jacewe I have now built and import-tested a close variant of this path: CRM/Google Sheets → normalize → optional website notes → AI score → personalized outreach draft → Gmail draft for human review → follow-up task → daily report.

I keep the first rollout draft-only because failed scrapes, duplicate rows, website prompt-injection, and reply-stop rules are where an apparently green workflow can still cause damage.

My safest first-run sequence is: sample row → expected AI output → reviewed draft → one-row rollout. Then add duplicate checks, a 2xx scrape gate, raw + parsed AI logs, and stop-on-reply before scaling.

If either of you is still building this, tell me whether the source is Sheets or a CRM and I can point you to the first nodes and guardrails I would test. I also keep a free first-run checklist linked from my profile.