Cold-Reach-Automatisierung: Lokale Leads mit Dumpling AI scrapen und über Vapi anrufen

Fortgeschritten

Dies ist ein Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden Set, Filter, SplitOut, HttpRequest, GoogleSheets und andere Nodes verwendet. Automatisierung der Cold-Reach: Lokale Leads mit Dumpling AI scrapen und über Vapi anrufen

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • Google Sheets API-Anmeldedaten

Kategorie

-
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "guzv1hyyxqP3NW8n",
  "meta": {
    "instanceId": "a1ae5c8dc6c65e674f9c3947d083abcc749ef2546dff9f4ff01de4d6a36ebfe6",
    "templateCredsSetupCompleted": true
  },
  "name": "Cold Outreach Automation: Scrape Local Leads with Dumpling AI & Call via Vapi",
  "tags": [],
  "nodes": [
    {
      "id": "ec17b443-6dbd-46c1-8331-797ce6290801",
      "name": "Notizzettel",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -860,
        -900
      ],
      "parameters": {
        "width": 900,
        "height": 320,
        "content": "### 📍 Get Local Business Data from Google Maps with Dumpling AI\n\nThe workflow begins manually and pulls a list of Google Maps search queries (like \"best plumbers in Chicago\") from Google Sheets. These queries are sent to Dumpling AI's `search-google-map` endpoint, which scrapes businesses matching the terms. The response is split into individual business entries. A Set node extracts the business name and phone number for each result.\n\n- `Start Workflow Manually`: Begin process\n- `Get Search Keywords from Google Sheets`: Pulls search terms (e.g., \"top dentists in NY\")\n- `Scrape Google Map Businesses`: Uses Dumpling AI to collect business info\n- `Split Each Business Result`: Breaks response into single business entries\n- `Extract Business Name and Phone`: Prepares business name and phone number for calling\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5345e653-8442-4caa-bb7e-a597b3779db0",
      "name": "Workflow manuell starten",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -820,
        -580
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "072baaf9-81d8-4989-9354-822f02b2f922",
      "name": "Suchbegriffe aus Google Sheets abrufen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -600,
        -580
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QXZk6D8hW29f9umrmsYv_HeZYRKWOjsxOaFZ2BZtu3Y/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QXZk6D8hW29f9umrmsYv_HeZYRKWOjsxOaFZ2BZtu3Y/edit?usp=drivesdk",
          "cachedResultName": "leads"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "004427b8-e8d7-4f28-b03e-4b459f2a7b2b",
      "name": "Geschäfte von Google Maps mit Dumpling AI erfassen",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -380,
        -580
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/search-maps",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "={\n  \"query\":\"{{ $json.URLs }}\", \n  \"language\": \"en\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "5CBvzXCLjwWzCJRE",
          "name": "n8n_integration"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "21eed6ed-ca94-48b1-a164-1a0841ec376b",
      "name": "Jedes Geschäftsergebnis aufteilen",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -160,
        -580
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "places"
      },
      "typeVersion": 1
    },
    {
      "id": "5efb54a1-0b80-46aa-861d-2ef53f069a22",
      "name": "Geschäftsname, Telefon und Website extrahieren",
      "type": "n8n-nodes-base.set",
      "position": [
        60,
        -580
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "79cc91c6-28bd-47a1-86db-b936e6958428",
              "name": "website",
              "type": "string",
              "value": "={{ $json.website }}"
            },
            {
              "id": "7a0455bb-b235-4e03-a93d-0e3b31b40df2",
              "name": "phoneNumber",
              "type": "string",
              "value": "={{ $json.phoneNumber }}"
            },
            {
              "id": "a493dd1f-b495-4c01-983a-4e417aca80fc",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "91ec444a-44be-471b-8f2d-e192f58b085d",
      "name": "Nur gültige Telefonnummern filtern",
      "type": "n8n-nodes-base.filter",
      "position": [
        280,
        -580
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "dab1310e-6566-4e77-b1a6-362363b2e025",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.phoneNumber }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "77d150c3-0908-443e-afb9-c2e1a740e749",
      "name": "Telefonnummer für Anruf formatieren",
      "type": "n8n-nodes-base.set",
      "position": [
        500,
        -580
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "045d4c64-61f3-4b39-9b5c-35b7e95783fd",
              "name": "formattedPhone",
              "type": "string",
              "value": "={{ '+1' + $json[\"phoneNumber\"].replace(/\\D/g, '') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1dbe296d-c422-4ae6-ba7e-6bd7dbe0a5e9",
      "name": "Vapi AI-Anruf an Geschäft initiieren",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        720,
        -580
      ],
      "parameters": {
        "url": "https://api.vapi.ai/call",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "={\n  \"customers\": [\n    {\n      \"number\": \"{{ $json.formattedPhone}}\",\n      \"name\": \"\"\n    }\n  ],\n  \"assistantId\": \"\",\n  \"phoneNumberId\": \"\",\n  \"assistantOverrides\": {\n    \"variableValues\": {\n      \"Name\": \"{{ $('Filter Valid Phone Numbers Only').item.json.title }}\",\n    }\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "6X2b4RLVRbz8I4Z8",
          "name": "Vapi"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fc705d86-98b2-4219-9b19-0350657b845b",
      "name": "Angerufene Geschäftsinfo in Sheet protokollieren",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        940,
        -600
      ],
      "parameters": {
        "columns": {
          "value": {
            "website": "={{ $('Extract Business Name, Phone and website').item.json.website }}",
            "company name": "={{ $('Extract Business Name, Phone and website').item.json.title }}",
            "phone number ": "={{ $('Format Phone Number for Calling').item.json.formattedPhone }}"
          },
          "schema": [
            {
              "id": "company name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "company name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "phone number ",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "phone number ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1315810611,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QXZk6D8hW29f9umrmsYv_HeZYRKWOjsxOaFZ2BZtu3Y/edit#gid=1315810611",
          "cachedResultName": "leads"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1QXZk6D8hW29f9umrmsYv_HeZYRKWOjsxOaFZ2BZtu3Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QXZk6D8hW29f9umrmsYv_HeZYRKWOjsxOaFZ2BZtu3Y/edit?usp=drivesdk",
          "cachedResultName": "leads"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "GaJqJHuS5mQxap7q",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "e30e0706-3732-4a2f-81f2-d50e63043632",
      "name": "Notizzettel1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -900
      ],
      "parameters": {
        "color": 3,
        "width": 900,
        "height": 320,
        "content": "### 📞 Auto-Call Businesses and Track Results\n\nBusinesses without valid phone numbers are filtered out. A Set node formats the numbers for international dialing (e.g., adds +1 for US). The Vapi AI assistant then initiates a phone call to each business, using the business name in the script. After the call, the name, number, and call status are logged to a Google Sheet for follow-up or reporting.\n\n- `Filter Valid Phone Numbers Only`: Ensures phone number exists\n- `Format Phone Number for Calling`: Adds correct dial prefix\n- `Initiate Vapi AI Call to Business`: Triggers outbound AI call via Vapi\n- `Log Called Business Info to Sheet`: Records successful outreach for tracking\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "da88eae8-0530-4674-8afa-196c8da7f47f",
  "connections": {
    "5345e653-8442-4caa-bb7e-a597b3779db0": {
      "main": [
        [
          {
            "node": "072baaf9-81d8-4989-9354-822f02b2f922",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "21eed6ed-ca94-48b1-a164-1a0841ec376b": {
      "main": [
        [
          {
            "node": "5efb54a1-0b80-46aa-861d-2ef53f069a22",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "91ec444a-44be-471b-8f2d-e192f58b085d": {
      "main": [
        [
          {
            "node": "77d150c3-0908-443e-afb9-c2e1a740e749",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "77d150c3-0908-443e-afb9-c2e1a740e749": {
      "main": [
        [
          {
            "node": "1dbe296d-c422-4ae6-ba7e-6bd7dbe0a5e9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1dbe296d-c422-4ae6-ba7e-6bd7dbe0a5e9": {
      "main": [
        [
          {
            "node": "fc705d86-98b2-4219-9b19-0350657b845b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "072baaf9-81d8-4989-9354-822f02b2f922": {
      "main": [
        [
          {
            "node": "004427b8-e8d7-4f28-b03e-4b459f2a7b2b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5efb54a1-0b80-46aa-861d-2ef53f069a22": {
      "main": [
        [
          {
            "node": "91ec444a-44be-471b-8f2d-e192f58b085d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "004427b8-e8d7-4f28-b03e-4b459f2a7b2b": {
      "main": [
        [
          {
            "node": "21eed6ed-ca94-48b1-a164-1a0841ec376b",
            "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?

Fortgeschritten

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.

Verwandte Workflows

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes11
Kategorie-
Node-Typen7
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34