Skip to main content

Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review

Workflow preview

Workflow preview
100%
Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

AI Enriched Cold Outreach: Research → Draft → QA → Write back ============================================================ What this template does Automates cold email drafting from a lead list by:...

Best for

  • Lead Nurturing automation workflows
  • AI Chatbot automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

@n8n/n8n-nodes-langchain.outputparserstructured, n8n-nodes-base.splitinbatches, n8n-nodes-base.if, @n8n/n8n-nodes-langchain.agent, n8n-nodes-base.set, @n8n/n8n-nodes-langchain.lmchatgooglegemini, n8n-nodes-base.manualtrigger, n8n-nodes-base.datatable

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Johnny Rafael.

Original n8n.io source

1.1 Workflow description

Title
Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review
Workflow name
Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review

AI-Enriched Cold Outreach: Research → Draft → QA → Write-back

What this template does

Automates cold email drafting from a lead list by:

  1. Enriching each lead with LinkedIn profile, LinkedIn company, and Crunchbase data
  2. Generating a personalized subject + body with Gemini
  3. Auto-reviewing with a Judge agent and writing back only APPROVED drafts to your Data Table

Highlights

  • Hands-off enrichment via RapidAPI; raw JSON stored back on each row
  • Two-agent pattern: Creative Outreach Agent (draft) + Outreach Email Judge (QA)
  • Structured outputs guaranteed by LangChain Structured Output Parsers
  • Data Table–native: reads “unprocessed” rows, writes results to the same row
  • Async polling with Wait nodes for scraper task results

How it works (flow)

  1. Trigger: Manual (replace with Cron if needed)
  2. Fetch leads: Data Table “Get row(s)” filters rows where email_subject is empty (pending)
  3. Loop: Split in Batches iterates rows
  4. Enrichment (runs in parallel):
    • LinkedIn profile: HTTP (company_url) → Wait → Results → Data Table update → linkedin_profile_scrape
    • LinkedIn company: HTTP (company_url) → Wait → Results → Data Table update → linkedin_company_scrape
    • Crunchbase company: HTTP (url_search) → Wait → Results → Data Table update → crunchbase_company_scrape
      (All calls use host cold-outreach-enrichment-scraper with a RapidAPI key.)
  5. Draft (Gemini): “Agent One” composes a concise, personalized email using row fields + enrichment + ABOUT ME block.
    • Structured Output Parser enforces:
      {
        "email_subject": "text",
        "email_content": "text"
      }
      
  6. Prep for QA: “Email Context” maps email_subject, email_content, and email for the judge.
  7. QA (Judge): “Judge Agent” returns APPROVED or REVISE (brief feedback allowed).
  8. Route:
    • If APPROVED → Data Table “Update row(s)” writes email_subject + email_body (a.k.a. email_content) back to the row.
    • If REVISE → Skipped; loop continues.

Required setup

Data Table: “email_linkedin_list” (or your own) with at least:

  • email, First_name, Last_name, Title, Location, Company_Name, Company_site,
    Linkedin_URL, company_linkedin (if used), Crunchbase_URL,
    email_subject, email_body,
    linkedin_profile_scrape, linkedin_company_scrape, crunchbase_company_scrape (string fields for JSON).

Credentials:

  • RapidAPI key for cold-outreach-enrichment-scraper (store securely as credential, not hardcoded)
  • Google Gemini (PaLM) API configured in the Google Gemini Chat Model node

ABOUT ME block:
Replace the sample persona (James / CEO / Company Sample / AI Automations) with your own.

Nodes used

  • Data Table
  • HTTP Request:
  • AI Agent:
  • Google Gemini Chat Model
  • Split in Batches: Main Loop
  • Set: RapidAPI-Key

Customization ideas

  • Process flags: Add email_generated_at or processed boolean to prevent reprocessing.
  • Human-in-the-loop: Send drafts to Slack/Email for spot check before write-back.
  • Delivery: After approval, optionally email the draft to the sender for review.

Quotas & costs

  • RapidAPI: Multiple calls per row (three tasks + result polls).
  • Gemini: Token usage for generator + judge per row.
    Tune batch size and schedule accordingly.

Privacy & compliance

You are scraping and storing person/company data.
Ensure lawful basis, respect ToS, and minimize stored data.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Structured Output Parser

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.2

Block 2 - Structured Output Parser1

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.2

Block 3 - Main Loop

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 4 - Approval Route

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 5 - Agent One

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2

Block 6 - Email Context

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 7 - Judge Agent

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 2

Block 8 - Google Gemini Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - lmChatGoogleGemini
Config choices
Version 1

Block 9 - When clicking ‘Execute workflow’

Type / Role
n8n-nodes-base.manualTrigger - manualTrigger
Config choices
Version 1

Block 10 - Get row(s)

Type / Role
n8n-nodes-base.dataTable - dataTable
Config choices
Version 1

Block 11 - Update row(s)

Type / Role
n8n-nodes-base.dataTable - dataTable
Config choices
Version 1

Block 12 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - Get row(s)1

Type / Role
n8n-nodes-base.dataTable - dataTable
Config choices
Version 1

Block 15 - When Executed by Another Workflow

Type / Role
n8n-nodes-base.executeWorkflowTrigger - executeWorkflowTrigger
Config choices
Version 1.1

Block 16 - Linkedin_URL

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 17 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Wait

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 19 - RapidAPI-Key

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 20 - results

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 21 - Update row(s)1

Type / Role
n8n-nodes-base.dataTable - dataTable
Config choices
Version 1

Block 22 - Wait1

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 23 - results1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 24 - Update row(s)2

Type / Role
n8n-nodes-base.dataTable - dataTable
Config choices
Version 1

Showing the first 24 of 33 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review
Complexity advanced
Nodes 33
Categories Lead Nurturing, AI Chatbot
Author Johnny Rafael
Published 17 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9814/9814.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Personalized email outreach with LinkedIn & Crunchbase data and Gemini AI review do?

AI Enriched Cold Outreach: Research → Draft → QA → Write back ============================================================ What this template does Automates cold email drafting from a lead list by:...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing, AI Chatbot use case.