🔓 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 + Google Sheets: funded leads with email drafts

Lisa Granqvist Partner Workflow Automation Expert

You find a “recently funded” company, then you copy names into a sheet, then you hunt for an email, then you write a cold email from scratch. By the time you hit send, the lead is cold and your notes are scattered across five tabs.

This is the kind of mess that slows down SDRs first, but growth marketers and agency owners doing outbound for clients feel it too. With funded leads automation, you go from “who should we contact?” to “draft ready in the sheet” in one run.

This workflow pulls funded companies via Apify, enriches contacts via Apollo, and writes first-touch email drafts with OpenAI. You’ll see what it replaces, what you need, and how the flow works end-to-end.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Apify + Google Sheets: funded leads with email drafts

The Challenge: Turning “Funded” Into “Contacted” Without the Busywork

Finding recently funded companies is the easy part. The real time sink starts right after: opening profiles, guessing who the decision-maker is, chasing emails, and trying to personalize a message without sounding like a template. It’s not just slow. It’s fragile. One missed copy-paste, one wrong row, one duplicate contact, and you end up with messy outreach, confused reporting, and teammates stepping on each other’s toes. Honestly, the worst part is the mental load. You can’t stay in “sales mode” when you’re doing spreadsheet admin.

The friction compounds fast. Here’s where it typically breaks down.

  • Crunchbase research turns into a long loop of tabs, notes, and half-finished rows in a sheet.
  • Contact enrichment gets inconsistent because different people use different tools and filters.
  • Emails get written too late, so your “hot” funding signal isn’t leveraged while it still matters.
  • Duplicates creep in, which means more retries, more bounces, and less trust in the list.

The Fix: Apify → Apollo → Google Sheets → AI Email Drafts

This workflow is built to run your outbound “front end” like a pipeline instead of a scavenger hunt. You start by running an Apify actor that scrapes a Crunchbase search for recently funded companies. For each company, the workflow pulls company profile details, then calls Apollo to identify relevant decision-makers and enrich their contact records (including email discovery). Next, it formats everything into a clean payload and upserts it into Google Sheets, so the same company doesn’t get added five times. After the rows exist, the workflow checks which leads are missing an email draft. If the draft is empty, OpenAI generates a first-touch email using the company and person fields, then saves the final draft back to the same row.

The workflow starts with a manual launch in n8n. From there, Apify collects funded-company results, Apollo enriches the people layer, and Google Sheets becomes your single source of truth. Finally, OpenAI writes the first email draft only when it’s needed, so you don’t waste tokens regenerating content you already approved.

What Changes: Before vs. After

Real-World Impact

Say you pull 10 newly funded companies per run (the template’s default count). Manually, you might spend about 10 minutes per company to copy details, find 1–2 decision-makers, and draft something decent, which is roughly 2 hours for a small batch. With this workflow, you trigger the run in n8n, wait for Apify + Apollo to populate your Google Sheet, then review drafts in one place. The human time drops to about 15 minutes of QA and light edits, not a full research session.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify to run the Crunchbase scraping actor.
  • Crunchbase access so the search URL and cookies work.
  • Apollo.io API key (get it from Apollo settings/API).
  • Google Sheets to store leads and email drafts.
  • OpenAI API key (get it from the OpenAI dashboard).

Skill level: Intermediate. You’ll be editing a Crunchbase search URL, adding API keys, and matching Google Sheet columns to the workflow fields.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

Manual launch from n8n. You run the workflow when you want a fresh batch, usually daily or a few times a week. This keeps spend predictable since Apify and Apollo can be credit-based.

Funded-company scraping via Apify. The Apify actor uses your Crunchbase discovery URL (filters, industry, funding round, location) and outputs a dataset of companies. The workflow then retrieves those dataset entries so n8n can process them.

Company + contact enrichment with Apollo. For each company, HTTP requests fetch the profile and query Apollo for relevant people, then the workflow splits people into batches, finds emails, and merges the person data back together. A couple of small “formatting” code steps turn that mess into clean, consistent fields for your sheet.

Google Sheets as the system of record. The workflow upserts each lead row so repeats don’t create duplicates, then re-reads the sheet and checks whether the email draft cell is empty. If it is, OpenAI generates a draft and the workflow updates the exact row.

You can easily modify the Crunchbase search filters and the Apollo persona criteria to match your ICP. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually so you can validate data enrichment before automating.

  1. Add the Manual Launch Trigger node as the starting point.
  2. Connect Manual Launch Trigger to Execute Apify Actor to initiate the pipeline.

Use the manual trigger during setup so you can inspect each node’s output before enabling automation.

Step 2: Connect Apify and Apollo Data Collection

This step captures Crunchbase data via Apify and enriches company/contact details using Apollo APIs.

  1. In Execute Apify Actor, set the actor input to use the provided customBody JSON, including cookie and search.url values.
  2. Credential Required: Connect your Apify credentials in Execute Apify Actor and Retrieve Dataset Entries (credentials are not configured in the workflow).
  3. In Retrieve Dataset Entries, set Resource to Datasets and Dataset ID to {{ $json.defaultDatasetId }}.
  4. In Fetch Company Profiles, set URL to https://api.apollo.io/v1/mixed_companies/search and JSON Body to { "q_organization_name": "{{ $json.funded_organization_identifier.value }}", "page": 1, "per_page": 1 }.
  5. In Lookup Key Contacts, set URL to https://api.apollo.io/v1/people/search and JSON Body to { "q_organization_domains_list": ["{{ $json.organizations[0].primary_domain }}"], "person_seniorities": ["vp", "head", "director"], "person_titles": ["engineering","technology","product","operations","infrastructure","devops","data science","machine learning","cloud"], "pagination": { "page": 1, "per_page": 10 } }.
  6. In Find Contact Email, set URL to https://api.apollo.io/v1/people/match and JSON Body to { "id": "{{ $json.id }}" }.
  7. Credential Required: Connect your httpHeaderAuth credentials in Fetch Company Profiles, Lookup Key Contacts, and Find Contact Email (credentials are not configured in the workflow).

⚠️ Common Pitfall: Apollo API calls require a valid API key in the HTTP header auth; missing or invalid credentials will return empty datasets and stop downstream enrichment.

Step 3: Set Up Contact Processing and Merge Logic

This section splits contacts, fetches emails, and merges them back into the company record.

  1. In Split People Records, set Field to Split Out to people.
  2. Lookup Key Contacts outputs to both Split People Records and Combine Person Data in parallel.
  3. Keep Combine Person Data as a merge point before Merge Email Mapping.
  4. In Merge Email Mapping, keep the provided JS Code to match each person by id and inject person.email.
  5. In Format Sheet Payload, keep the provided JS Code and ensure it references Fetch Company Profiles with $('Fetch Company Profiles').all().

If you adjust Apollo fields, update the mapping in Format Sheet Payload so the correct company and person data reaches Google Sheets.

Step 4: Configure Google Sheets Output and Updates

These nodes write enriched contacts to your sheet and then read back rows for AI personalization.

  1. In Upsert Lead Row, set Operation to appendOrUpdate.
  2. Map columns in Upsert Lead Row using expressions like {{ $json.person_email }}, {{ $json.company_name }}, and {{ $json.person_designation }} as shown in the node.
  3. Set Document ID and Sheet Name in Upsert Lead Row to your Google Sheet values (replace [YOUR_ID]).
  4. In Read Sheet Rows, set the same Document ID and Sheet Name so the AI step reads the correct rows.
  5. In Update Sheet Entry, set Operation to update and map Person Email to {{ $('Check Email Empty').item.json['Person Email'] }} and Personalised Email to {{ $json.message.content }}.
  6. Credential Required: Connect your Google Sheets credentials in Upsert Lead Row, Read Sheet Rows, and Update Sheet Entry (credentials are not configured in the workflow).

Step 5: Set Up AI Email Generation and Conditional Routing

The workflow checks for missing emails and generates a personalized outreach message only when needed.

  1. In Check Email Empty, confirm the condition uses {{ $json['Personalised Email'] }} with the empty operator.
  2. In Generate AI Email, keep the model as gpt-4.1 and the long-form prompt in Messages for cold outreach generation.
  3. Generate AI Email should connect to Update Sheet Entry to write back the generated email.
  4. Credential Required: Connect your OpenAI credentials in Generate AI Email (credentials are not configured in the workflow).
  5. Leave No-Op Placeholder connected to the false path from Check Email Empty as a safe sink when no AI generation is needed.

⚠️ Common Pitfall: If the sheet column name differs from Personalised Email, the condition in Check Email Empty will never match and AI generation won’t run.

Step 6: Test and Activate Your Workflow

Run a full manual test to validate data flow, then activate for production use.

  1. Click Execute Workflow on Manual Launch Trigger to run the pipeline end-to-end.
  2. Verify Upsert Lead Row adds or updates rows with company/person fields populated.
  3. Confirm Check Email Empty routes only empty rows to Generate AI Email, and Update Sheet Entry writes to Personalised Email.
  4. Once outputs look correct, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Apify and Crunchbase authentication can be finicky because it relies on a valid cookie and the right search URL. If the scrape returns empty, check the Apify actor run logs and confirm your Crunchbase session cookie is still valid.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • OpenAI drafts will feel generic if you don’t tailor the prompt to your offer and voice. Update the prompt early, because editing hundreds of “almost right” emails later is a slow kind of pain.

Common Questions

How quickly can I implement this funded leads automation?

About an hour if you already have Apify, Apollo, and your Google Sheet ready.

Can non-technical teams implement this funded leads automation?

Yes, but you’ll want someone comfortable with API keys and spreadsheet setup. No coding is required, though small changes (like column names) do matter.

Is n8n free to use for this funded leads automation 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 whatever Apify/Apollo charge for your volume.

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.

How do I adapt this funded leads automation solution to my specific challenges?

You can swap the Crunchbase target by updating the Apify “Run an Actor” node’s search.url, and you can tighten your buyer persona by editing the Apollo “Lookup Key Contacts” request (seniorities and title keywords). Common tweaks include changing industries, limiting by funding stage, and rewriting the OpenAI prompt to match your offer and call-to-action. If your sheet has different tabs, update the Google Sheets document ID and sheet names in the upsert and update nodes.

Why is my Apify connection failing in this workflow?

Usually it’s expired Crunchbase cookies or an Apify actor configuration that no longer matches the page. Re-run the Apify actor inside Apify first, confirm it produces dataset entries, then update the cookie and search URL in n8n. Also check your Apify token permissions and rate limits if you’re pulling larger batches.

What’s the capacity of this funded leads automation solution?

It scales mostly with your Apify and Apollo limits, plus how many leads you choose to pull per run.

Is this funded leads automation better than using Zapier or Make?

For this use case, n8n is a better fit more often than not because the flow isn’t just “A to B.” You’re scraping, enriching, splitting contacts into batches, merging records, then conditionally generating AI content and writing it back to the exact row. That branching and data handling gets expensive or awkward in many no-code tools. n8n also gives you a self-hosting route, which matters if you’re running outbound at high volume and want predictable costs. Zapier or Make can still be fine for a simpler version (say, enrichment only). Talk to an automation expert if you want a quick recommendation based on your stack.

Once this is running, your lead list stops being a project and starts being an asset. The workflow does the repetitive parts so you can spend your time on targeting, offers, and replies.

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