This workflow corresponds to n8n.io template #11647 — 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 →
{
"nodes": [
{
"id": "37513d78-1881-43fe-a4e8-f0e7b4def5c2",
"name": "Add to Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
2160,
112
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $json.output.email }}",
"Title": "={{ $json.output.title }}",
"Full Name": "={{ $json.output.fullName }}",
"Last Name": "={{ $json.output.lastName }}",
"First Name": "={{ $json.output.firstName }}",
"Company Name": "={{ $json.output.companyName }}",
"Company Website": "={{ $json.output.companyWebsite }}",
"Company LinkedIn": "={{ $json.output.companyLinkedIn }}",
"Personal Summary": "={{ $json.output.summary }}",
"Personal LinkedIn": "={{ $json.output.LinkedIn }}"
},
"schema": [
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal LinkedIn",
"type": "string",
"display": true,
"required": false,
"displayName": "Personal LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company LinkedIn",
"type": "string",
"display": true,
"required": false,
"displayName": "Company LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal Summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Personal Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Background",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Background",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recent Company News",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recent Company News",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Key Offerings",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Key Offerings",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Customer Sentiment",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Customer Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Outreach Message",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Outreach Message",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Full Name"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 424979456,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s/edit#gid=424979456",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s/edit?usp=drivesdk",
"cachedResultName": "Apify + Apollo + n8n"
}
},
"typeVersion": 4.5
},
{
"id": "6852a78f-b804-4d05-a0b5-3b50d2df22ac",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
640,
128
],
"parameters": {
"options": {},
"formTitle": "Apollo + Apify Lead Generation",
"formFields": {
"values": [
{
"fieldLabel": "Job Title",
"placeholder": "Founder, Engineer, Owner"
},
{
"fieldType": "dropdown",
"fieldLabel": "Company Size",
"fieldOptions": {
"values": [
{
"option": "1-10"
},
{
"option": "11-50"
},
{
"option": "51-200"
},
{
"option": "201-1000"
},
{
"option": "10001-5000"
},
{
"option": "5001-10000"
},
{
"option": "10001-100000"
}
]
}
},
{
"fieldLabel": "Keywords",
"placeholder": "Keywords relevant to the contact or company"
},
{
"fieldLabel": "Location",
"placeholder": "United States, California, London"
},
{
"fieldLabel": "Instantly Campaign ID",
"placeholder": "12345"
}
]
},
"formDescription": "Describe the types of leads you are trying to find."
},
"typeVersion": 2.2
},
{
"id": "159d685f-de11-4d2b-9661-055b3622b075",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
800,
320
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "60096765-b4ba-46ff-92d3-ebc12031e408",
"name": "Apollo URL Generator",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
848,
128
],
"parameters": {
"text": "=Job Title: {{ $json['Job Title'] }}\n\nCompany Size: {{ $json['Company Size'] }}\n\nKeywords: {{ $json.Keywords }}\n\nLocation: {{ $json.Location }}\n\n\n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are an expert Apollo.io search URL generator. Your task is to convert form data into a precise Apollo search URL.\n\n**CRITICAL INSTRUCTIONS:**\n\n1. **Handle Multiple Values**: Fields like 'Job Title', 'Keywords', and 'Location' can contain multiple items separated by a comma. When you see a comma-separated list, you **MUST** create a separate URL parameter for **EACH** item in the list.\n * _Example for Titles:_ `personTitles[]=Founder&personTitles[]=CEO`\n * _Example for Locations:_ `personLocations[]=United%20States&personLocations[]=Austin`\n\n2. **Supported Fields & URL Parameters**:\n * **Location**: Maps to `personLocations[]`. Create one for each location in the list.\n * **Job Title**: Maps to `personTitles[]`. Create one for each title in the list.\n * **Company Size**: Maps to `organizationNumEmployeesRanges[]`. This is a single value and should use a hyphen (e.g., `1-10`).\n * **Keywords**: Maps to `qOrganizationKeywordTags[]`. Create one for each keyword in the list.\n\n3. **URL Encoding**: Ensure all values are properly URL-encoded (e.g., spaces become `%20`, and commas within a single location value like \"Austin, Texas\" become `%2C`).\n\n---\n\n**EXAMPLE:**\n\n**Input Data:**\nJob Title: Founder, CEO, President\nCompany Size: 1-10\nKeywords: Fintech, SaaS\nLocation: United States, Austin, Texas, Boston\n\n**Your Output (must be this exact format):**\nhttps://app.apollo.io/#/people?personTitles[]=Founder&personTitles[]=CEO&personTitles[]=President&organizationNumEmployeesRanges[]=1-10&qOrganizationKeywordTags[]=Fintech&qOrganizationKeywordTags[]=SaaS&personLocations[]=United%20States&personLocations[]=Austin%2C%20Texas&personLocations[]=Boston"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "9272da91-a47c-4aff-9366-ea9d2c2cd984",
"name": "Run Apify",
"type": "n8n-nodes-base.httpRequest",
"position": [
1168,
128
],
"parameters": {
"url": "https://api.apify.com/v2/acts/jljBwyyQakqrL1wae/run-sync-get-dataset-items",
"method": "POST",
"options": {},
"jsonBody": "={\n \"getPersonalEmails\": true,\n \"getWorkEmails\": true,\n \"totalRecords\": 500,\n \"url\": \"{{ $json.text }}\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer YOUR_TOKEN_HERE"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f5981d97-b799-4a9b-983a-d6406c3a402a",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1280,
320
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "6528895a-4004-4753-8bfd-717a2f9d3e5d",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1552,
304
],
"parameters": {
"jsonSchemaExample": "{\n \"fullName\": \"Stefan Chira\",\n \"firstName\": \"Stefan\",\n \"lastName\": \"Chira\",\n \"email\": \"stefan@quantumturf.com\",\n \"title\": \"Founder\",\n \"LinkedIn\": \"http://www.linkedin.com/in/stefanchira\",\n \"companyName\": \"Quantum Turf\",\n \"companyWebsite\": \"http://www.quantumturf.com\",\n \"companyLinkedIn\": \"http://www.linkedin.com/company/quantumturf\",\n \"summary\": \"Stefan Chira is the Founder of Quantum Turf...\"\n}"
},
"typeVersion": 1.2
},
{
"id": "e3971bb3-ab0d-40c9-a0d4-a19ea697f267",
"name": "Parse Lead Data",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueRegularOutput",
"position": [
1344,
128
],
"parameters": {
"text": "=Full Name: {{ $json.name }}\n\nFirst Name: {{ $json.first_name }}\n\nLast Name: {{ $json.last_name }}\n\nTitle: {{ $json.title }}\n\nEmail: {{ $json.email }}\n\nLinkedIn: {{ $json.linkedin_url }}\n\nOrg Name: {{ $json.organization_name }}\n\nOrg Website: {{ $json.organization_website_url }}\n\nOrg LinkedIn: {{ $json.organization_linkedin_url }}\n\n\n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are a sophisticated AI data-processing engine. Your task is to receive a raw JSON object for a single business prospect, perform two critical actions, and then provide your response in a specific JSON format.\n\n**Your Instructions:**\n\n1. **EXTRACT KEY DATA:** You must parse the raw JSON input to find and extract the following specific data points. If a field is not present, use a value of `null`.\n * **Full Name:** Look for `name`.\n * **First Name** Look for 'first_name'\n * **Last Name** Look for 'last_name'\n * **Email:** Find the first available email address. Look in fields like `emails` or `personal_emails`.\n * **LinkedIn** Look for the 'linkedin_url'\n * **Title:** Look for the `title` field.\n * **Company Name:** Look for the `organization_name` field.\n * **Company Website:** Look for the `organization_website` field.\n * **Company LinkedIn:** Combine `organization_linkedin.\n\n2. **SYNTHESIZE A SUMMARY:** After extracting the data, write a concise, 2-3 sentence professional summary suitable for a sales team.\n\n3. **FORMAT THE OUTPUT:** You MUST structure your entire response as a single, clean JSON object. The object should contain exactly the keys listed below. Do not include any other text, explanations, or greetings in your response\u2014ONLY the final JSON object.\n\n**Required Output Format:**\n{\n \"fullName\": \"...\",\n \"firstName\": \"...\",\n \"lastName\": \"...\",\n \"email\": \"...\",\n \"title\": \"...\",\n \"LinkedIn\"\n \"companyName\": \"...\",\n \"companyWebsite\": \"...\",\n \"companyLinkedIn\": \"...\",\n \"summary\": \"...\"\n}"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "e8f9e291-d247-4fe0-9b2c-8d07b73b9ea1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 5,
"width": 560,
"height": 1020,
"content": "## LinkedIn Scraper + Cold Outreach\n\n## How it Works\n\n### - Describe the leads you want via the form\n### - Apollo search URL is generated\n### - URL sent to Apify, Apollo scrape executed\n### - Raw lead data is parsed via OpenAI\n### - Lead data uploaded to Google Sheets\n### - Company research done via Tavily\n### - Lead info + company info combined for custom outreach messaging\n### - Lead + messaging added to Instantly.ai campaign\n\n## APIs Needed\n\n### - Apify.com API key\n### - Openai.com API key\n### - Instantly.ai API key\n### - Tavily.com API key\n\n## Apify Actor Used\n\n### - https://console.apify.com/actors/jljBwyyQakqrL1wae/input\n\n\n## Costs\n\n### - Instantly = $38 / month\n### - Tavily = free first 100 leads, then $0.08 / lead*\n### - Apify = $39 / month\n### - Apollo = $1.20 / 1000 leads\n### - That $1.20 is taken from your $39 credit\n### - < $0.10 / 100 leads for GPT API costs"
},
"typeVersion": 1
},
{
"id": "238a2956-e4b5-4ef4-ac47-1ca616edc5d1",
"name": "OpenAI Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
928,
784
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "de09ab59-5339-4f51-9966-758622bf2fb3",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
1680,
128
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "66ed70ea-b2e8-4c7f-ac2c-34ef13066b55",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7ef086fb-4629-4401-b643-49bf48233214",
"name": "Limit1",
"type": "n8n-nodes-base.limit",
"position": [
2160,
352
],
"parameters": {
"maxItems": 10
},
"typeVersion": 1
},
{
"id": "09005698-e54c-421e-bdbf-30264ece4863",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"onError": "continueRegularOutput",
"position": [
672,
544
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "e0e9fdb8-00b1-4989-8f3d-1e0d9d28e176",
"name": "Add Company Info to Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"onError": "continueRegularOutput",
"position": [
2160,
560
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Loop Over Items').item.json.Email }}",
"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 }}",
"Customer Sentiment": "={{ $('Company Research').item.json.output.thirdPartySentiment }}",
"Recent Company News": "={{ $('Company Research').item.json.output.recentWebsiteNews }}"
},
"schema": [
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal LinkedIn",
"type": "string",
"display": true,
"required": false,
"displayName": "Personal LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company LinkedIn",
"type": "string",
"display": true,
"required": false,
"displayName": "Company LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal Summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Personal Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Background",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Background",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recent Company News",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recent Company News",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Key Offerings",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Key Offerings",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Customer Sentiment",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Customer Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Outreach Message",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Outreach Message",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 424979456,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s/edit#gid=424979456",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1jLUMjz7xHv4x0BHf4rbMumlWu7Yb7Gdt2J8cuFuy26s/edit?usp=drivesdk",
"cachedResultName": "Apify + Apollo + n8n"
}
},
"typeVersion": 4.5
},
{
"id": "615b6e2d-ec68-43ca-a49f-216173f42b68",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1248,
784
],
"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 \"thirdPartySentiment\": \"String: Bullet points of third-party sentiment or 'Not found'. (Source: ...)\",\n \"comprehensiveSummary\": \"String: 1-2 sentence synthesis of companyOverview, recentWebsiteNews, keyOfferings, and thirdPartySentiment\"\n}"
},
"typeVersion": 1.2
},
{
"id": "47070c02-404a-4a6f-a727-babbdb7e725b",
"name": "OpenAI Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1424,
784
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "fff2cfce-3235-42f5-a218-1e224d91fcd3",
"name": "Generate Outreach Message",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueRegularOutput",
"position": [
1440,
560
],
"parameters": {
"text": "=name: {{ $('Loop Over Items').item.json[\"Full Name\"] }}\n\npersonal background: {{ $('Loop Over Items').item.json[\"Personal Summary\"] }}\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. Your objective is to compose a concise, professional, and highly personalized email body (target 100-150 words) to introduce ChaseAI's AI consulting services to a business prospect.\n\n**Your Company:** ChaseAI\n**Your Offering:** AI consulting focused on helping businesses leverage AI for benefits like operational efficiency, enhanced customer engagement, data-driven decision making, and strategic growth.\n\n**Input Data Provided:**\nYou will receive the following information about the prospect and their company:\n* `name`: The prospect's name\n* `personal background`: A summary of the prospect's background\n* `company name`: The name of the prospect's company.\n* `company background`: A summary of the company's background.\n\n**Drafting Instructions:**\n\n1. **Identify the Strongest Hook:**\n * Carefully analyze BOTH the `personal background` and the `company background` inputs.\n * Look for the *single most compelling and relevant piece of information* to use as a personalized opening. Prioritize items like:\n * Specific achievements, projects, or unique connectors mentioned.\n * Recent, significant company news (funding, major launch, partnership) from `company background`.\n * A key offering or aspect of the `companyOverview` that strongly aligns with potential AI applications.\n * A specific technical specialization or outreach angle\n * Choose the hook that allows the most natural and logical transition to the value of AI consulting for *this specific prospect* in *their specific company*.\n\n2. **Structure & Content:**\n * **Opening (Personalized Hook):** Start by briefly acknowledging the prospect (using their name extracted from the `name` field) and referencing the specific hook you selected (1 sentence). Make it clear you've done some research.\n * **Introduction:** Briefly introduce ChaseAI and that you offer AI consulting (1 sentence).\n * **Value Proposition (Connecting the Dots):** Explain *why* AI consulting might be relevant *specifically* to them, given the hook point, their role ({{ $('Limit1').item.json.Title }}), and their `company`. Focus on potential benefits like efficiency, growth, tackling challenges related to their recent news, etc. (1-2 sentences).\n * **Call to Action (Soft):** Suggest a brief, low-pressure next step (e.g., \"Would exploring how AI could apply to [Specific Area Mentioned] be valuable?\", \"Open to a quick chat sometime next week?\").\n\n3. **Tone:** Professional, concise, respectful, knowledgeable (demonstrated by the hook), and focused on potential value. Avoid jargon where possible.\n\n4. **Constraints:**\n * Strict word count: Aim for 100-150 words for the email body.\n * Use only the information provided in the input fields. Do not invent details.\n * If both `personal background` and `company background` lack strong, specific hooks, create the most relevant message possible focusing on their role and the `company Overview`, connecting AI's general benefits.\n * Return ONLY the drafted email body as a single string. Do not include a subject line, greeting (\"Hi [Name],\"), sign-off (\"Best,\"), or begin the draft by mention their first name (the opener will have already been written with their first name)\n\n**Output Format:**\nReturn ONLY the drafted email body as a single string. Do not include a subject line, greeting (\"Hi [Name],\"), sign-off (\"Best,\"), or begin the draft by mention their first name (the opener will have already been written with their first name)\n\n**Example Output**\n\nI noticed Synchro Social\u2019s focus on videography and strategic content creation, which presents great opportunities to harness AI for enhancing content personalization and streamlining production workflows. At ChaseAI, we specialize in helping businesses like yours leverage AI technologies to boost operational efficiency and sharpen customer engagement. Given your leadership role and Synchro Social\u2019s creative service model, integrating AI can support data-driven insights to tailor content strategies and accelerate delivery without compromising quality. Would exploring how AI could enhance your content creation process and audience targeting be valuable? I\u2019d be glad to discuss how tailored AI solutions might fit your goals in a brief chat."
}
]
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "0b858d25-2bc0-4a0c-b7fb-4d722a7b8084",
"name": "Company Research",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueRegularOutput",
"position": [
1072,
560
],
"parameters": {
"text": "=company: {{ $json[\"Company Name\"] }}\n\ncompany website: {{ $json[\"Company Website\"] }}\n\ncompany linkedin: {{ $json[\"Company LinkedIn\"] }}\n\n",
"options": {
"systemMessage": "=You are a Company Information Synthesizer. Your 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. Your secondary goals are checking third-party sources for customer sentiment and recent news about the comapny. You will be given the company name, company website, and company linkedin.\n\n**CORE DIRECTIVES:**\n1. **TOOL USAGE:** You MUST ONLY use the `tavilysearch` tool for information gathering.\n2. **PRIMARY SOURCE FOCUS (Website):** Prioritize finding and summarizing information directly presented on the company's official website (e.g., About Us, News/Blog/Press sections, Product/Service pages, Contact Us page). Use Tavily to locate these pages or relevant summaries.\n3. **SECONDARY SOURCE (Sentiment ONLY):** Use Tavily to search third-party review sites (G2, Capterra, etc.) or forums (Reddit) ONLY for customer sentiment.\n4. **RECENCY:** For news and highlights, focus on information from the last 12-18 months.\n5. **CONCISENESS:** Keep summaries brief and factual.\n6. **ACCURACY:** Do not invent information.\n\n**RESEARCH FOCUS (Guide for using Tavily):**\n* **Core Business:** Search for \"[Company Name] About Us\", \"[Company Name] Mission\", or what the company does, aiming for results likely linking to or summarizing their main website content.\n* **Recent Website News:** Search for \"[Company Name] news\", \"[Company Name] press release\", \"[Company Name] blog\", looking for recent announcements likely hosted on their domain.\n* **Products/Services:** Search for \"[Company Name] products\", \"[Company Name] services\", aiming for results describing their core offerings, likely from their website.\n* **Third-Party Sentiment:** Search `\"[Company Name] review site:g2.com\"`, `\"[Company Name] reddit discussion\"`, etc.\n\n**OUTPUT FORMAT:**\nYour final response MUST be a single JSON object containing the following keys. Provide concise, bulleted string values where appropriate:\n\n{\n \"companyOverview\": \"[1-2 sentence description of what the company does, its mission, or value proposition, based on information likely found on their website.] (Source: Primarily Company Website via Tavily Search Results)\",\n \"recentWebsiteNews\": \"[Bullet point about a specific recent announcement, update, or blog post likely found on the company's website.] (Source: Link to specific page/article if found by Tavily, otherwise 'Company Website News/Blog')\\n- [Optional second bullet point.] (Source: Link or 'Company Website News/Blog')\",\n \"keyOfferings\": \"[Bullet point listing a key product or service.] (Source: Company Website via Tavily Search Results)\\n- [Optional second bullet point listing another offering.] (Source: Company Website via Tavily Search Results)\",\n \"thirdPartySentiment\": \"[Bullet point summarizing specific praise/criticism from a third-party review site/forum. Quote if concise.] (Source: [Specific URL/Site Name])\\n- [Optional second bullet point.] (Source: [Specific URL/Site Name])\",\n \"comprehensiveSummary\": \"[1-2 sentence write up that synthesizes and ties the companyOverview, recentWebsiteNews, keyOfferings, and thirdPartySentiment all together]\"\n}\n\n**HANDLING NO RESULTS:**\nIf `tavilysearch` finds no relevant information, the value MUST be a string stating: \"No relevant [Category Name, e.g., recent website news] found via Tavily search.\" Source citation for website content (overview, news, offerings) can be general ('Company Website via Tavily') unless a specific article/page URL is readily available in the search results. Source citation for `thirdPartySentiment` MUST be specific."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "2c268599-a3fd-4d66-ba01-037a40562b55",
"name": "Add Lead to Instantly AI",
"type": "n8n-nodes-base.httpRequest",
"position": [
2160,
768
],
"parameters": {
"url": "https://api.instantly.ai/api/v2/leads",
"method": "POST",
"options": {},
"jsonBody": "={\n \"campaign\": \"{{ $('On form submission').item.json[\"Instantly Campaign ID\"] }}\",\n \"email\": \"{{ $json.Email }}\",\n \"last_name\": \"{{ $('Loop Over Items').item.json['Last Name'] }}\",\n \"first_name\": \"{{ $('Loop Over Items').item.json[\"First 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}",
"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": "a90ab537-26a2-4ec9-b180-c3aad00f986a",
"name": "Tavily",
"type": "@tavily/n8n-nodes-tavily.tavilyTool",
"position": [
1088,
784
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "13e71ca5-2f28-446b-ba0b-369fde3fa5f5",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
608,
32
],
"parameters": {
"color": 6,
"width": 1720,
"height": 420,
"content": "## LinkedIn Scraper via Apollo"
},
"typeVersion": 1
},
{
"id": "0cacbe1a-6486-4046-8902-fb5fd0f074c8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
608,
448
],
"parameters": {
"color": 4,
"width": 1720,
"height": 540,
"content": "## Company Research + Outreach"
},
"typeVersion": 1
},
{
"id": "b83998d7-011d-453b-bfd4-b583f35d628b",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
1904,
112
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3540bb36-6c11-42b7-b60f-041949602341",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.output.email }}",
"rightValue": "\"null\""
},
{
"id": "5f93ee26-c354-4c13-99a0-837923a0737e",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.output.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
}
],
"connections": {
"If1": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"Filter": {
"main": [
[
{
"node": "Add to Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"Limit1": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Tavily": {
"ai_tool": [
[
{
"node": "Company Research",
"type": "ai_tool",
"index": 0
}
]
]
},
"Run Apify": {
"main": [
[
{
"node": "Parse Lead Data",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Company Research",
"type": "main",
"index": 0
}
]
]
},
"Parse Lead Data": {
"main": [
[
{
"node": "If1",
"type": "main",
"index": 0
}
]
]
},
"Company Research": {
"main": [
[
{
"node": "Generate Outreach Message",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Apollo URL Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Apollo URL Generator",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Parse Lead Data",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "Company Research",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model3": {
"ai_languageModel": [
[
{
"node": "Generate Outreach Message",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Add to Google Sheet": {
"main": [
[
{
"node": "Limit1",
"type": "main",
"index": 0
}
]
]
},
"Apollo URL Generator": {
"main": [
[
{
"node": "Run Apify",
"type": "main",
"index": 0
}
]
]
},
"Add Lead to Instantly AI": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Parse Lead Data",
"type": "ai_outputParser",
"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
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
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.
Source: https://n8n.io/workflows/11647/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
PixelSensei(ZH). Uses agent, outputParserStructured, formTrigger, lmChatOpenAi. Event-driven trigger; 55 nodes.
🧠 Automate end-to-end SEO blog creation and WordPress publishing using a GPT-5 multi-agent workflow with real-time research, metadata generation, and optional featured images.
This n8n template demonstrates how to audit your brand’s visibility across multiple AI systems and automatically log the results to Google Sheets. It sends the same prompt to OpenAI, Perplexity, and (
Transform a single quote into a fully-rendered cinematic short video — with voice-over, visuals, and music — then publish it directly to TikTok, Instagram Reels, and YouTube Shorts. This isn’t just au