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: ``json { "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.
Use the n8n Data Tables feature to store, retrieve, and analyze survey results — then let OpenAI automatically recommend the most relevant course for each respondent. --- What this workflow does This workflow demonstrates how to use n8n’s built-in Data Tables to create an internal recommendation system powered by AI. It: Collects survey responses through a Form Trigger Saves responses to a Data Table called Survey Responses Fetches a list of available courses from another Data Table called Courses Passes both Data Tables into an OpenAI Chat Agent, which selects the most relevant course Returns a structured recommendation with: course: the course title reasoning: why it was selected > Trigger: Form submission (manual or public link) --- Who it’s for Perfect for educators, training managers, or anyone wanting to use n8n Data Tables as a lightweight internal database — ideal for AI-driven recommendations, onboarding workflows, or content personalization. --- How to set it up 1 Create your n8n Data Tables This workflow uses two Data Tables — both created directly inside n8n. Table 1: Survey Responses Columns: Name Q1 — Where did you learn about n8n? Q2 — What is your experience with n8n? Q3 — What kind of automations do you need help with? To create: 1. Add a Data Table node to your workflow. 2. From the list, click “Create New Data Table.” 3. Name it Survey Responses and add the columns above. --- Table 2: Courses Columns: Course Description To create: 1. Add another Data Table node. 2. Click “Create New Data Table.” 3. Name it Courses and create the columns above. 4. Copy course data from this Google Sheet: https://docs.google.com/spreadsheets/d/1Y0Q0CnqN0w47c5nCpbA1O3sn0mQaKXPhql2Bc1UeiFY/edit?usp=sharing This Courses Data Table is where you’ll store all available learning paths or programs for the AI to compare against survey inputs. --- 2 Connect OpenAI 1. Go to OpenAI Platform 2. Create an API key 3. In n8n, open Credentials → OpenAI API and paste your key 4. The workflow uses the gpt-4.1-mini model via the LangChain integration --- Key Nodes Used | Node | Purpose | n8n Feature | |------|----------|-------------| | Form Trigger | Collect survey responses | Forms | | Data Table (Upsert) | Stores results in Survey Responses | Data Tables | | Data Table (Get) | Retrieves Courses | Data Tables | | Aggregate + Set | Combines and formats table data | Core nodes | | OpenAI Chat Model (LangChain Agent) | Analyzes responses and courses | AI | | Structured Output Parser | Returns structured JSON output | LangChain | --- Tips for customization Add more Data Table columns (e.g., email, department, experience years) Use another Data Table to store AI recommendations or performance results Modify the Agent system message to customize how AI chooses courses Send recommendations via Email, Slack, or Google Sheets --- Why Data Tables? This workflow shows how n8n’s Data Tables can act as your internal database: Create and manage tables directly inside n8n No external integrations needed Store structured data for AI prompts Share tables across multiple workflows All user data and course content are stored securely and natively in n8n Cloud or Self-Hosted environments. --- Contact Need help customizing this (e.g., expanding Data Tables, connecting multiple surveys, or automating follow-ups)? robert@ynteractive.com Robert Breen ynteractive.com