AutomationFlowsMarketing & Ads › AI Lead Gen + Outreach to Google Sheets

AI Lead Gen + Outreach to Google Sheets

Original n8n title: Lead Generation + Outreach

Lead Generation + Outreach. Uses httpRequest, manualTrigger, googleSheets, scheduleTrigger. Event-driven trigger; 15 nodes.

Event trigger★★★★☆ complexityAI-powered15 nodesHTTP RequestGoogle SheetsChain LlmOpenAI Chat
Marketing & Ads Trigger: Event Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Chainllm → Google Sheets 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
{
  "name": "Lead Generation + Outreach",
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "=https://api.apify.com/v2/acts/code_crafter~apollo-io-scraper/run-sync-get-dataset-items?token=xxxx",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"url\": \"{{ $json.searchUrl }}\",\n  \"totalRecords\": 100,\n  \"getWorkEmails\": true,\n  \"getPersonalEmails\": true\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        460,
        -940
      ],
      "id": "2aba58e9-f91f-442e-8c49-7a511b2d30d2",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "20335efb-c8c3-430b-99ec-3d21f97d9fa5",
              "leftValue": "={{ $json.email }}",
              "rightValue": "null",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.2,
      "position": [
        780,
        -940
      ],
      "id": "2fe03195-0279-4b21-be78-f522782c860c",
      "name": "Filter"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -80,
        -940
      ],
      "id": "eee9c9a4-1236-478f-997a-7606d3e7da89",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={\n  \"firstName\": \"{{ $json.first_name }}\",\n  \"lastName\": \"{{ $json.last_name }}\",\n  \"title\": \"{{ $json.title }}\",\n  \"email\": \"{{ $json.email }}\",\n  \"linkedIn\": \"{{ $json.linkedin_url }}\",\n  \"organization\": \"{{ $json.organization.name }}\",\n  \"organizationLinkedIn\": \"{{ $json.organization.linkedin_url }}\",\n  \"organizationSite\": \"{{ $json.organization.website_url }}\",\n  \"industry\": \"{{ $json.organization.industry }}\",\n  \"companySize\": \"{{ $json.organization.estimated_num_employees }}\",\n  \"keywords\": \"{{ $json.organization.keywords.join(', ') }}\"\n}\n ",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        620,
        -940
      ],
      "id": "f8c74655-20ef-4f9b-8bc6-57ef656bcd68",
      "name": "Map Response"
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU",
          "mode": "list",
          "cachedResultName": "Leads Database",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 601601443,
          "mode": "list",
          "cachedResultName": "Leads Sheet",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit#gid=601601443"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "FirstName": "={{ $json.firstName }}",
            "LastName": "={{ $json.lastName }}",
            "Title": "={{ $json.title }}",
            "Email": "={{ $json.email }}",
            "LinkedIn": "={{ $json.linkedIn }}",
            "Organization": "={{ $json.organization }}",
            "OrganizationLinkedIn": "={{ $json.organizationSite }}",
            "OrganizationSite": "={{ $json.organizationSite }}",
            "Industry": "={{ $json.industry }}",
            "CompanySize": "={{ $json.companySize}}",
            "Keywords": "={{ $json.keywords}}"
          },
          "matchingColumns": [],
          "schema": [
            {
              "id": "FirstName",
              "displayName": "FirstName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "LastName",
              "displayName": "LastName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "displayName": "Title",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "displayName": "Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "CompanySize",
              "displayName": "CompanySize",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "LinkedIn",
              "displayName": "LinkedIn",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Organization",
              "displayName": "Organization",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "OrganizationLinkedIn",
              "displayName": "OrganizationLinkedIn",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "OrganizationSite",
              "displayName": "OrganizationSite",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "displayName": "Industry",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Email Prepared",
              "displayName": "Email Prepared",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Keywords",
              "displayName": "Keywords",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1180,
        -940
      ],
      "id": "438dadc3-cce1-441c-b210-3e0e050f0790",
      "name": "Google Sheets",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "ca9e3a4f-ddff-455e-adc8-d3ef37e526f6",
              "name": "searchUrl",
              "value": "[\"https://app.apollo.io/#/people?sortAscending=false&sortByField=recommendations_score&organizationNumEmployeesRanges[]=1%2C10&contactEmailStatusV2[]=verified&personSeniorities[]=owner&personSeniorities[]=founder&personSeniorities[]=manager&personSeniorities[]=director&organizationIndustryTagIds[]=5567ced173696450cb580000\"]",
              "type": "array"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        100,
        -940
      ],
      "id": "0a75d93e-6b47-49e6-b214-c5def252c514",
      "name": "Lead Configuration"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -100,
        -580
      ],
      "id": "8069a9a8-5fa1-4560-95f3-e0576db6a194",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=## Ice Breaker Here\n\nPlease allow me to introduce myself, I'm a former Senior Software Engineer turned Automation Expert, and in just under three months, I've built a YouTube channel with over 5,000 subscribers and a community of 3,000+ members focused on AI-powered automation. I recently launched my own AI agency to provide custom automation solutions as a service.\n\nI'm reaching out because I believe there\u2019s an opportunity to streamline {{$json.Organization}}\u2019s operations by automating time-consuming, repetitive tasks\u2014something that AI-driven automation excels at today.\n\nIn fact, businesses implementing AI-based automation save up to **30 % of employee time** on manual work and see a **25\u201340 % boost in efficiency** within six months.\n\nHere are a few processes we could explore automating together:\n\u2022 Repetitive admin tasks (customer follow-ups, data entry, invoicing)  \n\u2022 Lead-generation & outreach workflows  \n\u2022 Order management + fulfilment alerts  \n\u2022 AI-powered email autoresponders using your own knowledge base (human-in-the-loop optional)\n\nWould you be open to a quick call to explore which workflows we can automate in your business together?",
        "messages": {
          "messageValues": [
            {
              "message": "=### ROLE\nYou are a cold-email copywriter.  \nGoal: produce a SHORT email that (1) feels personal, (2) keeps the core pitch unchanged unless a clear, high-value tweak is obvious.\n\n### VARIABLES  (all arrive via n8n `$json`)\ntitle                = {{$json.Title}}\norganizationName     = {{$json.Organization}}\norganizationSite     = {{$json.OrganizationSite}}\nindustry             = {{$json.Industry}}\nkeywords             = {{$json.Keywords}}      \u2190 comma-separated list\nlinkedIn             = {{$json.LinkedIn}}\norganizationLinkedIn = {{$json.OrganizationLinkedIn}}\n\n### HOW TO PERSONALIZE\n1. **Ice-breaker** (exactly 1 short sentence, max 15 words)  \n   \u2022 Must sound **energetic, uplifting, warm, and friendly** (feel-good vibe; exclamation optional).  \n   \u2022 Use ONE specific detail: keyword, product line, LinkedIn snippet, or location.  \n   \u2022 No filler like \u201cHope you\u2019re well.\u201d  \n2. **Pitch section MUST remain verbatim** except:  \n   \u2022 You may insert \u2264 7 words that tie the pitch to a clear opportunity (e.g., \u201c\u2014especially for niche fragrance brands\u2014\u201d).  \n4. **Tone**: professional, confident, friendly.\n\n### RULES\n- NEVER include Subject lines.  \n- NEVER include greetings.  \n- NEVER include sign-offs (\u201cBest,\u201d etc.).  \n- Start directly from the ice-breaker sentence, then flow into the introduction.  \n- Keep total length \u2264 130 words.  \n- Output plain text only (no markdown).\n- Avoid using em-dashes (\u2014); use commas or periods instead to keep the text human-like.  "
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.6,
      "position": [
        280,
        -580
      ],
      "id": "08265ef3-a327-4994-a11c-5d087c38dd43",
      "name": "Basic LLM Chain"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1-mini",
          "mode": "list",
          "cachedResultName": "gpt-4.1-mini"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        300,
        -400
      ],
      "id": "fe115969-4873-40d7-8aa7-9175b892a4f3",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU",
          "mode": "list",
          "cachedResultName": "Leads Database",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 601601443,
          "mode": "list",
          "cachedResultName": "List",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit#gid=601601443"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "row_number": "={{ $('Get Pending Leads').item.json.row_number }}",
            "Email Prepared": "=Hey {{ $('Get Pending Leads').item.json.FirstName }}!\n\n{{ $json.text }}\n\nBest,\nMahmut"
          },
          "matchingColumns": [
            "row_number"
          ],
          "schema": [
            {
              "id": "FirstName",
              "displayName": "FirstName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "LastName",
              "displayName": "LastName",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Title",
              "displayName": "Title",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Email",
              "displayName": "Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "CompanySize",
              "displayName": "CompanySize",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "LinkedIn",
              "displayName": "LinkedIn",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Organization",
              "displayName": "Organization",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "OrganizationLinkedIn",
              "displayName": "OrganizationLinkedIn",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "OrganizationSite",
              "displayName": "OrganizationSite",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Industry",
              "displayName": "Industry",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Email Prepared",
              "displayName": "Email Prepared",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Keywords",
              "displayName": "Keywords",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        620,
        -580
      ],
      "id": "e3a149cb-625c-43bf-b740-6b857eb0aca8",
      "name": "Update Google Sheets",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU",
          "mode": "list",
          "cachedResultName": "Leads Database",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 601601443,
          "mode": "list",
          "cachedResultName": "List",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15oSfftU0AoEeFHZArJJ-6qGrYn5u41irA6zvp8sYkmU/edit#gid=601601443"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Email Prepared"
            }
          ]
        },
        "options": {
          "returnFirstMatch": false
        }
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        100,
        -580
      ],
      "id": "f34cb15d-d83d-45e7-a77c-71c869e89cc3",
      "name": "Get Pending Leads",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "# Lead Sourcing",
        "height": 80,
        "width": 1200,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -160,
        -1060
      ],
      "id": "59f623b9-601f-4943-94c4-7e646b6d316d",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "# Personalized Email Outreach",
        "height": 80,
        "width": 1200,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -160,
        -700
      ],
      "id": "b11a1771-d166-46fe-bbd7-7f9ce794afd7",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "fieldToSplitOut": "searchUrl",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        280,
        -940
      ],
      "id": "aa904cba-167a-4758-bbed-35ccb2b4b982",
      "name": "Split Out"
    },
    {
      "parameters": {
        "compare": "selectedFields",
        "fieldsToCompare": "email",
        "options": {}
      },
      "type": "n8n-nodes-base.removeDuplicates",
      "typeVersion": 2,
      "position": [
        980,
        -940
      ],
      "id": "02b0f898-85ec-4e8b-9eba-ad3810bb4368",
      "name": "Remove Duplicates"
    }
  ],
  "connections": {
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Map Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Lead Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Response": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Remove Duplicates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Configuration": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Pending Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Update Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Pending Leads": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Duplicates": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a95d6c32-d36f-45cf-a415-61cfdc92a303",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "FYrOYyvKvWeAEsmM",
  "tags": []
}

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

How this works

This workflow automates lead generation and personalised outreach, saving hours of manual research and emailing by identifying potential customers from online sources and crafting tailored messages. It's ideal for sales teams or solo entrepreneurs in B2B sectors who need to scale their prospecting without hiring extra staff. The key step involves using an AI-powered LLM chain, integrated with Google Sheets for storing leads and HTTP Request to pull data from target websites, ensuring outreach feels genuine and relevant.

Use this when you have a steady stream of leads from events or referrals and want to nurture them efficiently, especially if you're comfortable with basic API setups. Avoid it for high-volume cold emailing that requires strict compliance checks, as it focuses on targeted, event-driven campaigns rather than mass blasts. Common variations include swapping OpenAI for another LLM provider or adding email nodes like Gmail for direct sending instead of just generating messages.

About this workflow

Lead Generation + Outreach. Uses httpRequest, manualTrigger, googleSheets, scheduleTrigger. Event-driven trigger; 15 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More Marketing & Ads workflows → · Browse all categories →

Related workflows

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

Marketing & Ads

Ad Agency in a box. Uses httpRequest, splitOut, outputParserStructured, chainLlm. Webhook trigger; 54 nodes.

HTTP Request, Output Parser Structured, Chain Llm +5
Marketing & Ads

Master Social Scraper (Google Sheets). Uses chatTrigger, textClassifier, lmChatOpenAi, httpRequest. Chat trigger; 36 nodes.

Chat Trigger, Text Classifier, OpenAI Chat +4
Marketing & Ads

The Recap AI - Insurance Lawyer Lead Gen. Uses executeWorkflowTrigger, formTrigger, @mendable/n8n-nodes-firecrawl, googleSheets. Event-driven trigger; 33 nodes.

Execute Workflow Trigger, Form Trigger, @Mendable/N8N Nodes Firecrawl +4
Marketing & Ads

E-commerce product launch campaign. Uses httpRequest, chainLlm, lmChatDeepSeek, n8n-nodes-posta. Event-driven trigger; 30 nodes.

HTTP Request, Chain Llm, Lm Chat Deep Seek +1
Marketing & Ads

My workflow 11. Uses manualTrigger, splitOut, httpRequest, splitInBatches. Event-driven trigger; 14 nodes.

HTTP Request, OpenAI, Google Sheets +2