This workflow corresponds to n8n.io template #8003 — we link there as the canonical source.
This workflow follows the Airtable → Execute Workflow Trigger 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "493c4059-eae8-4991-b515-621e54fcb7d1",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-448,
1232
],
"parameters": {
"options": {},
"fieldToSplitOut": "results"
},
"typeVersion": 1
},
{
"id": "ccbf8771-0911-458a-a4bc-b14526302f7f",
"name": "search Place",
"type": "n8n-nodes-base.httpRequest",
"position": [
-672,
1232
],
"parameters": {
"url": "https://maps.googleapis.com/maps/api/place/textsearch/json",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"name": "pagetoken",
"value": "={{$response.body.next_page_token}}"
}
]
},
"maxRequests": 1,
"requestInterval": 20,
"limitPagesFetched": true
}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"queryParameters": {
"parameters": [
{
"name": "query",
"value": "={{ $json.Suchbegriff }}"
},
{
"name": "pagetoken"
}
]
}
},
"credentials": {
"httpQueryAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "2cb16f2f-2457-4f94-9a35-65c912ebc209",
"name": "Place Details",
"type": "n8n-nodes-base.httpRequest",
"position": [
-224,
1232
],
"parameters": {
"url": "https://maps.googleapis.com/maps/api/place/details/json",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"name": "next_page_token",
"value": "={{ $ifEmpty($response.body.next_page_token,\"\") }}"
}
]
},
"maxRequests": 1,
"requestInterval": 2,
"limitPagesFetched": true
}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"queryParameters": {
"parameters": [
{
"name": "place_id",
"value": "={{ $json.place_id }}"
}
]
}
},
"credentials": {
"httpQueryAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "50d042a7-4fb4-46b7-a9b9-8eaea097329a",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1424,
880
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "92a80d2e-d867-4ac7-98c0-f0e1710ddd05",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
1616,
368
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "917545a0-b987-40b6-ba7c-eb9428ab64c3",
"name": "Entscheidername",
"type": "string",
"value": "={{ $json.output.Entscheidername.split(',')[0] }}"
},
{
"id": "5d76f892-186e-4510-987d-598382d7eca5",
"name": "Entscheiderposition",
"type": "string",
"value": "={{ $ifEmpty($json.output.Entscheidername.split(',')[1],\"\") }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "97056b0f-bdea-43b8-9305-5b5d010ae6df",
"name": "Loop Over Items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1120,
752
],
"parameters": {
"options": {},
"batchSize": 5
},
"typeVersion": 3
},
{
"id": "6f57f165-aec6-4e49-835e-2c22f7dd5726",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
1696,
864
],
"parameters": {
"amount": 20
},
"typeVersion": 1.1
},
{
"id": "1d2b0c45-a627-48aa-9c2a-c1a32ef838f9",
"name": "HTML",
"type": "n8n-nodes-base.html",
"position": [
1152,
1216
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "mainContent",
"cssSelector": "body",
"skipSelectors": "img, wp,nav, header, footer, aside, script, style, .sidebar, .ads, .ad, .advertisement, .breadcrumb, .cookies, .newsletter, .popup, .modal"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "cd11b2d4-04c3-4767-b376-a9dfec33c2ad",
"name": "Loop Over Items3",
"type": "n8n-nodes-base.splitInBatches",
"position": [
672,
1376
],
"parameters": {
"options": {},
"batchSize": 5
},
"typeVersion": 3
},
{
"id": "1deac6fc-1b84-4018-b500-cdecf5f38d7e",
"name": "Wait2",
"type": "n8n-nodes-base.wait",
"position": [
1408,
1376
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "34ab2c6a-8b45-4288-8f8c-fff2964eea96",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
-1568,
1232
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "Stadt,Land"
},
{
"name": "Suchbegriff"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "5ed54e52-29ea-4646-ade7-491334e529a9",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1504,
1792
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3f5572ed-9935-4a5b-a4dd-593597dfd881",
"name": "Execute Workflow",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
-496,
1856
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "SLqoXTIjAZ8JXMs7",
"cachedResultName": "Maps Scraper"
},
"workflowInputs": {
"value": {
"Stadt,Land": "={{ $('Airtable2').item.json.Stadt }}, {{ $('Airtable2').item.json.Land }}",
"Suchbegriff": "Seo Agentur"
},
"schema": [
{
"id": "Stadt,Land",
"type": "string",
"display": true,
"required": false,
"displayName": "Stadt,Land",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Suchbegriff",
"type": "string",
"display": true,
"required": false,
"displayName": "Suchbegriff",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": true,
"convertFieldsToString": true
}
},
"executeOnce": false,
"typeVersion": 1.2,
"alwaysOutputData": true
},
{
"id": "456fce84-9f8b-4300-a097-3a1bf507fbdd",
"name": "Airtable1",
"type": "n8n-nodes-base.airtable",
"position": [
-288,
1856
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appjgzxHXkhxrtlfm",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm",
"cachedResultName": "Mapsscraper"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblTE2107lXjXarJz",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm/tblTE2107lXjXarJz",
"cachedResultName": "St\u00e4dte"
},
"columns": {
"value": {
"id": "={{ $('Airtable2').item.json.id }}",
"Ausw\u00e4hlen": "Check"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Stadt",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Stadt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Land",
"type": "options",
"display": true,
"options": [
{
"name": "Deutschland",
"value": "Deutschland"
},
{
"name": "\u00d6sterreich",
"value": "\u00d6sterreich"
},
{
"name": "Schweiz",
"value": "Schweiz"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Land",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Ausw\u00e4hlen",
"type": "options",
"display": true,
"options": [
{
"name": "Check",
"value": "Check"
},
{
"name": "no Check",
"value": "no Check"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Ausw\u00e4hlen",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "upsert"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 2.1
},
{
"id": "f78dbd0d-3cdc-411e-800d-893f59ac5232",
"name": "Airtable2",
"type": "n8n-nodes-base.airtable",
"position": [
-1168,
1744
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appjgzxHXkhxrtlfm",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm",
"cachedResultName": "Mapsscraper"
},
"limit": 25,
"table": {
"__rl": true,
"mode": "list",
"value": "tblTE2107lXjXarJz",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm/tblTE2107lXjXarJz",
"cachedResultName": "St\u00e4dte"
},
"options": {},
"operation": "search",
"returnAll": false
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "5d906fab-24af-4812-85e4-0c3a2a77b2ad",
"name": "Loop Over Items2",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-720,
1744
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "45d43303-380f-40ad-bd52-f776a6754c67",
"name": "Filter5",
"type": "n8n-nodes-base.filter",
"position": [
-944,
1744
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9894907d-cf03-45c8-833b-ed9d1c128783",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json['Ausw\u00e4hlen'] }}",
"rightValue": "Check"
},
{
"id": "087cdb6a-94b7-458f-87db-d8ca65cf4271",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Land }}",
"rightValue": "Deutschland"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f4c8f3d6-8275-4eda-a111-2030e7a80aff",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1632,
1584
],
"parameters": {
"width": 1664,
"height": 544,
"content": "## Init Scraper for Each City\n\n* In Airtable, there is a list of cities used as search terms for Google Maps. The scraper processes them one by one to collect all businesses in each major city within a given country.\nDuring initialization, the scraper takes the city name as a parameter. Once a city is fully processed, it marks that city as \u201ccompleted\u201d in another column. This way, if the process is interrupted, it can resume with the next unchecked city."
},
"typeVersion": 1
},
{
"id": "63e40c33-b599-4d06-80dd-597e9db324d0",
"name": "already scraped",
"type": "n8n-nodes-base.airtable",
"position": [
-1344,
1232
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appjgzxHXkhxrtlfm",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm",
"cachedResultName": "Mapsscraper"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZDRAqzW1JKHzzU",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm/tblZDRAqzW1JKHzzU",
"cachedResultName": "Mapsscraper"
},
"options": {},
"operation": "search"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "d4a854f8-76e7-4e0a-b44f-01437907bbfc",
"name": "Array all Companies scraped",
"type": "n8n-nodes-base.summarize",
"position": [
-1120,
1232
],
"parameters": {
"options": {},
"fieldsToSummarize": {
"values": [
{
"field": "Firmenname",
"aggregation": "concatenate"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "785e14cf-b227-4a1b-bda1-b318dcd2d505",
"name": "Searchword",
"type": "n8n-nodes-base.set",
"position": [
-896,
1232
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c96ec75d-7aab-484f-8b30-87e25fd33b55",
"name": "Suchbegriff",
"type": "string",
"value": "={{ $('When Executed by Another Workflow').item.json.Suchbegriff }} {{ $('When Executed by Another Workflow').item.json['Stadt,Land'] }}"
}
]
}
},
"executeOnce": true,
"typeVersion": 3.4
},
{
"id": "5c6a8971-0c32-445d-ae7b-4866ea402c31",
"name": "Places already scraped",
"type": "n8n-nodes-base.if",
"position": [
-32,
1248
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "c6849881-5ead-415c-9df2-82844dc75144",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $('Array all Companies scraped').item.json.concatenated_Firmenname }}",
"rightValue": "={{ $('Place Details').item.json.result.name }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "0bd81c3b-ec89-4ae7-8819-ed554af15ffc",
"name": "Get Impressum-URL",
"type": "n8n-nodes-base.set",
"onError": "continueErrorOutput",
"position": [
400,
1392
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "af78fa47-9cb8-49a6-8a45-e96860b1a025",
"name": "result.website",
"type": "string",
"value": "={{ $json.result.website.extractUrl().extractDomain() }}/impressum"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8330fdc2-6325-4280-b696-a83c7168c847",
"name": "Get Impressum HTML",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
896,
1296
],
"parameters": {
"url": "=https://{{ $json.result.website }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "8e8e048c-86d4-44c4-a19e-903613b9ce42",
"name": "Successfully scraped Impressumpages?",
"type": "n8n-nodes-base.filter",
"position": [
896,
752
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c683a504-52b6-47fc-b42e-0ced16f25e45",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2f413fb2-18bc-41cb-8a60-36fef41706d4",
"name": "Relevant Infos from Impressum",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
1344,
656
],
"parameters": {
"text": "={{ $json.mainContent }}",
"options": {
"systemPromptTemplate": "Please extract the following information from the given HTML document:\n\nAn executive and their position (if available). Combine the person\u2019s name and position into a single text format, e.g., \"Name, Position\". If no position or name is provided, leave name or position empty.\n\nThe phone number of the selected executive (if available).\n\nEmail address.\n\nIf no person (with a real name), position, or phone number is available, set the corresponding value to null"
},
"attributes": {
"attributes": [
{
"name": "Entscheidername",
"required": true,
"description": "Eine F\u00fchrungskraft und deren Position (falls vorhanden). Kombiniere Personen Name und Position in einem einzigen Textformat wie: \"Name, Position\". Wenn keine Position oder personenname angegeben ist, lasse namen oder position leer"
},
{
"name": "Telefonnummer",
"description": "Die Telefonnummer der ausgew\u00e4hlten F\u00fchrungskraft (falls vorhanden)."
},
{
"name": "Emailadresse",
"required": true,
"description": "idealerweise die emailadresse der F\u00fchrungskraft, ansonsten irgendeine nur g\u00fcltige Email adressen mit @"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "61e6159d-80cd-4e30-81a0-c705a4fb1134",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
1136
],
"parameters": {
"color": 3,
"width": 1296,
"height": 496,
"content": "Get Impressum-Pages and scrape trough them\n"
},
"typeVersion": 1
},
{
"id": "faffe186-8d22-4510-a833-63afdb044ac6",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
576
],
"parameters": {
"color": 3,
"width": 1056,
"height": 496,
"content": "## Extract Relevant Information from Impressum HTML\n\nDecision Maker, Email, Telephone Number"
},
"typeVersion": 1
},
{
"id": "fe69bf9f-9825-46c3-970a-a79bccca9c08",
"name": "Email not Empty",
"type": "n8n-nodes-base.filter",
"position": [
1408,
368
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7bde4471-5c96-4f96-b830-af67cc60ad60",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.output.Emailadresse }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c5ecdfbc-7e5f-499e-8688-304b61828f73",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1392,
1072
],
"parameters": {
"color": 3,
"width": 1616,
"height": 400,
"content": "Check if the company has already been scraped \u2192 search for places using the search term \u2192 fetch detailed information via morePlaceDetails."
},
"typeVersion": 1
},
{
"id": "1f1ccdb0-24e1-430a-8aec-802acc6c680a",
"name": "Write in DB",
"type": "n8n-nodes-base.airtable",
"position": [
1840,
368
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appjgzxHXkhxrtlfm",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm",
"cachedResultName": "Mapsscraper"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZDRAqzW1JKHzzU",
"cachedResultUrl": "https://airtable.com/appjgzxHXkhxrtlfm/tblZDRAqzW1JKHzzU",
"cachedResultName": "Mapsscraper"
},
"columns": {
"value": {
"Email": "={{ $('Relevant Infos from Impressum').item.json.output.Emailadresse }}",
"Website": "={{ $('Place Details').item.json.result.website }}",
"Standort": "={{ $('Place Details').item.json.result.formatted_address }}",
"Firmenname": "={{ $('Place Details').item.json.result.name }}",
"Suchbegriff": "={{ $('Searchword').item.json.Suchbegriff }}",
"Telefonnummer": "={{ $('Place Details').item.json.result.international_phone_number }}",
"Entscheidername": "={{ $json.Entscheidername }}",
"Entscheiderposition": "={{ $json.Entscheiderposition }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Firmenname",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Firmenname",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Telefonnummer",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Telefonnummer",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Entscheidername",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Entscheidername",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Entscheiderposition",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Entscheiderposition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Standort",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Standort",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Lead Summary",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Lead Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Suchbegriff",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Suchbegriff",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Linkedin",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Websitewissen vekorisiert",
"type": "options",
"display": true,
"options": [
{
"name": "Ja",
"value": "Ja"
},
{
"name": "Nein",
"value": "Nein"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Websitewissen vekorisiert",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Firmenname"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "upsert"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
}
],
"connections": {
"HTML": {
"main": [
[
{
"node": "Wait2",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Wait2": {
"main": [
[
{
"node": "Loop Over Items3",
"type": "main",
"index": 0
}
]
]
},
"Filter5": {
"main": [
[
{
"node": "Loop Over Items2",
"type": "main",
"index": 0
}
]
]
},
"Airtable1": {
"main": [
[
{
"node": "Loop Over Items2",
"type": "main",
"index": 0
}
]
]
},
"Airtable2": {
"main": [
[
{
"node": "Filter5",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Place Details",
"type": "main",
"index": 0
}
]
]
},
"Searchword": {
"main": [
[
{
"node": "search Place",
"type": "main",
"index": 0
}
]
]
},
"Write in DB": {
"main": [
[]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Write in DB",
"type": "main",
"index": 0
}
]
]
},
"search Place": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Place Details": {
"main": [
[
{
"node": "Places already scraped",
"type": "main",
"index": 0
}
]
]
},
"Email not Empty": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"already scraped": {
"main": [
[
{
"node": "Array all Companies scraped",
"type": "main",
"index": 0
}
]
]
},
"Execute Workflow": {
"main": [
[
{
"node": "Airtable1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[
{
"node": "Email not Empty",
"type": "main",
"index": 0
}
],
[
{
"node": "Relevant Infos from Impressum",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items2": {
"main": [
[],
[
{
"node": "Execute Workflow",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items3": {
"main": [
[
{
"node": "Successfully scraped Impressumpages?",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Impressum HTML",
"type": "main",
"index": 0
}
]
]
},
"Get Impressum-URL": {
"main": [
[
{
"node": "Loop Over Items3",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Relevant Infos from Impressum",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get Impressum HTML": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait2",
"type": "main",
"index": 0
}
]
]
},
"Places already scraped": {
"main": [
[
{
"node": "Get Impressum-URL",
"type": "main",
"index": 0
}
]
]
},
"Array all Companies scraped": {
"main": [
[
{
"node": "Searchword",
"type": "main",
"index": 0
}
]
]
},
"Relevant Infos from Impressum": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "already scraped",
"type": "main",
"index": 0
}
]
]
},
"Successfully scraped Impressumpages?": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Airtable2",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
airtableTokenApihttpQueryAuthopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the process of discovering companies in different cities, extracting their contact data, and storing it in Airtable. City Loop (Airtable → Google Maps API) Reads a list of cities from Airtable. Uses each city combined with a search term (e.g., SEO Agency,…
Source: https://n8n.io/workflows/8003/ — 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.
Typeform IA - YT. Uses typeformTrigger, agent, lmChatOpenAi, toolWorkflow. Event-driven trigger; 75 nodes.
Template Carnaval - time instagram. Uses toolWorkflow, lmChatOpenAi, memoryBufferWindow, agent. Event-driven trigger; 56 nodes.
This intelligent workflow automatically discovers and analyzes recently funded startups by: Monitoring multiple news sources (TechCrunch and VentureBeat) for funding announcements Using AI to extract
Agent IA Immobilier - Enrichissement Inventaire Propriété. Uses lmChatOpenAi, executeWorkflowTrigger, httpRequest, toolWorkflow. Event-driven trigger; 39 nodes.
Telegram. Uses memoryBufferWindow, toolWorkflow, agent, telegramTrigger. Event-driven trigger; 35 nodes.