Automatisierte lokale Lead-Suche und Kalt-E-Mail-Versand

Experte

Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden If, Set, Wait, Gmail, Filter und andere Nodes verwendet. Automatisches Auffinden lokaler Leads und Versenden von Kalt-E-Mails mit Apify, KI und Gmail

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • Google Sheets API-Anmeldedaten
  • OpenAI API Key
  • Google Gemini API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "meta": {
    "instanceId": "0a25db4fd0692af64b58f35e01611f2ef0b5bb9d6654c57ef3741021e7d8cc11",
    "templateId": "7423"
  },
  "nodes": [
    {
      "id": "49a75edf-736f-4054-aea8-8a24c159f27b",
      "name": "Bei Formularübermittlung",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -112,
        704
      ],
      "webhookId": "2ef0c938-f117-4f6c-840a-b2dc35a615b3",
      "parameters": {
        "options": {
          "buttonLabel": "GO 🚀",
          "appendAttribution": false
        },
        "formTitle": "Lead Machine",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Business Type",
              "placeholder": "e.g. Plumber",
              "requiredField": true
            },
            {
              "fieldLabel": "Location",
              "placeholder": "e.g. Rome, Italy",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Lead Number",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Email Style",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Friendly"
                  },
                  {
                    "option": "Professional"
                  },
                  {
                    "option": "Simple"
                  }
                ]
              }
            }
          ]
        },
        "formDescription": "Provide the Info Below"
      },
      "typeVersion": 2.2
    },
    {
      "id": "2294be1e-b7e7-437a-ba31-322bf4c7065f",
      "name": "HTTP-Anfrage",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        704
      ],
      "parameters": {
        "url": "=Apify_Actor_Endpoint_URL",
        "options": {},
        "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}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2
    },
    {
      "id": "571cd0ce-4578-4e7a-8a92-647ef4662d3b",
      "name": "Informationsextraktor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        656,
        704
      ],
      "parameters": {
        "text": "=Website: {{ $json.website }}",
        "options": {},
        "attributes": {
          "attributes": [
            {
              "name": "Email Address",
              "required": true,
              "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."
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0d5da717-af00-429f-91aa-cf09402341e0",
      "name": "Google Gemini Chat-Modell",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        752,
        864
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "MOufOXyoLNgKIzCu",
          "name": "Google Gemini(PaLM) Api account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f1cc441c-8138-4038-a5bf-b243f830d2ea",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        400,
        704
      ],
      "parameters": {
        "options": {},
        "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": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e3f168e5-4330-4ee7-ba4e-52df7d58f120",
      "name": "Zeile in Tabelle anhängen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1360,
        688
      ],
      "parameters": {
        "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": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit?usp=drivesdk",
          "cachedResultName": "n8n Test"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "cjPjcwa3RdiMAu79",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "0a3d98f3-2446-4491-9e86-f97759765b4a",
      "name": "Wenn",
      "type": "n8n-nodes-base.if",
      "position": [
        1072,
        704
      ],
      "parameters": {
        "options": {},
        "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": "@"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "87b79200-12c4-43a9-97c8-72727e73bf11",
      "name": "Nachricht senden",
      "type": "n8n-nodes-base.gmail",
      "onError": "continueRegularOutput",
      "maxTries": 2,
      "position": [
        1248,
        1024
      ],
      "webhookId": "9ce15ceb-1aeb-4dd7-b269-f981f431c05f",
      "parameters": {
        "sendTo": "={{ $json['Email Address'] }}",
        "message": "={{ $('Information Extractor1').item.json.output['Mail Body'] }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "={{ $('Information Extractor1').item.json.output['Mail Subject'] }}",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "vdI9VLsEmuPzPxxo",
          "name": "Gmail account"
        }
      },
      "executeOnce": false,
      "retryOnFail": false,
      "typeVersion": 2.1
    },
    {
      "id": "db871413-4d1c-4d9f-be82-f5b938baa7b1",
      "name": "Informationsextraktor1",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        608,
        1024
      ],
      "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]",
        "options": {},
        "attributes": {
          "attributes": [
            {
              "name": "Mail Subject",
              "required": true,
              "description": "Eye catchy mail Subject for the cold mail"
            },
            {
              "name": "Mail Body",
              "required": true,
              "description": "=body message of the mail, a perfect and clear cold mail."
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "325cc956-c3b8-4222-bdd6-0712d9061f99",
      "name": "OpenAI Chat-Modell",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        736,
        1232
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "Kzhpo6yW8AwY3uMm",
          "name": "OpenAI account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8b727879-86bf-411e-a0b0-7cf4e55be0e5",
      "name": "Zeile anhängen oder aktualisieren",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1504,
        1024
      ],
      "parameters": {
        "columns": {
          "value": {
            "SEND Time": "={{ $('Edit Fields1').item.json['Send Time'] }}",
            "Email Address": "={{ $('Edit Fields1').item.json['Email Address'] }}",
            "Cold Mail Status": "✅"
          },
          "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": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LmOvSzCOAlrgxQg5r77eVkyJWw3V0VDUAWgkoHWql1Y/edit?usp=drivesdk",
          "cachedResultName": "n8n Test"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "cjPjcwa3RdiMAu79",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "57178d65-593e-44c9-91f5-b2b917b0a3cc",
      "name": "Felder bearbeiten1",
      "type": "n8n-nodes-base.set",
      "position": [
        1024,
        1024
      ],
      "parameters": {
        "options": {},
        "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'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3e2a864f-9077-43a4-8b35-32a64201c03a",
      "name": "Über Elemente iterieren",
      "type": "n8n-nodes-base.splitInBatches",
      "onError": "continueRegularOutput",
      "position": [
        -144,
        1008
      ],
      "parameters": {
        "options": {}
      },
      "notesInFlow": false,
      "typeVersion": 3
    },
    {
      "id": "f13527f0-7873-4dd7-8c1a-c56d227fa171",
      "name": "Warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        288,
        1024
      ],
      "webhookId": "a8a457d5-f88d-451c-ac51-1af17c8435b0",
      "parameters": {
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "5a2e70a7-9385-4b65-9b27-20dbde43c1bb",
      "name": "Notizzettel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        480
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 192,
        "content": "## STEP 1 · Intake & Search\n**Form Trigger** collects: Business Type, Location, Lead Number, Email Style.\n**HTTP (Apify actor)** searches places using the form inputs (limit = Lead Number).\nOutput includes business meta (title, category, phone, website, address)."
      },
      "typeVersion": 1
    },
    {
      "id": "65eae184-36ec-416d-9b77-e88beec85c46",
      "name": "Notizzettel1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        464
      ],
      "parameters": {
        "color": 5,
        "width": 352,
        "height": 208,
        "content": "## STEP 2 · Website & Email Extraction\n**Filter** ensures a `website` exists.\n**Information Extractor**: find the single best contact email from the site.\nTip: Keep it to a real inbox (no images, no generic catch-alls if a better option exists)."
      },
      "typeVersion": 1
    },
    {
      "id": "e32bbcd3-9df0-4692-a9bf-9c3bb27bb99e",
      "name": "Notizzettel2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        448
      ],
      "parameters": {
        "color": 6,
        "width": 304,
        "height": 208,
        "content": "## STEP 3 · Validate & Persist\n**IF** checks email contains '@'.\n**Append row (Sheets)** writes Company, Category, Website, Phone, Address, Email.\nTip: Consider setting `matchingColumns` (e.g. Email) to avoid duplicates in Sheet1."
      },
      "typeVersion": 1
    },
    {
      "id": "eec4fde8-0638-433d-8d71-9ec795022bf8",
      "name": "Notizzettel3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 240,
        "content": "## STEP 4 · Outreach & Logging\n**Loop + Wait** pace the sends.\n**Information Extractor #2** drafts subject/body based on Company, Category & Email Style.\n**Gmail** sends the cold email (switch to HTML if your body has markup).\n**Set → Sheets (appendOrUpdate)** marks ✅ status and logs Send Time."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "0a3d98f3-2446-4491-9e86-f97759765b4a": {
      "main": [
        [
          {
            "node": "e3f168e5-4330-4ee7-ba4e-52df7d58f120",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "f13527f0-7873-4dd7-8c1a-c56d227fa171": {
      "main": [
        [
          {
            "node": "db871413-4d1c-4d9f-be82-f5b938baa7b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f1cc441c-8138-4038-a5bf-b243f830d2ea": {
      "main": [
        [
          {
            "node": "571cd0ce-4578-4e7a-8a92-647ef4662d3b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57178d65-593e-44c9-91f5-b2b917b0a3cc": {
      "main": [
        [
          {
            "node": "87b79200-12c4-43a9-97c8-72727e73bf11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2294be1e-b7e7-437a-ba31-322bf4c7065f": {
      "main": [
        [
          {
            "node": "f1cc441c-8138-4038-a5bf-b243f830d2ea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "87b79200-12c4-43a9-97c8-72727e73bf11": {
      "main": [
        [
          {
            "node": "8b727879-86bf-411e-a0b0-7cf4e55be0e5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3e2a864f-9077-43a4-8b35-32a64201c03a": {
      "main": [
        [],
        [
          {
            "node": "f13527f0-7873-4dd7-8c1a-c56d227fa171",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "325cc956-c3b8-4222-bdd6-0712d9061f99": {
      "ai_languageModel": [
        [
          {
            "node": "db871413-4d1c-4d9f-be82-f5b938baa7b1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "49a75edf-736f-4054-aea8-8a24c159f27b": {
      "main": [
        [
          {
            "node": "2294be1e-b7e7-437a-ba31-322bf4c7065f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3f168e5-4330-4ee7-ba4e-52df7d58f120": {
      "main": [
        [
          {
            "node": "3e2a864f-9077-43a4-8b35-32a64201c03a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "571cd0ce-4578-4e7a-8a92-647ef4662d3b": {
      "main": [
        [
          {
            "node": "0a3d98f3-2446-4491-9e86-f97759765b4a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "db871413-4d1c-4d9f-be82-f5b938baa7b1": {
      "main": [
        [
          {
            "node": "57178d65-593e-44c9-91f5-b2b917b0a3cc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0d5da717-af00-429f-91aa-cf09402341e0": {
      "ai_languageModel": [
        [
          {
            "node": "571cd0ce-4578-4e7a-8a92-647ef4662d3b",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8b727879-86bf-411e-a0b0-7cf4e55be0e5": {
      "main": [
        [
          {
            "node": "3e2a864f-9077-43a4-8b35-32a64201c03a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Content-Erstellung, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes18
Kategorie2
Node-Typen13
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Meak

Meak

@meak

I help people build $5k+/month online by starting their own AI agency. Without BS.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34