🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Apify to Google Sheets, clean leads for Gmail outreach

Lisa Granqvist Partner Workflow Automation Expert

Your outreach process probably isn’t “hard.” It’s just annoyingly fragile. One bad export, one messy CSV column, one rushed personalization, and suddenly you’re staring at bounced emails, angry replies, and a sheet full of half-usable leads.

This Apify Gmail outreach setup hits agency owners running campaigns for clients, but founders and marketing leads doing their own prospecting feel it too. You will collect targeted leads, clean and structure them automatically, then send personalized emails at a controlled pace that doesn’t look like spam.

Below is the exact workflow logic, what it automates, and what results you can expect once it’s running in n8n.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Apify to Google Sheets, clean leads for Gmail outreach

The Problem: Lead lists are messy and outreach is risky

Lead generation tools can find names all day. The problem is everything that happens after. You pull a list, then you spend an hour cleaning columns, hunting for missing emails, and trying to figure out who’s actually worth contacting. Then comes the worst part: writing “personalized” emails that still sound templated because you’re rushing. If you send too fast, deliverability takes a hit. If you go too slow, your pipeline dries up. It’s a constant tradeoff, and frankly it gets old.

The friction compounds, especially once you try to scale beyond a tiny batch.

  • Exported leads rarely arrive in the structure your CRM or sheet needs, so you end up doing cleanup by hand.
  • Some contacts have no email address, and mixing them into your “send list” creates chaos later.
  • Personalization becomes copy-paste theater, which means more edits and more second-guessing.
  • Sending too many emails too quickly can trigger spam filters and hurt your domain reputation.

The Solution: Apify finds leads, Sheets organizes, AI personalizes, Gmail sends safely

This workflow turns lead sourcing and outreach into a repeatable system. It starts with a simple form where you define who you want: job title, company size, keywords, and location. From that, OpenAI generates a clean Apollo search URL, and an Apify Actor pulls matching contacts and companies. The workflow caps the number of records per run (so you don’t accidentally blast through a huge list), then uses AI again to parse the raw lead data into consistent fields like name, title, LinkedIn, company, and email. Leads with emails go into your main Google Sheet and into the email-drafting path, while leads missing emails are written to a separate sheet for enrichment later.

Next, OpenAI drafts a personalized version of your fixed email template for each lead. Finally, n8n sends the emails one-by-one using a loop with a Wait delay in between, then sends you a “campaign complete” confirmation when the batch finishes.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you want to contact 5 new leads per run (the workflow’s built-in cap) and you run it every 10 minutes during a prospecting block. Manually, finding 5 leads, cleaning fields, splitting “no email” contacts, and drafting 5 decent emails can easily take about 45 minutes. With this workflow, you spend roughly 2 minutes filling the form, then wait for Apify + AI processing and the paced sending. The hands-on work drops to a few minutes, and you still keep the “send slow” safety that protects deliverability.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify to fetch targeted leads via an Actor
  • Google Sheets for lead storage and routing
  • OpenAI API key (get it from the OpenAI dashboard)

Skill level: Intermediate. You’ll connect credentials, choose the right Sheets, and adjust limits and wait times safely.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Form intake starts the run. You enter your targeting details (job title, company size, keywords, location), which keeps list-building consistent across your team.

AI turns your intent into a real search. The workflow uses an OpenAI model to generate an Apollo search URL from the form inputs, then uses an HTTP request to run an Apify Actor against that target.

Leads are cleaned and structured. Another AI step parses the results into usable fields (name, email, title, LinkedIn, company, links) and even produces a short summary so you know why the lead is relevant.

Sheets and sending are routed automatically. Leads with emails are appended to your main Google Sheet, drafted into personalized outreach copy, then sent via Gmail (or SMTP) using a loop with a Wait delay between sends. Missing-email leads go to a separate sheet for later enrichment.

You can easily modify the record cap and the sending delay based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Start the workflow by capturing new lead details from the embedded form.

  1. Add and open Form Intake Trigger.
  2. Define the form fields that your outreach process needs (e.g., name, company, website, email).
  3. Copy the form URL generated by Form Intake Trigger and embed it where leads will submit data.
  4. Connect Form Intake Trigger to Apollo Link Builder.

The Flowpast Branding sticky note is informational only and doesn’t affect execution. Keep it for reference or remove it if you prefer a cleaner canvas.

Step 2: Connect Google Sheets

Store and triage lead data using the two Sheets nodes that capture successful and missing email records.

  1. Open Append to Sheets and select the target spreadsheet and sheet tab for valid lead records.
  2. Map fields from the incoming lead data into the columns you want to store.
  3. Open Leads Missing Email and select the spreadsheet/sheet where you log leads without an email.
  4. Connect Conditional Gate to both Sheets nodes as shown in the workflow.
  5. Credential Required: Connect your Google Sheets credentials in both Append to Sheets and Leads Missing Email.

⚠️ Common Pitfall: Leaving Sheet selection empty in Append to Sheets or Leads Missing Email will cause the workflow to fail when data is written.

Step 3: Set Up AI Processing and Lead Enrichment

Configure the AI and enrichment chain that builds Apollo links, scrapes data, interprets results, and drafts outreach copy.

  1. Open Apollo Link Builder and configure the prompt to generate the appropriate Apollo search link or query for the lead.
  2. Open Link Parsing Model and select the OpenAI model you want to use for link generation and parsing.
  3. Connect Link Parsing Model to Apollo Link Builder as its language model (already wired in the workflow).
  4. Open Execute Apify Request and set the Apify endpoint, HTTP method, and authorization headers required by your Apify actor.
  5. Open Cap Record Count and set a max record limit to control how many leads are processed per run.
  6. Open Interpret Lead Details and verify it uses Chat Data Parser as the language model and Structured Result Parser as the output parser.
  7. Open Draft Outreach Email and configure the prompt and message format for the final outreach email.
  8. Credential Required: Connect your OpenAI credentials in Link Parsing Model, Chat Data Parser, and Draft Outreach Email.

The Structured Result Parser is an AI tool sub-node. Add credentials to the parent AI nodes (Chat Data Parser and Interpret Lead Details), not to the parser itself.

Step 4: Configure Output and Email Delivery

Route leads through the conditional gate, send outreach emails in batches, and send completion notices.

  1. Open Conditional Gate and define the rule that determines whether a lead is missing an email address.
  2. Confirm the branch where leads with missing emails go to Leads Missing Email, and valid leads go to Append to Sheets.
  3. Verify Append to Sheets outputs to Draft Outreach Email so every stored lead gets a drafted email.
  4. Open Batch Iterator and set the batch size to control outreach throughput.
  5. Batch Iterator outputs to both Completion Notice Email and Dispatch Outreach Email in parallel.
  6. Open Dispatch Outreach Email and configure recipient, subject, and message body fields using the drafted email content.
  7. Open Completion Notice Email and set the recipient for the end-of-run notification.
  8. Credential Required: Connect your Gmail credentials in Completion Notice Email and Utility: Gmail Send.
  9. Credential Required: Connect your SMTP credentials in Dispatch Outreach Email.

⚠️ Common Pitfall: If Batch Iterator has a batch size of 0 or is left empty, no emails will be sent.

Step 5: Configure Timing and Loop Control

Throttle outreach sends to prevent rate limits and keep the loop stable.

  1. Open Pause Timer and set your desired wait duration between outreach sends.
  2. Confirm Dispatch Outreach Email outputs to Pause Timer to enforce delays.
  3. Ensure Pause Timer outputs back to Batch Iterator to continue batching.
  4. Leave Idle Pass-Through as-is; it serves as a terminal node after the completion notice.

Use a longer wait time in Pause Timer if your email provider enforces daily or hourly sending limits.

Step 6: Test and Activate Your Workflow

Run a full test to verify data flow from form intake to outreach delivery.

  1. Click Execute Workflow and submit a test entry through the Form Intake Trigger form.
  2. Confirm that Execute Apify Request returns lead data and Cap Record Count limits the output as expected.
  3. Check Append to Sheets and Leads Missing Email to ensure the conditional routing works.
  4. Verify that Draft Outreach Email creates a draft and that Dispatch Outreach Email sends a message.
  5. Confirm a completion message is sent by Completion Notice Email once batches finish.
  6. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google credentials can expire or need specific permissions. If things break, check the Google connection status in n8n Credentials and confirm the Sheets scope is allowed.
  • If you’re using Wait nodes or external processing, execution times vary. Bump up the wait duration if downstream email steps fail because they’re running before the loop is ready.
  • Default prompts in AI nodes are generic. Add your brand voice inside the “Draft Outreach Email” prompt early or you’ll be editing every message anyway.

Frequently Asked Questions

How long does it take to set up this Apify Gmail outreach automation?

About 30 minutes once your keys and accounts are ready.

Do I need coding skills to automate Apify Gmail outreach?

No. You’ll mostly connect credentials, pick the right Sheets, and adjust the record limit and Wait delay.

Is n8n free to use for this Apify Gmail outreach workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage and your Apify plan.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Apify Gmail outreach workflow for Outlook instead of Gmail?

Yes, but you’ll swap the sending step. Replace the Gmail-based sender with an SMTP/Outlook email node in the “Dispatch Outreach Email” part of the workflow, then keep the Loop and Wait logic the same. Common tweaks include changing the sender identity, adjusting the pause duration, and routing replies to a shared inbox.

Why is my Apify connection failing in this workflow?

Usually it’s the bearer token. Regenerate your Apify API token, update it in the “Execute Apify Request” credentials or headers, and confirm the Actor you’re calling is available in your Apify account. If it fails only sometimes, you may be hitting rate limits or the target source is returning inconsistent data, which means the parser can choke on unexpected fields.

How many leads can this Apify Gmail outreach automation handle?

In practice, most people run it in small batches (like 5 per run) and repeat on a schedule. On n8n Cloud Starter, you’re limited by monthly executions; on self-hosting there’s no execution cap, so it mostly depends on your server and the speed of Apify + OpenAI steps. If you want higher volume, increase the Limit node gradually and keep the Wait delay conservative so deliverability stays healthy.

Is this Apify Gmail outreach automation better than using Zapier or Make?

Often, yes, because this workflow relies on branching, looping, and paced sending, and those get expensive or awkward in many “simple automation” tools. n8n also gives you tighter control over data shaping before it hits Google Sheets, which matters when you’re separating leads with emails from leads without emails. The other big factor is cost at volume: self-hosting means you can run it as much as you want. Zapier or Make can still win if you only need a tiny two-step flow and you don’t care about batching logic. Talk to an automation expert if you want a quick recommendation for your exact use case.

Set it up once, then let it quietly pull, clean, draft, and send while you focus on calls and follow-ups. Honestly, that’s the part that moves revenue.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal