AutomationFlowsAI & RAG › Create Personalized B2b Outreach Emails with Tavily Research & Openrouter LLM

Create Personalized B2b Outreach Emails with Tavily Research & Openrouter LLM

ByHaruki Kuwai @harukikuwai8098 on n8n.io

This workflow automatically generates personalized B2B outreach email messages by combining AI-based company research and text generation. It’s designed to help sales and marketing professionals automate the creation of tailored cold emails for prospects. Get rows from Google…

Event trigger★★★★☆ complexityAI-powered17 nodesHTTP RequestGoogle SheetsOutput Parser StructuredChain LlmAgent@Tavily/N8N Nodes TavilyOpenRouter Chat
AI & RAG Trigger: Event Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10009 — we link there as the canonical source.

This workflow follows the Agent → Chainllm recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "4IHvU7TL8cJuEdRh",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Generate Personalized B2B Outreach Emails using AI Research",
  "tags": [],
  "nodes": [
    {
      "id": "47326b63-fedc-45c8-acaa-392f49fa7ac3",
      "name": "Add Lead to Instantly AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1232,
        -80
      ],
      "parameters": {
        "url": "https://api.instantly.ai/api/v2/leads",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"campaign\": \"YOUR_CAMPAIGN_ID\",\n  \"email\": \"{{ $('Loop Over Items').item.json.email }}\",\n  \"full_name\": \"{{ $('Loop Over Items').item.json.full_name }}\",\n  \"company_name\": \"{{ $('Loop Over Items').item.json.company_name }}\",\n  \"custom_variables\": {\n    \"custom_body\": \"{{ $('Generate Outreach Message').item.json.text }}\"\n  }\n\n }",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "357f24f2-50ce-4100-9f09-ed8e1dcaf29a",
      "name": "Add Company Info to Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "onError": "continueRegularOutput",
      "position": [
        928,
        -208
      ],
      "parameters": {
        "columns": {
          "value": {
            "status": "complete",
            "company_name": "={{ $('Limit(Test)').item.json.company_name }}",
            "Key Offerings": "={{ $('Company Research').item.json.output.keyOfferings }}",
            "Company Summary": "={{ $('Company Research').item.json.output.comprehensiveSummary }}",
            "Outreach Message": "={{ $json.text }}",
            "Company Background": "={{ $('Company Research').item.json.output.companyOverview }}",
            "Recent Company News": "={{ $('Company Research').item.json.output.recentWebsiteNews }}"
          },
          "schema": [
            {
              "id": "date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "department",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "department",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "job_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "full_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "full_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postal_code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postal_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "address",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mobile_phone_number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "mobile_phone_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "phone_number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "phone_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "fax_number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "fax_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "website_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Background",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company Background",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Recent Company News",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Recent Company News",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Key Offerings",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Key Offerings",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Outreach Message",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Outreach Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "company_name"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit#gid=0",
          "cachedResultName": "BusinessCardList"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit?usp=drivesdk",
          "cachedResultName": "Demo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "c00b9130-4f3f-41c1-a670-77098f59c804",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        448,
        -32
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"companyOverview\": \"String: 1-2 sentence description from website. (Source: ...)\",\n  \"recentWebsiteNews\": \"String: Bullet points of recent website news/blog posts. (Source: ...)\",\n  \"keyOfferings\": \"String: Bullet points of key products/services. (Source: ...)\",\n\"comprehensiveSummary\": \"String: 1-2 sentence synthesis of companyOverview, recentWebsiteNews, keyOfferings, and thirdPartySentiment\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "2b52baa3-d06f-4427-8315-9b2fc62322eb",
      "name": "Generate Outreach Message",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "onError": "continueRegularOutput",
      "position": [
        608,
        -208
      ],
      "parameters": {
        "text": "=name:  {{ $('Loop Over Items').item.json.full_name }}\n\ncompany name: {{ $('Loop Over Items').item.json.company_name }}\n\ncompany background: {{ $json.output.comprehensiveSummary }}",
        "messages": {
          "messageValues": [
            {
              "message": "=You are an Expert B2B Cold Outreach Email Drafter.  \nYour objective is to compose a concise, professional, and highly personalized email body (target 100\u2013150 words) to introduce **YOUR_COMPANY_NAME\u2019s AI training and automation services** to a business prospect.\n\n---\n\n**Your Company:** YOUR_COMPANY_NAME  \n**Your Offering:** We provide AI talent development and automation training programs. In particular, we conduct AI training that enables even non-engineers to learn workflow automation through no-code methods.\n\n---\n\n**Input Data Provided:**  \nYou will receive the following information about the prospect and their company:\n* `name`: The prospect's name  \n* `company name`: The name of the prospect's company  \n* `company background`: A summary of the company's background  \n\n---\n\n**Drafting Instructions:**\n\n1. **Identify the Strongest Hook:**  \n   * Analyze the `company background` input carefully.  \n   * Look for the *single most relevant and compelling detail* to use as a personalized opening.  \n   * Prioritize items such as:  \n     - Recent company news or announcements (e.g., funding, launch, partnership)  \n     - A key offering or business focus that aligns with potential AI applications  \n     - A technical or operational aspect that could benefit from automation or AI training  \n   * Choose the hook that allows a natural transition to the value of AI training for *this specific prospect* in *their specific company*.\n\n2. **Structure & Content:**  \n   * **Opening (Personalized Hook):** Start by acknowledging the company or referencing the specific hook you identified (1 sentence).  \n   * **Introduction:** Briefly introduce YOUR_COMPANY_NAME and mention that you offer AI training and automation programs (1 sentence).  \n   * **Value Proposition:** Explain *why* AI training might be relevant *specifically* to their company, based on the hook or company background (1\u20132 sentences). Focus on benefits like efficiency, productivity, innovation, or growth.  \n   * **Call to Action (Soft):** Suggest a light, non-intrusive next step (e.g., \u201cWould exploring how AI could apply to your operations be valuable?\u201d or \u201cWould you be open to a short conversation next week?\u201d).\n\n3. **Tone:**  \n   * Professional, concise, respectful, and confident.  \n   * Avoid jargon or unnecessary complexity.  \n   * Maintain a helpful and value-oriented tone.\n\n4. **Constraints:**  \n   * Word count: strictly aim for 100\u2013150 words.  \n   * Output language: **English only.**  \n   * Use only the information provided in the input fields \u2014 do not invent details.  \n   * If the company background lacks strong details, focus on general AI training benefits relevant to typical business operations.  \n   * Return **only** the drafted email body as plain text \u2014 no subject line, greeting (\u201cHi [Name],\u201d), or signature (\u201cBest,\u201d).  \n\n---\n\n**Output Format:**  \nReturn ONLY the drafted email body as a single English text string.  \nDo not include a subject line, greeting, or closing signature.  \n\n---\n\n**Example Output:**  \n\nWe at YOUR_COMPANY_NAME provide AI talent development and automation training designed to help teams improve efficiency and adopt no-code workflow solutions. Based on your company\u2019s focus on digital transformation and process innovation, we believe structured AI training could provide tangible value. By empowering even non-technical employees to automate routine workflows, your organization could streamline operations and reduce manual effort. This approach not only enhances productivity but also frees your team to focus on higher-impact initiatives. Would you be open to a brief discussion about how our AI training could support your company\u2019s goals?\n"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "7f2b9a2f-8de7-42d6-b725-9d35e0a231ed",
      "name": "Company Research",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "onError": "continueRegularOutput",
      "position": [
        256,
        -208
      ],
      "parameters": {
        "text": "=company: {{ $json.company_name }}\n\ncompany website: {{ $json.website_url }}\n\n\n",
        "options": {
          "systemMessage": "=You are a Company Information Synthesizer.  \nYour primary goal is to extract key information about a target company by leveraging the `tavilysearch` tool, prioritizing content likely originating from the company's official website.  \nYour secondary goal is to check recent news or updates about the company from credible sources when available.\n\n---\n\n**CORE DIRECTIVES:**\n1. **TOOL USAGE:** You MUST ONLY use the `tavilysearch` tool for information gathering. No other tools or external data sources may be used.\n2. **PRIMARY SOURCE FOCUS (Website):** Prioritize finding and summarizing information directly presented on the company\u2019s official website \u2014 especially pages like \u201cAbout Us,\u201d \u201cNews,\u201d \u201cPress Releases,\u201d \u201cProducts,\u201d or \u201cServices.\u201d Use Tavily to locate these pages or relevant summaries.\n3. **SECONDARY SOURCE (Recent Updates ONLY):** When possible, use Tavily to find recent updates or press coverage about the company (e.g., partnerships, launches, or expansion news). Avoid unverified or opinion-based sources.\n4. **RECENCY:** For company news and updates, focus on content from the last 12\u201318 months.\n5. **CONCISENESS:** Keep summaries factual, short, and objective.\n6. **ACCURACY:** Do not invent or assume information that is not explicitly found in your search results.\n\n---\n\n**RESEARCH FOCUS (Guide for using Tavily):**\nUse Tavily to gather concise factual information for each category:\n\n* **Core Business:** Search for `\"[Company Name] About Us\"`, `\"[Company Name] Mission\"`, or similar queries to identify what the company does and its core purpose.\n* **Recent Website News:** Search for `\"[Company Name] news\"`, `\"[Company Name] press release\"`, or `\"[Company Name] blog\"` to identify recent official announcements.\n* **Products/Services:** Search for `\"[Company Name] products\"` or `\"[Company Name] services\"` to list main offerings or product categories.\n\n---\n\n**OUTPUT FORMAT:**\nYour final response MUST be a **single valid JSON object** containing only the following four keys.  \nEach value should be concise, factual, and where possible, include a short citation (link or reference to the company website).\n\n```json\n{\n  \"companyOverview\": \"[1\u20132 sentences summarizing what the company does and its mission, primarily from its official website. Example: 'ABC Corp is a technology company specializing in cloud infrastructure solutions.' (Source: Company Website via Tavily)]\",\n  \"recentWebsiteNews\": \"[\u2022 A bullet point describing a recent announcement, update, or press release. Include a source link if possible. (Source: Company Website News/Blog)\\n- Additional bullet if applicable.]\",\n  \"keyOfferings\": \"[\u2022 A bullet point listing a core product or service. (Source: Company Website via Tavily)\\n- Additional bullet if applicable.]\",\n  \"comprehensiveSummary\": \"[1\u20132 sentences synthesizing the overall company profile, combining the overview, news, and offerings into a cohesive summary.]\"\n}\n```\n\n---\n\n**HANDLING NO RESULTS:**\nIf `tavilysearch` finds no relevant information for a specific field, output the following text for that key:  \n`\"No relevant [Category Name] found via Tavily search.\"`  \n(Example: `\"No relevant recent website news found via Tavily search.\"`)\n\nAll responses must remain in valid JSON format and must not include any commentary, markdown, or explanations outside of the JSON structure.\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "020b5c79-829d-4de0-b334-e8d1dc246bb4",
      "name": "Tavily",
      "type": "@tavily/n8n-nodes-tavily.tavilyTool",
      "position": [
        336,
        -32
      ],
      "parameters": {
        "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Query', ``, 'string') }}",
        "options": {
          "time_range": "year",
          "max_results": 3,
          "search_depth": "basic"
        }
      },
      "credentials": {
        "tavilyApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d19473e0-f4d5-410d-b3e8-15225ee8d6c9",
      "name": "OpenRouter Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        224,
        -32
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "df1ad316-e343-4bbf-8299-f00a6c43b4f6",
      "name": "OpenRouter Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        608,
        -32
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "36901dc7-1d07-48d7-9eff-de4ea41aec5c",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "onError": "continueRegularOutput",
      "position": [
        0,
        -128
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "18d2c0e4-c6ee-4ddb-b46c-1492b6fd25f2",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -672,
        -128
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b2be533c-4393-4dba-a988-47559d43dd0b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        -352
      ],
      "parameters": {
        "color": 2,
        "width": 896,
        "height": 320,
        "content": "## \u2461 Pick up company information and generate an outreach message\nThe **AI Agent** uses the **Tavily** tool to search for company information based on the person\u2019s name and company name \u2192 then generates an email body using the retrieved company information"
      },
      "typeVersion": 1
    },
    {
      "id": "dc5299f5-7b23-415f-9e98-847e26c2bfc9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -272
      ],
      "parameters": {
        "width": 912,
        "height": 352,
        "content": "## \u2460 Business card data extraction\n**Click** to start \u2192 Retrieve business card data from **Google Sheets**.\n(The Limit node should be deleted during normal use. It\u2019s only used during testing to prevent extra business card data from flowing to the next step.)"
      },
      "typeVersion": 1
    },
    {
      "id": "467c675b-d753-4f09-90f6-d84adc348086",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        -272
      ],
      "parameters": {
        "color": 3,
        "width": 256,
        "height": 400,
        "content": "## \u2462 Register leads to instantlyAI\nRegister the email address, name, company name, and the generated email body to instantlyAI"
      },
      "typeVersion": 1
    },
    {
      "id": "ebd00e04-5502-414b-8ed7-e76c50800011",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -432
      ],
      "parameters": {
        "color": 4,
        "width": 848,
        "height": 512,
        "content": "## Generate Personalized B2B Outreach Emails using AI Research(Google Sheets\u2192 AI \u2192instantlyAI)\n\n**Description**\nThis workflow automates the creation of personalized B2B outreach email messages by combining AI-powered company research and LLM-based writing.\nIt collects company information, analyzes recent news and offerings, and drafts a professional English email customized for each prospect \u2014 helping you scale tailored outreach effortlessly.\n\n**Key Features**:\n\n\ud83d\udcc4 Retrieves target companies from Google Sheets (status = \u201cready\u201d)\n\n\ud83d\udd0d Uses Tavily Search (LangChain Agent) to gather company overviews, key offerings, and recent updates\n\n\u270d\ufe0f Generate Outreach Message (LLM Chain) creates a concise and fully personalized email body in English using the AI training context from YOUR_COMPANY_NAME\n\u2003This example uses AI training as the base context, but you can easily modify the prompt to match your own business or service\n\n\ud83d\udcca Automatically logs generated messages back into Google Sheets for review or dispatch\n\n\ud83d\ude80 Optional integration with Instantly.ai to send emails directly to your outreach campaigns"
      },
      "typeVersion": 1
    },
    {
      "id": "041d5602-fd2a-4e7c-be83-7a18abdfb226",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        64
      ],
      "parameters": {
        "color": 4,
        "width": 848,
        "height": 224,
        "content": "**Use Cases**\n\n**\ud83d\udcbc Sales & Marketing Teams**: Automatically generate personalized outreach messages for each prospect based on AI-researched company data.  \n\n**\ud83c\udfe2 Business Development**: Streamline lead generation by combining company analysis and automated email writing.  \n\n**\ud83d\udcca Growth & Operations**: Maintain a structured outreach record in Google Sheets for easy follow-up tracking.  \n\n**\ud83e\udd16 AI Automation Learners**: Explore how AI agents and LLMs can automate real-world sales workflows.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "60dcab6b-14c4-46f4-a2a0-5fc09bace828",
      "name": "Limit(Test)",
      "type": "n8n-nodes-base.limit",
      "position": [
        -224,
        -128
      ],
      "parameters": {
        "maxItems": 10
      },
      "typeVersion": 1
    },
    {
      "id": "9368676a-b904-4f30-8f53-196c794f7f9c",
      "name": "Get Business card data extraction",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -448,
        -128
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "ready",
              "lookupColumn": "status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit#gid=0",
          "cachedResultName": "BusinessCardList"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit?usp=drivesdk",
          "cachedResultName": "Demo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "70df54f5-644e-46c1-b25a-faf603362cac",
  "connections": {
    "Tavily": {
      "ai_tool": [
        [
          {
            "node": "Company Research",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Limit(Test)": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Company Research",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company Research": {
      "main": [
        [
          {
            "node": "Generate Outreach Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Company Research",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Outreach Message",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Add Lead to Instantly AI": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Outreach Message": {
      "main": [
        [
          {
            "node": "Add Company Info to Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Company Research",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Add Company Info to Google Sheet": {
      "main": [
        [
          {
            "node": "Add Lead to Instantly AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Business card data extraction": {
      "main": [
        [
          {
            "node": "Limit(Test)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get Business card data extraction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically generates personalized B2B outreach email messages by combining AI-based company research and text generation. It’s designed to help sales and marketing professionals automate the creation of tailored cold emails for prospects. Get rows from Google…

Source: https://n8n.io/workflows/10009/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

HTTP Request, Google Sheets, OpenRouter Chat +5
AI & RAG

This workflow automates the process of recording financial transactions from photos of receipts or shopping receipts. Users simply send an image of the receipt via Telegram. The image is processed usi

Telegram Trigger, HTTP Request, Chain Llm +7
AI & RAG

Automatically find, analyze, and engage with relevant LinkedIn posts using AI-powered sentiment analysis and comment generation

HTTP Request, Chain Llm, OpenRouter Chat +5
AI & RAG

A fully automated, end‑to‑end B2B lead generation and AI‑powered outreach system built using n8n, Apollo, Apify, OpenAI, Tavily, Google Sheets, and Instantly.ai.

Google Sheets, Form Trigger, OpenAI Chat +5
AI & RAG

An automated workflow for creating Veo3.1 videos and posting them to YouTube.

Google Sheets, Form Trigger, YouTube +5