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:
- Enriching each lead with LinkedIn profile, LinkedIn company, and Crunchbase data
- Generating a personalized subject + body with Gemini
- 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)
- Trigger: Manual (replace with Cron if needed)
- Fetch leads: Data Table “Get row(s)” filters rows where
email_subjectis empty (pending) - Loop: Split in Batches iterates rows
- 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 hostcold-outreach-enrichment-scraperwith a RapidAPI key.)
- LinkedIn profile: HTTP (
- 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" }
- Structured Output Parser enforces:
- Prep for QA: “Email Context” maps
email_subject,email_content, andemailfor the judge. - QA (Judge): “Judge Agent” returns
APPROVEDorREVISE(brief feedback allowed). - Route:
- If
APPROVED→ Data Table “Update row(s)” writesemail_subject+email_body(a.k.a.email_content) back to the row. - If
REVISE→ Skipped; loop continues.
- If
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_atorprocessedboolean 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.
n8n Workflow: Basic Workflow Structure Example
This n8n workflow demonstrates a foundational structure for processing data, applying conditional logic, and interacting with external services, including an AI model. It includes elements for manual triggering, data manipulation, looping, and sub-workflow execution.
What it does
This workflow outlines a series of generic steps, providing a template for more complex automations:
- Manual Trigger: The workflow can be initiated manually, making it suitable for testing or on-demand execution.
- Sub-workflow Trigger: It can also be triggered by another n8n workflow, enabling modular and reusable workflow components.
- Data Table: Initializes or processes data within a data table, acting as a starting point for data manipulation.
- Edit Fields (Set): Modifies or adds fields to the incoming data, allowing for data enrichment or restructuring.
- Loop Over Items (Split in Batches): Processes data in batches, useful for handling large datasets efficiently and iteratively.
- Conditional Logic (If): Routes the workflow based on specified conditions, enabling branching logic.
- HTTP Request: Makes requests to external APIs or web services, demonstrating integration capabilities.
- Wait: Pauses the workflow for a specified duration, useful for rate limiting or timed operations.
- Execute Sub-workflow: Calls and executes another n8n workflow as a sub-process, promoting modularity.
- AI Agent (LangChain): Integrates with an AI agent, likely for advanced natural language processing, decision-making, or content generation.
- Google Gemini Chat Model: Specifically utilizes the Google Gemini AI model for chat-based interactions or content generation.
- Structured Output Parser: Processes and structures the output from the AI model, ensuring data consistency.
- Sticky Note: Provides a textual annotation within the workflow for documentation or explanations.
Prerequisites/Requirements
- n8n Instance: An active n8n instance to import and run the workflow.
- Google Gemini API Key: Required for the Google Gemini Chat Model node to function (if configured for actual use).
- LangChain Integration: The n8n LangChain nodes (
AI Agent,Structured Output Parser,Google Gemini Chat Model) are part of the n8n LangChain integration, which needs to be available in your n8n instance.
Setup/Usage
- Import the Workflow: Download the provided JSON and import it into your n8n instance.
- Configure Credentials: If you intend to use the
Google Gemini Chat ModelorHTTP Requestnodes with external services, ensure you configure the necessary credentials (e.g., API keys) within n8n. - Adjust Nodes: Review each node's configuration:
- Data table: Populate with your initial data or connect it to a data source.
- Edit Fields (Set): Define the fields you want to modify or add.
- Loop Over Items (Split in Batches): Adjust batch size as needed.
- If: Set up your desired conditional logic for branching.
- HTTP Request: Specify the URL, method, headers, and body for your API calls.
- Wait: Configure the delay duration.
- Execute Sub-workflow: Specify the workflow ID or name of the sub-workflow to execute.
- AI Agent, Google Gemini Chat Model, Structured Output Parser: Configure prompts, models, and parsing rules according to your AI task.
- Execute:
- To trigger manually, click "Execute workflow" in the n8n editor.
- To trigger via another workflow, ensure the
Execute Workflow Triggernode is properly linked.
Related Templates
Track competitor SEO keywords with Decodo + GPT-4.1-mini + Google Sheets
This workflow automates competitor keyword research using OpenAI LLM and Decodo for intelligent web scraping. Who this is for SEO specialists, content strategists, and growth marketers who want to automate keyword research and competitive intelligence. Marketing analysts managing multiple clients or websites who need consistent SEO tracking without manual data pulls. Agencies or automation engineers using Google Sheets as an SEO data dashboard for keyword monitoring and reporting. What problem this workflow solves Tracking competitor keywords manually is slow and inconsistent. Most SEO tools provide limited API access or lack contextual keyword analysis. This workflow solves that by: Automatically scraping any competitor’s webpage with Decodo. Using OpenAI GPT-4.1-mini to interpret keyword intent, density, and semantic focus. Storing structured keyword insights directly in Google Sheets for ongoing tracking and trend analysis. What this workflow does Trigger — Manually start the workflow or schedule it to run periodically. Input Setup — Define the website URL and target country (e.g., https://dev.to, france). Data Scraping (Decodo) — Fetch competitor web content and metadata. Keyword Analysis (OpenAI GPT-4.1-mini) Extract primary and secondary keywords. Identify focus topics and semantic entities. Generate a keyword density summary and SEO strength score. Recommend optimization and internal linking opportunities. Data Structuring — Clean and convert GPT output into JSON format. Data Storage (Google Sheets) — Append structured keyword data to a Google Sheet for long-term tracking. Setup Prerequisites If you are new to Decode, please signup on this link visit.decodo.com n8n account with workflow editor access Decodo API credentials OpenAI API key Google Sheets account connected via OAuth2 Make sure to install the Decodo Community node. Create a Google Sheet Add columns for: primarykeywords, seostrengthscore, keyworddensity_summary, etc. Share with your n8n Google account. Connect Credentials Add credentials for: Decodo API credentials - You need to register, login and obtain the Basic Authentication Token via Decodo Dashboard OpenAI API (for GPT-4o-mini) Google Sheets OAuth2 Configure Input Fields Edit the “Set Input Fields” node to set your target site and region. Run the Workflow Click Execute Workflow in n8n. View structured results in your connected Google Sheet. How to customize this workflow Track Multiple Competitors → Use a Google Sheet or CSV list of URLs; loop through them using the Split In Batches node. Add Language Detection → Add a Gemini or GPT node before keyword analysis to detect content language and adjust prompts. Enhance the SEO Report → Expand the GPT prompt to include backlink insights, metadata optimization, or readability checks. Integrate Visualization → Connect your Google Sheet to Looker Studio for SEO performance dashboards. Schedule Auto-Runs → Use the Cron Node to run weekly or monthly for competitor keyword refreshes. Summary This workflow automates competitor keyword research using: Decodo for intelligent web scraping OpenAI GPT-4.1-mini for keyword and SEO analysis Google Sheets for live tracking and reporting It’s a complete AI-powered SEO intelligence pipeline ideal for teams that want actionable insights on keyword gaps, optimization opportunities, and content focus trends, without relying on expensive SEO SaaS tools.
AI-powered code review with linting, red-marked corrections in Google Sheets & Slack
Advanced Code Review Automation (AI + Lint + Slack) Who’s it for For software engineers, QA teams, and tech leads who want to automate intelligent code reviews with both AI-driven suggestions and rule-based linting — all managed in Google Sheets with instant Slack summaries. How it works This workflow performs a two-layer review system: Lint Check: Runs a lightweight static analysis to find common issues (e.g., use of var, console.log, unbalanced braces). AI Review: Sends valid code to Gemini AI, which provides human-like review feedback with severity classification (Critical, Major, Minor) and visual highlights (red/orange tags). Formatter: Combines lint and AI results, calculating an overall score (0–10). Aggregator: Summarizes results for quick comparison. Google Sheets Writer: Appends results to your review log. Slack Notification: Posts a concise summary (e.g., number of issues and average score) to your team’s channel. How to set up Connect Google Sheets and Slack credentials in n8n. Replace placeholders (<YOURSPREADSHEETID>, <YOURSHEETGIDORNAME>, <YOURSLACKCHANNEL_ID>). Adjust the AI review prompt or lint rules as needed. Activate the workflow — reviews will start automatically whenever new code is added to the sheet. Requirements Google Sheets and Slack integrations enabled A configured AI node (Gemini, OpenAI, or compatible) Proper permissions to write to your target Google Sheet How to customize Add more linting rules (naming conventions, spacing, forbidden APIs) Extend the AI prompt for project-specific guidelines Customize the Slack message formatting Export analytics to a dashboard (e.g., Notion or Data Studio) Why it’s valuable This workflow brings realistic, team-oriented AI-assisted code review to n8n — combining the speed of automated linting with the nuance of human-style feedback. It saves time, improves code quality, and keeps your team’s review history transparent and centralized.
Auto-reply & create Linear tickets from Gmail with GPT-5, gotoHuman & human review
This workflow automatically classifies every new email from your linked mailbox, drafts a personalized reply, and creates Linear tickets for bugs or feature requests. It uses a human-in-the-loop with gotoHuman and continuously improves itself by learning from approved examples. How it works The workflow triggers on every new email from your linked mailbox. Self-learning Email Classifier: an AI model categorizes the email into defined categories (e.g., Bug Report, Feature Request, Sales Opportunity, etc.). It fetches previously approved classification examples from gotoHuman to refine decisions. Self-learning Email Writer: the AI drafts a reply to the email. It learns over time by using previously approved replies from gotoHuman, with per-classification context to tailor tone and style (e.g., different style for sales vs. bug reports). Human Review in gotoHuman: review the classification and the drafted reply. Drafts can be edited or retried. Approved values are used to train the self-learning agents. Send approved Reply: the approved response is sent as a reply to the email thread. Create ticket: if the classification is Bug or Feature Request, a ticket is created by another AI agent in Linear. Human Review in gotoHuman: How to set up Most importantly, install the gotoHuman node before importing this template! (Just add the node to a blank canvas before importing) Set up credentials for gotoHuman, OpenAI, your email provider (e.g. Gmail), and Linear. In gotoHuman, select and create the pre-built review template "Support email agent" or import the ID: 6fzuCJlFYJtlu9mGYcVT. Select this template in the gotoHuman node. In the "gotoHuman: Fetch approved examples" http nodes you need to add your formId. It is the ID of the review template that you just created/imported in gotoHuman. Requirements gotoHuman (human supervision, memory for self-learning) OpenAI (classification, drafting) Gmail or your preferred email provider (for email trigger+replies) Linear (ticketing) How to customize Expand or refine the categories used by the classifier. Update the prompt to reflect your own taxonomy. Filter fetched training data from gotoHuman by reviewer so the writer adapts to their personalized tone and preferences. Add more context to the AI email writer (calendar events, FAQs, product docs) to improve reply quality.