Scraping de empresas de Google Maps y extracción de información de contacto con Apify y Firecrawl
Este es unSales, Marketingflujo de automatización del dominio deautomatización que contiene 18 nodos.Utiliza principalmente nodos como If, Code, Wait, Filter, HttpRequest. Extracción de información de negocios de Google Maps y contacto con Apify y Firecrawl
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (18)
{
"id": "95RHN758KyIlB84T",
"meta": {
"instanceId": "8d41476c63702cd0f2be55363b48153c5d4820bb18197ca147e7be50ef236112",
"templateCredsSetupCompleted": true
},
"name": "Google Maps business scraper with contact extraction via Apify and Firecrawl",
"tags": [],
"nodes": [
{
"id": "17ab0386-4f7f-4f72-ab28-399febe4bf84",
"name": "Disparador Programado",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
-125
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 30
}
]
}
},
"typeVersion": 1.1
},
{
"id": "2e7080b6-a5a4-4571-933f-3a33979037e8",
"name": "Bucle Hasta Completar",
"type": "n8n-nodes-base.if",
"position": [
1100,
-125
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "de704919-205a-470f-a417-b297fbbdbaf8",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.data.status }}",
"rightValue": "SUCCEEDED"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "3e062954-93b9-48d7-b5dc-29ff579793af",
"name": "Leer Consultas Pendientes",
"type": "n8n-nodes-base.googleSheets",
"position": [
220,
-125
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "false",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit#gid=0",
"cachedResultName": "Query"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=drivesdk",
"cachedResultName": "Google Maps Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "V4NHfo08zBK4IW4e",
"name": "[Naveen]Google Sheets account"
}
},
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "63d7b375-c4a6-42ae-b9ef-51f963edaa72",
"name": "Iniciar Trabajo de Scraping Apify",
"type": "n8n-nodes-base.httpRequest",
"position": [
440,
-125
],
"parameters": {
"url": "https://api.apify.com/v2/acts/compass~crawler-google-places/runs",
"method": "POST",
"options": {},
"jsonBody": "={\n \"searchStringsArray\": [\n \"restaurant\"\n ],\n \"locationQuery\": \"New York, USA\",\n \"maxCrawledPlacesPerSearch\": 15,\n \"language\": \"en\",\n \"maximumLeadsEnrichmentRecords\": 0,\n \"maxImages\": 0\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpQueryAuth": {
"id": "Zg8dzYM9LryztYYp",
"name": "[Apify/Sean]Query Auth"
},
"httpHeaderAuth": {
"id": "wQYxWVdhRcoCOOit",
"name": "[Apify/Sean]Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "958eb9fc-14f5-41f1-9055-10e0f889c039",
"name": "Esperar a que el Trabajo Finalice",
"type": "n8n-nodes-base.wait",
"position": [
660,
-125
],
"webhookId": "97a65079-8ee5-45a2-9de0-afd263bbbe34",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "32fa03e3-a5ac-4ae3-b03a-2d99cb5d3079",
"name": "Verificar Estado del Scraping",
"type": "n8n-nodes-base.httpRequest",
"position": [
880,
-200
],
"parameters": {
"url": "=https://api.apify.com/v2/actor-runs/{{ $json.data.id }}",
"options": {
"timeout": 10000
},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpQueryAuth": {
"id": "Zg8dzYM9LryztYYp",
"name": "[Apify/Sean]Query Auth"
},
"httpHeaderAuth": {
"id": "wQYxWVdhRcoCOOit",
"name": "[Apify/Sean]Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "97c84abb-c21e-497c-a2eb-1bf4b01db0ca",
"name": "Obtener Resultados Raspados",
"type": "n8n-nodes-base.httpRequest",
"position": [
1320,
-125
],
"parameters": {
"url": "=https://api.apify.com/v2/datasets/{{ $json.data.defaultDatasetId }}/items",
"options": {
"timeout": 10000
},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpQueryAuth": {
"id": "Zg8dzYM9LryztYYp",
"name": "[Apify/Sean]Query Auth"
},
"httpHeaderAuth": {
"id": "wQYxWVdhRcoCOOit",
"name": "[Apify/Sean]Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "383d8508-54ba-4fbf-9d4b-f13487d1ff25",
"name": "Guardar Datos del Negocio",
"type": "n8n-nodes-base.googleSheets",
"position": [
1540,
-125
],
"parameters": {
"columns": {
"value": {
"phone": "={{ $json.phone }}",
"title": "={{ $json.title }}",
"status": "false",
"address": "={{ $json.address }}",
"website": "={{ $json.website }}",
"categoryName": "={{ $json.categoryName }}",
"searchString": "={{ $json.searchString }}"
},
"schema": [
{
"id": "searchString",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "searchString",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"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": "phone",
"type": "string",
"display": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"searchString"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1948906848,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit#gid=1948906848",
"cachedResultName": "Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=drivesdk",
"cachedResultName": "Google Maps Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "V4NHfo08zBK4IW4e",
"name": "[Naveen]Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "cd083a40-2270-44e2-8683-ae3b4d5b85a8",
"name": "Filtrar Negocios con Sitios Web",
"type": "n8n-nodes-base.filter",
"position": [
1760,
-125
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2218f0be-2c48-4a1a-bd21-8bdb67c495a1",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.website }}",
"rightValue": ""
},
{
"id": "d0ef3194-ee94-45c5-b9c3-5db32f08d1b5",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "false"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "234a63b0-3741-43d2-8a8b-ac29d6137ddb",
"name": "Lógica de Procesamiento por Lotes",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1980,
-125
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "63e8e91a-6012-4073-b03d-2158672288ee",
"name": "Rastrear Contenido del Sitio Web",
"type": "n8n-nodes-base.httpRequest",
"position": [
2260,
-220
],
"parameters": {
"url": "https://api.firecrawl.dev/v1/scrape",
"method": "POST",
"options": {},
"jsonBody": "={\n \"url\": \"{{ $json.website }}\",\n \"formats\": [\n \"html\"\n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "dIJc7Mqjejgs6m3x",
"name": "[Firecrawl/Naveen]Bearer Auth"
},
"httpHeaderAuth": {
"id": "wQYxWVdhRcoCOOit",
"name": "[Apify/Sean]Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "d9c1b4dc-c741-4dff-a9cd-0dd6527d514a",
"name": "Extraer Información de Contacto",
"type": "n8n-nodes-base.code",
"position": [
2480,
-220
],
"parameters": {
"jsCode": "// N8N Code Node - Extract emails, LinkedIn, Facebook, Instagram for single item\nconst item = $input.first();\n\n// Get the text content to search (adjust field names as needed)\nconst textContent = item.json.data.html;\n\n// Initialize result object\nconst result = {\n website: $('Batch Processing Logic').first().json.website,\n emails: \"None\",\n linkedin: \"None\", \n facebook: \"None\",\n instagram: \"None\",\n twitter: \"None\"\n};\n\n// Email extraction regex - matches common email patterns\nconst emailRegex = /\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b/gi;\nconst emails = textContent.match(emailRegex);\n\nif (emails && emails.length > 0) {\n // Remove duplicates and filter out common non-email matches\n const uniqueEmails = [...new Set(emails)].filter(email => {\n const lowerEmail = email.toLowerCase();\n return !lowerEmail.includes('example.com') && \n !lowerEmail.includes('test@') &&\n !lowerEmail.includes('noreply@') &&\n !lowerEmail.includes('no-reply@') &&\n lowerEmail.length > 5;\n });\n \n if (uniqueEmails.length > 0) {\n result.emails = uniqueEmails.length === 1 ? uniqueEmails[0] : uniqueEmails.join(', ');\n }\n}\n\n// LinkedIn extraction - improved pattern\nconst linkedinRegex = /(?:https?:\\/\\/)?(?:www\\.)?linkedin\\.com\\/(?:in\\/|company\\/|pub\\/)[a-zA-Z0-9\\-._]+\\/?/gi;\nconst linkedinMatches = textContent.match(linkedinRegex);\nif (linkedinMatches && linkedinMatches.length > 0) {\n const cleanLinkedin = linkedinMatches[0].replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, 'https://www.');\n result.linkedin = cleanLinkedin;\n}\n\n// Facebook extraction - improved to match numeric IDs and usernames\nconst facebookRegex = /(?:https?:\\/\\/)?(?:www\\.|m\\.|mobile\\.)?facebook\\.com\\/(?:[^\\/\\s]+\\/)*[^\\/\\s?#]+/gi;\nconst facebookMatches = textContent.match(facebookRegex);\nif (facebookMatches && facebookMatches.length > 0) {\n const cleanFacebook = facebookMatches[0].replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, 'https://www.');\n result.facebook = cleanFacebook;\n}\n\n// Instagram extraction - improved to match various URL formats\nconst instagramRegex = /(?:https?:\\/\\/)?(?:www\\.)?instagram\\.com\\/[a-zA-Z0-9\\-._]+\\/?/gi;\nconst instagramMatches = textContent.match(instagramRegex);\nif (instagramMatches && instagramMatches.length > 0) {\n const cleanInstagram = instagramMatches[0].replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, 'https://www.');\n result.instagram = cleanInstagram;\n}\n\n// Twitter/X extraction - improved to match usernames properly\nconst twitterRegex = /(?:https?:\\/\\/)?(?:www\\.)?(?:twitter\\.com|x\\.com)\\/[a-zA-Z0-9_]+\\/?/gi;\nconst twitterMatches = textContent.match(twitterRegex);\nif (twitterMatches && twitterMatches.length > 0) {\n const cleanTwitter = twitterMatches[0].replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, 'https://www.');\n result.twitter = cleanTwitter;\n}\n\n// Alternative extraction for social handles without full URLs\n// Look for @username patterns for Instagram and Twitter\nif (result.instagram === \"None\") {\n const igHandleRegex = /@([a-zA-Z0-9._]{1,30})/gi;\n const igHandles = textContent.match(igHandleRegex);\n if (igHandles && igHandles.length > 0) {\n const username = igHandles[0].replace('@', '');\n if (username.length > 0 && !username.includes(' ')) {\n result.instagram = `https://www.instagram.com/${username}`;\n }\n }\n}\n\n// Look for Twitter handles without full URLs\nif (result.twitter === \"None\") {\n const twitterHandleRegex = /@([a-zA-Z0-9_]{1,15})/gi;\n const twitterHandles = textContent.match(twitterHandleRegex);\n if (twitterHandles && twitterHandles.length > 0) {\n const username = twitterHandles[0].replace('@', '');\n if (username.length > 0 && !username.includes(' ')) {\n result.twitter = `https://www.x.com/${username}`;\n }\n }\n}\n\n// Clean up URLs - remove trailing slashes and parameters\n['linkedin', 'facebook', 'instagram', 'twitter'].forEach(platform => {\n if (result[platform] !== \"None\") {\n result[platform] = result[platform].split('?')[0].split('#')[0].replace(/\\/$/, '');\n }\n});\n\nreturn result;"
},
"typeVersion": 2
},
{
"id": "32ef5f5d-6457-4edc-9299-afea61af4784",
"name": "Guardar Detalles de Contacto",
"type": "n8n-nodes-base.googleSheets",
"position": [
2700,
-220
],
"parameters": {
"columns": {
"value": {
"emails": "={{ $json.emails }}",
"twitter": "={{ $json.twitter }}",
"website": "={{ $json.website }}",
"facebook": "={{ $json.facebook }}",
"linkedin": "={{ $json.linkedin }}",
"instagram": "={{ $json.instagram }}"
},
"schema": [
{
"id": "website",
"type": "string",
"display": true,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "emails",
"type": "string",
"display": true,
"required": false,
"displayName": "emails",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "facebook",
"type": "string",
"display": true,
"required": false,
"displayName": "facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "instagram",
"type": "string",
"display": true,
"required": false,
"displayName": "instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "twitter",
"type": "string",
"display": true,
"required": false,
"displayName": "twitter",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2056137853,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit#gid=2056137853",
"cachedResultName": "Details"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=drivesdk",
"cachedResultName": "Google Maps Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "V4NHfo08zBK4IW4e",
"name": "[Naveen]Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "374d7e2f-6e14-4dd1-a51a-f0cce37945d8",
"name": "Marcar como Procesado",
"type": "n8n-nodes-base.googleSheets",
"position": [
2920,
-160
],
"parameters": {
"columns": {
"value": {
"status": "true",
"website": "={{ $json.website }}"
},
"schema": [
{
"id": "searchString",
"type": "string",
"display": true,
"required": false,
"displayName": "searchString",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"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": "phone",
"type": "string",
"display": true,
"required": false,
"displayName": "phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "hasWebsite",
"type": "string",
"display": true,
"required": false,
"displayName": "hasWebsite",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"website"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1948906848,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit#gid=1948906848",
"cachedResultName": "Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=drivesdk",
"cachedResultName": "Google Maps Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "V4NHfo08zBK4IW4e",
"name": "[Naveen]Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "52c246a4-c483-4539-b22d-f4b046c16724",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
-360
],
"parameters": {
"color": 4,
"width": 640,
"height": 180,
"content": "## 🚀 INITIALIZATION PHASE\n- Triggers every 30 minutes\n- Reads unprocessed records from [Google Sheet](https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=sharing)\n- Starts Google Places scraper for restaurants\n- Waits for completion"
},
"typeVersion": 1
},
{
"id": "2983ac2d-5627-4ab1-9fbf-c09ed8886bf6",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
-420
],
"parameters": {
"width": 660,
"height": 180,
"content": "## 📊 DATA COLLECTION PHASE\n- Monitors scraper job status\n- Loops until job completes\n- Fetches scraped restaurant data\n- Saves to \"Data\" sheet in [Google Sheets](https://docs.google.com/spreadsheets/d/1DHezdcetT0c3Ie1xB3z3jDc5WElsLN87K4J9EQDef9g/edit?usp=sharing)"
},
"typeVersion": 1
},
{
"id": "dc13180b-cf28-44a1-b6e7-c4f0c00f57c2",
"name": "Nota Adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1940,
-460
],
"parameters": {
"color": 6,
"width": 740,
"height": 200,
"content": "## 🌐 WEBSITE PROCESSING PHASE\n- Filters restaurants with valid websites\n- Loops through each website\n- Scrapes website content with Firecrawl\n- Extracts contact information (emails, social media)\n- Saves to \"Details\" sheet and marks as processed"
},
"typeVersion": 1
},
{
"id": "7a23b11a-22ce-4816-a336-6cd28a90aa49",
"name": "Nota Adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2260,
80
],
"parameters": {
"width": 580,
"height": 120,
"content": "## 🔄 LOOPS\n**Status Check Loop**: Continues until scraper job is complete\n**Website Processing Loop**: Processes each restaurant website individually"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "b94bf772-530d-4a3c-b024-795c2a7cfe4a",
"connections": {
"17ab0386-4f7f-4f72-ab28-399febe4bf84": {
"main": [
[
{
"node": "3e062954-93b9-48d7-b5dc-29ff579793af",
"type": "main",
"index": 0
}
]
]
},
"374d7e2f-6e14-4dd1-a51a-f0cce37945d8": {
"main": [
[
{
"node": "234a63b0-3741-43d2-8a8b-ac29d6137ddb",
"type": "main",
"index": 0
}
]
]
},
"383d8508-54ba-4fbf-9d4b-f13487d1ff25": {
"main": [
[
{
"node": "cd083a40-2270-44e2-8683-ae3b4d5b85a8",
"type": "main",
"index": 0
}
]
]
},
"2e7080b6-a5a4-4571-933f-3a33979037e8": {
"main": [
[
{
"node": "958eb9fc-14f5-41f1-9055-10e0f889c039",
"type": "main",
"index": 0
}
],
[
{
"node": "97c84abb-c21e-497c-a2eb-1bf4b01db0ca",
"type": "main",
"index": 0
}
]
]
},
"3e062954-93b9-48d7-b5dc-29ff579793af": {
"main": [
[
{
"node": "63d7b375-c4a6-42ae-b9ef-51f963edaa72",
"type": "main",
"index": 0
}
]
]
},
"32ef5f5d-6457-4edc-9299-afea61af4784": {
"main": [
[
{
"node": "374d7e2f-6e14-4dd1-a51a-f0cce37945d8",
"type": "main",
"index": 0
}
]
]
},
"958eb9fc-14f5-41f1-9055-10e0f889c039": {
"main": [
[
{
"node": "32fa03e3-a5ac-4ae3-b03a-2d99cb5d3079",
"type": "main",
"index": 0
}
]
]
},
"32fa03e3-a5ac-4ae3-b03a-2d99cb5d3079": {
"main": [
[
{
"node": "2e7080b6-a5a4-4571-933f-3a33979037e8",
"type": "main",
"index": 0
}
]
]
},
"97c84abb-c21e-497c-a2eb-1bf4b01db0ca": {
"main": [
[
{
"node": "383d8508-54ba-4fbf-9d4b-f13487d1ff25",
"type": "main",
"index": 0
}
]
]
},
"234a63b0-3741-43d2-8a8b-ac29d6137ddb": {
"main": [
[],
[
{
"node": "63e8e91a-6012-4073-b03d-2158672288ee",
"type": "main",
"index": 0
}
]
]
},
"63e8e91a-6012-4073-b03d-2158672288ee": {
"main": [
[
{
"node": "d9c1b4dc-c741-4dff-a9cd-0dd6527d514a",
"type": "main",
"index": 0
}
]
]
},
"63d7b375-c4a6-42ae-b9ef-51f963edaa72": {
"main": [
[
{
"node": "958eb9fc-14f5-41f1-9055-10e0f889c039",
"type": "main",
"index": 0
}
]
]
},
"d9c1b4dc-c741-4dff-a9cd-0dd6527d514a": {
"main": [
[
{
"node": "32ef5f5d-6457-4edc-9299-afea61af4784",
"type": "main",
"index": 0
}
]
]
},
"cd083a40-2270-44e2-8683-ae3b4d5b85a8": {
"main": [
[
{
"node": "234a63b0-3741-43d2-8a8b-ac29d6137ddb",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Ventas, Marketing
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Naveen Choudhary
@n8nsteinCompartir este flujo de trabajo