Built a Clay → Gmail outreach automation in n8n — full system breakdown

Hi all — I’m Nishika, building AI-powered GTM and automation systems. Sharing a project I just shipped: a fully automated outreach sender, fed by an Apollo + Clay enriched lead dataset.

The stack:

  • Apollo — sourced target leads matching specific company size, industry, and title filters
  • Clay — enriched every lead with a verified email waterfall, used Claygent to research each person’s LinkedIn + company site and pull a real signal, inferred their likely pain point, then generated a fully personalized subject line + email per person using Clay’s native OpenAI integration
  • n8n — the automation layer. Built this flow: Read Google Sheet → Loop Over Items (one row at a time) → Format Email Body → Gmail (Send) → Wait → Update Sheet status → loop back. Runs hands-off once triggered — sends each personalized email, waits between sends to protect deliverability, and updates tracking status automatically.

n8n continues to be my favorite tool for actually bringing these systems to life — the visual node-based logic makes wiring together APIs, data transforms, and automations like this genuinely fast to build and easy to reason about.

This is exactly the kind of system I build for clients — if you’re a founder or team that needs lead enrichment, personalized outreach, or any manual workflow automated, I can build this for you.

:movie_camera: Full walkthrough: End to End Outreach Pipeline With Clay and n8n | Loom

:e_mail: nishikagangwani512@gmail.com
:link: LinkedIn: https://www.linkedin.com/in/nishika-gangwani-4a30242a4/

2 « J'aime »

Welcome @Nishika_Gangwani! The Wait node between sends is a smart call for deliverability. One useful extension to close the loop: add a scheduled Gmail search (using the Gmail node with a Search operation filtered on unread threads in the sent thread’s label) to detect replies and automatically flip the Sheet status to ‘Replied’. Right now if someone replies and the workflow re-runs, it may re-send - catching that prevents follow-ups to people who already engaged and keeps your dataset clean.

Thank you Jay ! That’s a really smart extension — I hadn’t thought about the re-send risk on re-runs. Adding a Gmail search node to detect replies and flip the Sheet status to ‘Replied’ before the workflow proceeds would completely close that loop. I’m going to implement this today and update the workflow.

Also just checked out Genstaff — really interesting work you’re building . Would love to stay connected, just sent you a connection request on LinkedIn!