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 →
{
"updatedAt": "2025-12-23T06:47:00.033Z",
"createdAt": "2025-12-22T08:19:27.269Z",
"id": "NIszPenQsngomHmX",
"name": "leads",
"description": null,
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"path": "4e580c61-5a9e-477e-84a2-ac21e497f238",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
-608,
-2160
],
"id": "ebdd2820-0dd3-4ca0-9c38-fbc145cd323e",
"name": "Webhook"
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={\n \"canonical\": {\n \"id\": \"{{$json.body.id || $execution.id}}\",\n \"trace_id\": \"{{$execution.id}}\",\n \"event_id\": \"{{$now.toISO()}}\",\n \"tenant_id\": \"greenline365\",\n \"source\": \"website_form\",\n \"mode\": \"production\",\n \"name\": \"{{$json.body.name || 'Unknown'}}\",\n \"email\": \"{{$json.body.email}}\",\n \"phone\": \"{{$json.body.phone || ''}}\",\n \"company\": \"{{$json.body.company || ''}}\",\n \"consent\": {\n \"marketing\": true,\n \"timestamp\": \"{{$now.toISO()}}\"\n },\n \"stage\": \"new_lead\",\n \"created_at\": \"{{$now.toISO()}}\",\n \"updated_at\": \"{{$now.toISO()}}\"\n }\n}",
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-1312,
-912
],
"id": "1ed1dd99-770f-4bd2-a572-17c966669b74",
"name": "NTC"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-1648,
-912
],
"id": "79b57c9e-21ca-4afd-9c18-ab0451b9184f",
"name": "When clicking \u2018Execute workflow\u2019"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 3
},
"conditions": [
{
"id": "41bc8c97-5f0b-4364-ad55-1b565097812e",
"leftValue": "=={{ $('GL365-brain').all().length }}",
"rightValue": "0",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.3,
"position": [
-688,
-912
],
"id": "3d7a76e1-5c41-4f1a-b0d1-e3b46b36d3d6",
"name": "If"
},
{
"parameters": {
"useCustomSchema": true,
"operation": "getAll",
"tableId": "leads",
"filters": {
"conditions": [
{
"keyName": "email",
"condition": "eq",
"keyValue": "={{ $json.canonical.email }}"
},
{
"keyName": "phone",
"condition": "eq",
"keyValue": "={{ $json.canonical.phone }}"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
-1472,
-912
],
"id": "363bd4a4-f059-4ebb-86d0-3d9cc920a7b5",
"name": "GL365-brain",
"credentials": {
"supabaseApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sendTo": "jared.tucker13@gmaim.com",
"subject": "new lead",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.2,
"position": [
-112,
-1040
],
"id": "ab38cdf1-60c3-408e-9b25-a1c5d25676a8",
"name": "Send a message1",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"formTitle": "Lead Machine",
"formDescription": "Provide the Info Below",
"formFields": {
"values": [
{
"fieldLabel": "Business Type",
"placeholder": "e.g. Plumber",
"requiredField": true
},
{
"fieldLabel": "Location",
"placeholder": "e.g. Rome, Italy",
"requiredField": true
},
{
"fieldLabel": "Lead Number",
"fieldType": "number",
"requiredField": true
},
{
"fieldLabel": "Email Style",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{
"option": "Friendly"
},
{
"option": "Professional"
},
{
"option": "Simple"
}
]
}
}
]
},
"options": {
"appendAttribution": false,
"buttonLabel": "GO \ud83d\ude80"
}
},
"id": "b85457cf-451b-4a45-adb0-637a1a75da1a",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1120,
-2544
],
"typeVersion": 2.2
},
{
"parameters": {
"url": "=Apify_Actor_Endpoint_URL",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"includeWebResults\": false,\n \"language\": \"en\",\n \"locationQuery\": \"{{ $json.Location }}\",\n \"maxCrawledPlacesPerSearch\": {{ $json['Lead Number'] }},\n \"maxImages\": 0,\n \"maximumLeadsEnrichmentRecords\": 0,\n \"scrapeContacts\": false,\n \"scrapeDirectories\": false,\n \"scrapeImageAuthors\": false,\n \"scrapePlaceDetailPage\": false,\n \"scrapeReviewsPersonalData\": true,\n \"scrapeTableReservationProvider\": false,\n \"searchStringsArray\": [\n \"{{ $json['Business Type'] }}\"\n ],\n \"skipClosedPlaces\": false\n}",
"options": {}
},
"id": "4b930342-be3c-41a2-802a-843c1c504082",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
-864,
-2544
],
"typeVersion": 4.2
},
{
"parameters": {
"text": "=Website: {{ $json.website }}",
"attributes": {
"attributes": [
{
"name": "Email Address",
"description": "=find out the best only one email address from the website after scraping the website. The mail address have to be in ideal format.",
"required": true
}
]
},
"options": {}
},
"id": "a77f2306-e179-4fc1-b226-a0ae3fe483cb",
"name": "Information Extractor",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
-1248,
-2192
],
"typeVersion": 1.2
},
{
"parameters": {
"options": {}
},
"id": "492f7063-0b63-4d2c-ab92-9a2247237de9",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-1152,
-2048
],
"typeVersion": 1
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0906e21a-0958-433e-b400-8694915ef3c9",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.website }}",
"rightValue": ""
}
]
},
"options": {}
},
"id": "225d6321-a403-4cae-89d0-77dd104f473d",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
-608,
-2544
],
"typeVersion": 2.2
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"mode": "list",
"value": "1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit?usp=drivesdk",
"cachedResultName": "n8n Test"
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit#gid=0",
"cachedResultName": "Sheet1"
},
"columns": {
"value": {
"Address": "={{ $('Filter').item.json.address }}",
"Website": "={{ $('Filter').item.json.website }}",
"Category": "={{ $('Filter').item.json.categoryName }}",
"Company Name": "={{ $('Filter').item.json.title }}",
"Email Address": "={{ $json.output['Email Address'] }}",
"Phone Nummber": "={{ $('Filter').item.json.phoneUnformatted }}"
},
"schema": [
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Nummber",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Nummber",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Email Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Cold Mail Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Cold Mail Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SEND Time",
"type": "string",
"display": true,
"required": false,
"displayName": "SEND Time",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "96e23419-6fc4-4b3a-b577-8e45cc0424cb",
"name": "Append row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-544,
-2208
],
"typeVersion": 4.6
},
{
"parameters": {},
"id": "7d51c99f-246c-4467-8f48-5f6736639d32",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-736,
-2112
],
"typeVersion": 1
},
{
"parameters": {
"content": "# Getting the Email Address",
"height": 368,
"width": 1136,
"color": 4
},
"id": "7b99b519-c058-4c88-9ef5-b90dc931d0c3",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1376,
-2240
],
"typeVersion": 1
},
{
"parameters": {
"sendTo": "={{ $json['Email Address'] }}",
"subject": "={{ $('Information Extractor1').item.json.output['Mail Subject'] }}",
"emailType": "text",
"message": "={{ $('Information Extractor1').item.json.output['Mail Body'] }}",
"options": {
"appendAttribution": false
}
},
"id": "f95bf320-c46c-4d49-86e3-49db1832b9d9",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"maxTries": 2,
"position": [
-176,
-1776
],
"executeOnce": false,
"retryOnFail": false,
"typeVersion": 2.1,
"onError": "continueRegularOutput"
},
{
"parameters": {
"text": "=You are a perfect cold mail generator for a Digital Marketing Agency named Upward Engine.\n\nHere's the Information about the Recipient:\n\nCompany Name: {{ $('Loop Over Items').item.json['Company Name'] }}\nBusiness Type: {{ $('Loop Over Items').item.json.Category }}\n\nEmail Style / Email Tune : {{ $json['Email Style'] }}\n\nThe Email style is given just to understand how the mail will be.\n\nInstructions:\n\n1. Always start with giving a greting to the Company like Hi Company Name,\n2. Always use We not I.\n3. Mail have to be professional, Clean and to the point\n4. At last give a Signeture Like:\n [Your Name]\n [Your Company/Agency Name]",
"attributes": {
"attributes": [
{
"name": "Mail Subject",
"description": "Eye catchy mail Subject for the cold mail",
"required": true
},
{
"name": "Mail Body",
"description": "=body message of the mail, a perfect and clear cold mail.",
"required": true
}
]
},
"options": {}
},
"id": "12a72867-21d5-40dd-b3ee-bb9ebdd11d30",
"name": "Information Extractor1",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
-832,
-1776
],
"typeVersion": 1.2
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"id": "7aa16a64-94db-4dd1-b12d-3eed8dd76453",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-736,
-1648
],
"typeVersion": 1.2
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "list",
"value": "1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit?usp=drivesdk",
"cachedResultName": "n8n Test"
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit#gid=0",
"cachedResultName": "Sheet1"
},
"columns": {
"value": {
"SEND Time": "={{ $('Edit Fields1').item.json['Send Time'] }}",
"Email Address": "={{ $('Edit Fields1').item.json['Email Address'] }}",
"Cold Mail Status": "\u2705"
},
"schema": [
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Nummber",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Nummber",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Address",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Cold Mail Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Cold Mail Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SEND Time",
"type": "string",
"display": true,
"required": false,
"displayName": "SEND Time",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email Address"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "7eb1125a-135f-452b-b9e2-e6bdf35fa030",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
80,
-1776
],
"typeVersion": 4.6
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "8ab73a5e-6659-4615-9f03-a1b3dacaa42e",
"name": "Send Time",
"type": "string",
"value": "={{$now.toFormat(\"MM-dd-yyyy (h:mm a)\")}}"
},
{
"id": "a102af99-f990-4f54-aa19-96a4c8002a9b",
"name": "Email Address",
"type": "string",
"value": "={{ $('Wait').item.json['Email Address'] }}"
}
]
},
"options": {}
},
"id": "9a4e53d0-d979-4ab1-a7fd-3f88f7112017",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
-400,
-1776
],
"typeVersion": 3.4
},
{
"parameters": {
"options": {}
},
"id": "f6862936-623f-40cc-9fa4-6c30b909e081",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1584,
-1792
],
"notesInFlow": false,
"typeVersion": 3,
"onError": "continueRegularOutput"
},
{
"parameters": {
"amount": 1
},
"id": "73bea657-6596-4d7c-9746-02f5ed5a8b53",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
-1152,
-1776
],
"typeVersion": 1.1
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0601f2d2-2522-471e-9e11-29498a47e19a",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.output['Email Address'] }}",
"rightValue": "@"
}
]
},
"options": {}
},
"id": "d3d1fc1b-7d93-42e2-821d-1d0de10c789f",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
-832,
-2192
],
"typeVersion": 2.2
},
{
"parameters": {
"resource": "Datasets",
"operation": "Get items"
},
"id": "1fd0553a-d89a-4608-b2e7-aa8a1e326433",
"name": "Get dataset items",
"type": "@apify/n8n-nodes-preview-apify.apify",
"position": [
-400,
-3280
],
"typeVersion": 1
},
{
"parameters": {
"compare": "selectedFields",
"fieldsToCompare": "title",
"options": {}
},
"id": "af42f026-0275-4075-a8a5-b2107bef5123",
"name": "Remove Duplicates",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
-160,
-3280
],
"typeVersion": 2
},
{
"parameters": {
"resource": "Actors",
"operation": "Run actor"
},
"id": "a4baf8eb-5224-4f77-bb65-bbefd6277c27",
"name": "Run Google Maps Scraper",
"type": "@apify/n8n-nodes-preview-apify.apify",
"position": [
-640,
-3280
],
"typeVersion": 1
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"url": "={{ $('Loop Over Items1').item.json.url }}",
"city": "={{ $('Loop Over Items1').item.json.city }}",
"rank": "={{ $('Loop Over Items1').item.json.rank }}",
"phone": "={{ \"'\" + ($('Loop Over Items1').item.json.phonesUncertain || $('Loop Over Items1').item.json.phoneUnformatted || '') }}\n",
"title": "={{ $('Loop Over Items1').item.json.title }}",
"street": "={{ $('Loop Over Items1').item.json.street }}",
"address": "={{ $('Loop Over Items1').item.json.address }}",
"website": "={{ $('Loop Over Items1').item.json.website }}",
"imageUrl": "={{ $('Loop Over Items1').item.json.imageUrl }}",
"scrapedAt": "={{ $('Loop Over Items1').item.json.scrapedAt }}",
"categories": "={{ $('Loop Over Items1').item.json.categories }}",
"postalcode": "={{ $('Loop Over Items1').item.json.postalCode }}",
"totalScore": "={{ $('Loop Over Items1').item.json.totalScore }}",
"countryCode": "={{ $('Loop Over Items1').item.json.countryCode }}",
"categoryName": "={{ $('Loop Over Items1').item.json.categoryName }}",
"isAdvertisement": "={{ $('Loop Over Items1').item.json.isAdvertisement }}",
"companySummaryIn": "={{ $json.message.content.companySummary }}",
"phoneUnformatted": "={{ $('Loop Over Items1').item.json.phonesUncertain || $('Loop Over Items1').item.json.phoneUnformatted || 'No phone found' }}\n"
},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "categoryName",
"type": "string",
"display": true,
"required": false,
"displayName": "categoryName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "address",
"type": "string",
"display": true,
"required": false,
"displayName": "address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "street",
"type": "string",
"display": true,
"required": false,
"displayName": "street",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "city",
"type": "string",
"display": true,
"required": false,
"displayName": "city",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postalcode",
"type": "string",
"display": true,
"required": false,
"displayName": "postalcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "countryCode",
"type": "string",
"display": true,
"required": false,
"displayName": "countryCode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone",
"type": "string",
"display": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phoneUnformatted",
"type": "string",
"display": true,
"required": false,
"displayName": "phoneUnformatted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "totalScore",
"type": "string",
"display": true,
"required": false,
"displayName": "totalScore",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "categories",
"type": "string",
"display": true,
"required": false,
"displayName": "categories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "scrapedAt",
"type": "string",
"display": true,
"required": false,
"displayName": "scrapedAt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "rank",
"type": "string",
"display": true,
"required": false,
"displayName": "rank",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "isAdvertisement",
"type": "string",
"display": true,
"required": false,
"displayName": "isAdvertisement",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "imageUrl",
"type": "string",
"display": true,
"required": false,
"displayName": "imageUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companySummaryIn",
"type": "string",
"display": true,
"required": false,
"displayName": "companySummaryIn",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "7c7c1a9e-1afe-4916-81d3-035a3f5843a0",
"name": "Google maps database",
"type": "n8n-nodes-base.googleSheets",
"position": [
-912,
-2992
],
"typeVersion": 4.7
},
{
"parameters": {
"amount": 2
},
"id": "869097c8-7d42-404c-859f-c7cf3d43d1ab",
"name": "Pause for rate limit",
"type": "n8n-nodes-base.wait",
"position": [
208,
-2768
],
"typeVersion": 1.1
},
{
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"id": "f61d723d-8090-4dab-8e99-25257f2862b1",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-1104,
-3280
],
"typeVersion": 1.2
},
{
"parameters": {
"jsCode": "// Parse the Telegram message and extract three comma-separated values\nconst messageText = $input.first().json.message.text;\n\n// Split by commas and trim whitespace\nconst parts = messageText.split(';').map(part => part.trim());\n\n// Extract the three values\nconst sector = parts[0] || '';\nconst limit = parseInt(parts[1]) || 0;\nconst mapsUrl = parts[2] || '';\n\n// Return the parsed data as a JSON object\nreturn [\n {\n json: {\n sector: sector,\n limit: limit,\n mapsUrl: mapsUrl\n }\n }\n];"
},
"id": "55659826-8722-4e15-9b63-c6e9a9ec6efe",
"name": "Extract Input Data",
"type": "n8n-nodes-base.code",
"position": [
-880,
-3280
],
"typeVersion": 2
},
{
"parameters": {
"chatId": "={{ $('Telegram Trigger').first().json.message.chat.id }}",
"text": "DONE",
"additionalFields": {}
},
"id": "577d57e2-2570-4e26-8b83-11733a0b9095",
"name": "Notification message",
"type": "n8n-nodes-base.telegram",
"position": [
-1536,
-2768
],
"typeVersion": 1.2
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ccc11066-fad4-4931-acf6-6c45e5e7b117",
"name": "Site internet",
"type": "string",
"value": "={{ $('Loop Over Items1').first().json.website }}"
}
]
},
"options": {}
},
"id": "dcd90263-6255-4613-99a0-0363429e3b81",
"name": "Extract Only Website URLs",
"type": "n8n-nodes-base.set",
"position": [
-624,
-2992
],
"typeVersion": 3.4
},
{
"parameters": {
"url": "={{ $json['Site internet'] }}",
"options": {}
},
"id": "a09c6d3e-a0dd-4ec4-aebc-8d34ca232fb1",
"name": "Fetch Raw HTML Content from Business Website",
"type": "n8n-nodes-base.httpRequest",
"position": [
-368,
-2992
],
"typeVersion": 4.2
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"messages": {
"values": [
{
"content": "=You are analyzing the HTML content of a business website to extract the most relevant contact email address.\n\nYour task:\n\nExtract only one email address, ideally belonging to the business owner, manager, or main contact person.\n\nIf multiple emails appear, choose the most authoritative or professional one (e.g., not \u201cinfo@\u201d or \u201csupport@\u201d unless it\u2019s the only option).\n\nIf no valid email is found, return exactly:\nNull\n\nOutput rules:\n\nOutput only the email address (no explanation, no JSON, no punctuation, no quotes).\n\nThe result must be a clean, valid email format (e.g., contact@company.com).\n\nWebsite HTML content:\n{{ $json.data }}"
}
]
},
"options": {}
},
"id": "4647eaaf-5a30-4cbf-8fc6-517e0942ecec",
"name": "Extract Business Email from Website HTML (GPT-4)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-144,
-2992
],
"typeVersion": 1.8
},
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "="
},
"columns": {
"value": {
"Email": "={{ $json.message.content }}",
"title": "={{ $('Loop Over Items1').item.json.title }}"
},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "categoryName",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "categoryName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "address",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "street",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "street",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "city",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "city",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postalcode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "postalcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "countryCode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "countryCode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phoneUnformatted",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "phoneUnformatted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "totalScore",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "totalScore",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "categories",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "categories",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "scrapedAt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "scrapedAt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "rank",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "rank",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "isAdvertisement",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "isAdvertisement",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "imageUrl",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "imageUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companySummaryIn",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "companySummaryIn",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"title"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"id": "2002bc55-2b29-4d1b-bcd0-72613e49ddbe",
"name": "Email Update",
"type": "n8n-nodes-base.googleSheets",
"position": [
208,
-2992
],
"typeVersion": 4.7
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"messages": {
"values": [
{
"content": "=You are an AI assistant specialized in generating professional, concise, and natural company summaries from structured data scraped from Google Maps.\n\nYour goal is to transform the provided company information into a fluent, human-like paragraph suitable for business directories or lead databases.\n\nFollow these principles:\n\nMaintain a professional and informative tone.\n\nWrite in one coherent paragraph (no lists or bullet points).\n\nSmoothly omit any fields that are missing without mentioning it.\n\nThe final text must sound natural and ready for direct publication.\n\nOutput only the final summary paragraph \u2014 no explanations, notes, or JSON.",
"role": "system"
},
{
"content": "=Generate a clear and concise summary of the following company based on its Google Maps data:\n\nCompany Name: {{ $json.title }}\nCategory: {{ $json.categoryName }}\nAddress: {{ $json.address }}\nCity: {{ $json.city }}\nCountry: {{ $json.countryCode }}\nPhone: {{ $json.phones }}\nGoogle Maps URL: {{ $json.url }}\n\nWrite a natural paragraph like this example (without quotes):\n\nThe company name is [Name]. It is a [category] located at [address] in [city, country]. You can contact them at [phone]. For more details, visit their Google Maps page: [URL].\n\nEnsure the output flows naturally and excludes any missing information.\n\n"
},
{
"content": "Output the result in the JSON format companySummary"
}
]
},
"jsonOutput": true,
"options": {}
},
"id": "8f40dd12-ad6a-4a36-a418-b8a26b1bafd6",
"name": "AI Company Description Generator",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1296,
-2992
],
"typeVersion": 1.8
},
{
"parameters": {
"options": {}
},
"id": "978e83c0-9a25-4599-a341-7bbccd15affc",
"name": "Loop Over Items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1552,
-3008
],
"typeVersion": 3
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"destinationFieldName": "results",
"include": "specifiedFields",
"fieldsToInclude": "searchResult",
"options": {}
},
"id": "dc440b37-d71b-4ada-ad30-38a5d6a0de7c",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
1456,
-2896
],
"typeVersion": 1
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "39ff27fa-4a6a-4c30-9775-bdb9f4395eed",
"operator": {
"type": "string",
"operation": "regex"
},
"leftValue": "={{ $json.searchResult.url }}",
"rightValue": "^https:\\/\\/www\\.linkedin\\.com\\/in\\/[a-zA-Z0-9\\-_%]+\\/?$"
}
]
},
"options": {}
},
"id": "8a9323de-e8df-4d80-afe9-5fbc6f4e5e51",
"name": "Only People Links",
"type": "n8n-nodes-base.filter",
"position": [
1248,
-2896
],
"typeVersion": 2.2
},
{
"parameters": {
"content": "## Get Person Profile data from LinkedIn\n- Apify => Google search for \"{{ First Name }} {{ Last Name }} {{ Company }} site:linkedin.com\"\n- Does a RegEx to filter people pages (assumes the first result is correct - won't work for John Smith @ Walmart)\n- Apify => Fetch matched LinkedIn Person URL",
"height": 400,
"width": 840,
"color": 6
},
"id": "e1ba7624-3615-4729-8b63-4aba15ccddce",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
-3056
],
"typeVersion": 1
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"destinationFieldName": "results",
"include": "specifiedFields",
"fieldsToInclude": "searchResult",
"options": {}
},
"id": "f44a02b8-9bc6-4018-9dda-25d16ca84a29",
"name": "Aggregate1",
"type": "n8n-nodes-base.aggregate",
"position": [
1632,
-2320
],
"typeVersion": 1
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/apimaestro~linkedin-profile-detail/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "memory",
"value": "4096"
},
{
"name": "timeout",
"value": "180"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "username",
"value": "={{ $json.results.first().searchResult.url }}"
}
]
},
"options": {}
},
"id": "a74d3f41-4608-4249-b5df-8cc8716d4e5c",
"name": "Get LinkedIn Person",
"type": "n8n-nodes-base.httpRequest",
"position": [
1632,
-2816
],
"typeVersion": 4.2,
"alwaysOutputData": true,
"onError": "continueRegularOutput"
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "39ff27fa-4a6a-4c30-9775-bdb9f4395eed",
"operator": {
"type": "string",
"operation": "regex"
},
"leftValue": "={{ $json.searchResult.url }}",
"rightValue": "^https:\\/\\/www\\.linkedin\\.com\\/company\\/[a-zA-Z0-9\\-_%]+\\/?$"
}
]
},
"options": {}
},
"id": "6a24031d-9bce-4118-a91f-4e665dbb377f",
"name": "Only Company Links",
"type": "n8n-nodes-base.filter",
"position": [
1456,
-2320
],
"typeVersion": 2.2
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b762cbba-c2eb-4bf3-95b2-783d59ad862a",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.basic_info.current_company_url }}",
"rightValue": ""
}
]
},
"options": {}
},
"id": "9b262f46-991d-4840-8aeb-e189b54f616d",
"name": "Current Company Exists?",
"type": "n8n-nodes-base.if",
"position": [
1024,
-2464
],
"typeVersion": 2.2
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/apify~rag-web-browser/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "memory",
"value": "4096"
},
{
"name": "timeout",
"value": "180"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "query",
"value": "={{\n`${$json['Company']} site:linkedin.com`\n}}"
}
]
},
"options": {}
},
"id": "95b085ed-04d2-4c6a-a5d8-79ac031a6824",
"name": "Google Search for Company LinkedIn",
"type": "n8n-nodes-base.httpRequest",
"position": [
1248,
-2320
],
"typeVersion": 4.2,
"alwaysOutputData": true,
"onError": "continueRegularOutput"
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/apify~rag-web-browser/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "memory",
"value": "4096"
},
{
"name": "timeout",
"value": "180"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "query",
"value": "={{\n`${$json['First Name']} ${$json['Last Name']} ${$json['Company']} site:linkedin.com`\n}}"
},
{
"name": "maxResults",
"value": "={{Number(10)}}"
}
]
},
"options": {}
},
"id": "97bf2d61-3aab-4e99-bbad-56209e043369",
"name": "Google Search for Person LinkedIn",
"type": "n8n-nodes-base.httpRequest",
"position": [
1056,
-2896
],
"typeVersion": 4.2,
"alwaysOutputData": true,
"onError": "continueRegularOutput"
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/apimaestro~linkedin-company-detail/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "memory",
"value": "4096"
},
{
"name": "timeout",
"value": "180"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "identifier",
"value": "={{ [$json.company_url] }}"
}
]
},
"options": {}
},
"id": "53ac6b1e-90b3-402b-b2fb-486427695d8b",
"name": "Get LinkedIn Company",
"type": "n8n-nodes-base.httpRequest",
"position": [
2096,
-2256
],
"typeVersion": 4.2,
"alwaysOutputData": true,
"onError": "continueRegularOutput"
},
{
"parameters": {
"documentId": {
"__rl": true,
"mode": "list",
"value": "1-_4LR9HEyqSlg85zcyAXm3tkOW_ip9JzpsVfQu2hQuI",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-_4LR9HEyqSlg85zcyAXm3tkOW_ip9JzpsVfQu2hQuI/edit?usp=drivesdk",
"cachedResultName": "Outreach Bot"
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-_4LR9HEyqSlg85zcyAXm3tkOW_ip9JzpsVfQu2hQuI/edit#gid=0",
"cachedResultName": "Leads / Unprocessed"
},
"options": {}
},
"id": "569a4e1f-7264-40ad-8bd2-11eae96b11b6",
"name": "Get Leads",
"type": "n8n-nodes-base.googleSheets",
"position": [
592,
-2928
],
"typeVersion": 4.6
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={\n \"company_url\": \"{{ $json.basic_info.current_company_url }}\"\n}\n",
"options": {}
},
"id": "ffb5c426-436a-44df-8b17-bc47c6ac0781",
"name": "Set Company URL",
"type": "n8n-nodes-base.set",
"position": [
1824,
-2480
],
"typeVersion": 3.4
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "={\n \"company_url\": \"{{ $json.results.first().searchResult.url }}\"\n}\n",
"options": {}
},
"id": "bb011a1b-6a67-4f0b-a3c7-4f14dfb85a65",
"name": "Set Company URL1",
"type": "n8n-nodes-base.set",
"position": [
1824,
-2320
],
"typeVersion": 3.4
},
{
"parameters": {
"promptType": "define",
"text": "=INPUT:\n\nPerson:\n\n{{ $('Get LinkedIn Person').item.json.toJsonString() }}\n\nCompany:\n\n {{ $('Get LinkedIn Company').item.json.toJsonString() }}",
"hasOutputParser": true,
"messages": {
"messageValues": [
{
"message": "=## Context\n\nYour name is Dolly, you are an AI Agent. \n\nThis is important, you'll have to introduce and refer to yourself as you're \"Dolly, {{$json.company_name}}'s lifecycle marketing agent\". \n\nYour task is to send cold emails on behalf of {{$json.company_name}}.\n\nYour email address is {{$json.email_address}}.\n\nHere is some detailed information about {{ $json.company_name }} and the services they offer:\n\n{{ $json.company_info }}\n\n## Email Composing Guidelines:\n\nOwn and be true to your personality. \n\n1. Be Very Concise: Write short, snappy emails. Write as you're almost in a rush. \n\n2. Be funny: You're an AI stand-up comedian with humor coded into your algorithms\u2014a blend of wit, absurdity, and sarcasm inspired by cosmic comedy. Your jokes are universal and accessible to all, without insider references. Give us your best routine where every line hits, every pun lands, and the only thing dry is the martini in the front row.\n\n3. Personalise your subject line, it should invite the user to open the email\n\n4. Casual, Simple Language: Use casual language as if you're in a rush. Write at a below 4th-grade reading level to ensure simplicity and ease of understanding.\n\n5. Personalized Opening: Start with a personalized opening that ties directly into the rest of the email.\n\n6. Prioritize Relevance: Focus on information most relevant to the user, especially how the AI tool can simplify their job and make it more efficient in the future.\n\n7. Format all links in emails as Markdown: place the visible text in square brackets followed by the URL in parentheses, like this: [link](https://link.examplelink.com/bzajkas/booking-link)\n\n\n## Email personalization process:\n\nGo beyond basic personalization by incorporating specific insights about the recipient's recent projects, achievements, interests, or challenges. Avoid simply mentioning past roles or companies where they worked. Instead, demonstrate a genuine understanding of their work to make the email truly relevant and valuable to them.\n\n1. Craft the Short Opening Sentence:\n\nUse specific details from user research to create a personalized and relevant opening. This must be relevant to the jobs to be done. \n\nConnect the opening to the user's jobs to be done, role, achievements, or interests.\n\n2. Bridge to the Key Theme of the Email Touch:\n\nEnsure the opening sentence flows naturally into the key theme of the email touch.\n\n3. Share the Key Theme of the Email Touch:\n\nShare the key theme of the email touch in a way that directly addresses the user\u2019s needs or pain points.\n\nHighlight specific benefits.\n\n4. Include a Brief Self-Introduction:\n\nIntroduce yourself and your role.\n\nMention that you've done some research with limited information but are still learning.\n\n5. Show Off Your Research:\n\nMention key research details that support why you talk about the key theme of the email touch.\n\nProvide details that only someone who conducted in-depth research would know about the user or their company.\n\n6. Explain the Purpose:\n\nState that you're providing the key theme of the email touch to help the user achieve their goals faster.\n\nRelate the key theme to their work and how it can free up time for other interests or priorities.\n\n7. Encourage Engagement:\n\nPrompt the user to take action, by logging in to {{$json.company_name}}'s platform and build something extremely useful in 2 minutes. \n\nKeep the tone friendly and helpful.\n\n## Expected Input\n\nYou will be given extensive JSON data of a particular lead + the company that they work for.\n\n## Expected Output\n\nYou should return an email addressed to the prospective client, demonstrating personalization and direct relevance to what they are doing.\n\nYou should return your output as JSON data with fields for \"subject\" and \"body\", wrapped in an output field, so that we can use an output parser.\n\nDo not include anything else in your answer than the output JSON.\n\n## Examples\n\n### Input\n\nINPUT:\n\nPerson:\n\n{\"basic_info\":{\"fullname\":\"Adam Janes\",\"first_name\":\"Adam\",\"last_name\":\"Janes\",\"headline\":\"Fractional CTO | Building with AI workflows and automations\",\"public_identifier\":\"adamjanes\",\"profile_picture_url\":\"\",\"about\":\"I am a product-minded technologist with hacker DNA building things in AI automation. \\n\\nI have a broad and varied background - having worked in Product, Design, and Sales - combined with deep technical experience as a Senior Developer and Fractional CTO.\\n\\nI am also a best-selling Udemy instructor (with 25K+ students), and founder of WOOFCODE - a free coding camp for fullstack developers.\\n\\nI practice non-violent communication, motivational interviewing, and Tibetan Buddhist meditation.\\n\\nAlways looking to connect with potential co-conspirators with shared passions.\",\"location\":{\"country\":\"\",\"city\":\"Australia\",\"full\":\"Australia\"},\"creator_hashtags\":[],\"is_creator\":false,\"is_influencer\":false,\"is_premium\":true,\"created_timestamp\":1393120240313,\"show_follower_count\":true,\"background_picture_url\":\"https://media.licdn.com/dms/image/v2/C4E16AQFUpJWxCZhi-A/profile-displaybackgroundimage-shrink_350_1400/profile-displaybackgroundimage-shrink_350_1400/0/1517432943755?e=1756944000&v=beta&t=QpBGsEjoTvATlwih5Jxl9lO9-p1UAnK7BoZKhdzzwxw\",\"urn\":\"ACoAABNTxV4BdKmdnmW6F6m8PX0lEsqaJ7cS6m0\",\"follower_count\":2159,\"connection_count\":1880,\"current_company\":\"MISSION+\",\"current_company_urn\":\"14626762\",\"current_company_url\":\"https://www.linkedin.com/company/missionplus\"},\"experience\":[{\"title\":\"Fractional CTO\",\"company\":\"Mission\",\"description\":\"Mission Plus is a digital innovation studio that works with world renowned and emerging companies to execute their tech innovation initiatives, from idea to build and launch.\\n\\nMy role involves scoping projects on technical level, planning sprints, and managing a remote and distributed engineering team.\\n\\nProjects worked on include BCG FinTech Control Tower, Blue Fire AI, and Verity Nature.\",\"duration\":\"Dec 2020 - Present \u00b7 4 yrs 8 mos\",\"start_date\":{\"year\":2020,\"month\":\"Dec\"},\"is_current\":true,\"company_linkedin_url\":\"https://www.linkedin.com/company/14626762/\",\
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.
gmailOAuth2openRouterApisupabaseApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.
Source: https://github.com/jaredtucker13-byte/greenline365-web/blob/2c00d52c82dd18e5a5d16f8e77199e7f15298a55/n8n-workflows/leads.json — 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.
⏺ 🚀 How it works
Are you drowning in daily operational chaos, desperately trying to juggle sales, projects, content, and client communication? Imagine an AI brain that handles it all, freeing you to lead your business
CLINICAINTEGRAL_secretary. Uses postgres, mcpClientTool, googleDriveTool, toolWorkflow. Webhook trigger; 89 nodes.
This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La
Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.