Generar线索 comerciales de Google Maps y Places API a Google Sheets

Intermedio

Este es unLead Generationflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como If, Set, SplitOut, FormTrigger, HttpRequest. Generar prospectos de negocio de Google Maps y Places API a Google Sheets

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "58a9e858b82757a75629d435ec0da2448ad5d9e906a9ce3b7dcbb64c90fda9fe",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "9e017f9b-517c-4e4d-b887-26bd694d1f4b",
      "name": "Obtener coordenadas de ubicación",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1248,
        144
      ],
      "parameters": {
        "url": "https://maps.googleapis.com/maps/api/geocode/json",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "address",
              "value": "={{ $json.location }}"
            },
            {
              "name": "key",
              "value": "={{ $json.googleApiKey }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0dce7f8f-7df8-4a84-94e4-a45443c2d93e",
      "name": "Buscar en Google Places",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1696,
        144
      ],
      "parameters": {
        "url": "https://places.googleapis.com/v1/places:searchText",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"textQuery\": \"{{ $json.businessType }}\",\n  \"locationBias\": {\n    \"circle\": {\n      \"center\": {\n        \"latitude\": {{ $json.latitude }},\n        \"longitude\": {{ $json.longitude }}\n      },\n      \"radius\": 10000\n    }\n  },\n  \"maxResultCount\": {{ $json.maxResults }}\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "X-Goog-Api-Key",
              "value": "={{ $json.googleApiKey }}"
            },
            {
              "name": "X-Goog-FieldMask",
              "value": "places.displayName,places.formattedAddress,places.nationalPhoneNumber,places.internationalPhoneNumber,places.websiteUri,places.googleMapsUri,places.rating,places.userRatingCount,places.businessStatus,places.types,places.id"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c0002a96-8e2c-4b07-bf5a-4c0d8c6f3b5a",
      "name": "Dividir resultados",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1920,
        144
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "places"
      },
      "typeVersion": 1
    },
    {
      "id": "576b96c6-82cd-4bc3-8553-4360c5083f42",
      "name": "Formatear datos de leads",
      "type": "n8n-nodes-base.set",
      "position": [
        2368,
        144
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "name_assignment",
              "name": "businessName",
              "type": "string",
              "value": "={{ $json.displayName?.text || 'N/A' }}"
            },
            {
              "id": "address_assignment",
              "name": "address",
              "type": "string",
              "value": "={{ $json.formattedAddress || 'N/A' }}"
            },
            {
              "id": "phone_assignment",
              "name": "phone",
              "type": "string",
              "value": "={{ $json.nationalPhoneNumber || $json.internationalPhoneNumber || 'N/A' }}"
            },
            {
              "id": "website_assignment",
              "name": "website",
              "type": "string",
              "value": "={{ $json.websiteUri || 'N/A' }}"
            },
            {
              "id": "gmaps_assignment",
              "name": "googleMapsUrl",
              "type": "string",
              "value": "={{ $json.googleMapsUri || 'N/A' }}"
            },
            {
              "id": "rating_assignment",
              "name": "rating",
              "type": "string",
              "value": "={{ $json.rating || 'N/A' }}"
            },
            {
              "id": "reviews_assignment",
              "name": "totalReviews",
              "type": "number",
              "value": "={{ $json.userRatingCount || 0 }}"
            },
            {
              "id": "status_assignment",
              "name": "businessStatus",
              "type": "string",
              "value": "={{ $json.businessStatus || 'UNKNOWN' }}"
            },
            {
              "id": "types_assignment",
              "name": "businessTypes",
              "type": "string",
              "value": "={{ $json.types?.join(', ') || 'N/A' }}"
            },
            {
              "id": "place_assignment",
              "name": "placeId",
              "type": "string",
              "value": "={{ $json.id || 'N/A' }}"
            },
            {
              "id": "search_assignment",
              "name": "searchQuery",
              "type": "string",
              "value": "={{ $('Prepare Search Data Set').item.json.businessType }}"
            },
            {
              "id": "search_location_assignment",
              "name": "searchLocation",
              "type": "string",
              "value": "={{ $('Prepare Search Data Set').item.json.locationName }}"
            },
            {
              "id": "timestamp_assignment",
              "name": "scrapedAt",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a3cc811c-b586-4adf-8e15-840c0bbc913c",
      "name": "Configuraciones de extracción",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        800,
        144
      ],
      "webhookId": "0257ee5d-0603-4bf5-92cf-7fc446f6c928",
      "parameters": {
        "options": {},
        "formTitle": "Generate Leads",
        "formFields": {
          "values": [
            {
              "fieldLabel": "What is the Search Term?",
              "requiredField": true
            },
            {
              "fieldLabel": "What is your Location?",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Max Results?",
              "requiredField": true
            },
            {
              "fieldLabel": "Google Maps API Key"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "2cd4749f-118e-41ae-899f-19ccde3b2dfe",
      "name": "Conjunto principal",
      "type": "n8n-nodes-base.set",
      "position": [
        1024,
        144
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0ce4b0e7-3ce5-4b38-bc49-9fd58be31e3b",
              "name": "location",
              "type": "string",
              "value": "={{ $json['What is your Location?'] }}"
            },
            {
              "id": "83741282-8c5d-46fa-9f3b-7065bf2bb4eb",
              "name": "googleApiKey",
              "type": "string",
              "value": "={{ $json['Google Maps API Key'] }}"
            },
            {
              "id": "be691e08-0b6b-43d8-8ec8-a50481618c94",
              "name": "maxResults",
              "type": "string",
              "value": "={{ $json['Max Results?'] }}"
            },
            {
              "id": "6f4b30a2-e0fb-40d5-a00b-6bf4c80494e3",
              "name": "businessType",
              "type": "string",
              "value": "={{ $json['What is the Search Term?'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "44c4721a-4609-4ea2-8aa1-73ee4286cd8d",
      "name": "Preparar conjunto de datos de búsqueda",
      "type": "n8n-nodes-base.set",
      "position": [
        1472,
        144
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "lat_assignment",
              "name": "latitude",
              "type": "number",
              "value": "={{ $json.results[0].geometry.location.lat }}"
            },
            {
              "id": "lng_assignment",
              "name": "longitude",
              "type": "number",
              "value": "={{ $json.results[0].geometry.location.lng }}"
            },
            {
              "id": "business_assignment",
              "name": "businessType",
              "type": "string",
              "value": "={{ $('Main Set').item.json.businessType }}"
            },
            {
              "id": "api_assignment",
              "name": "googleApiKey",
              "type": "string",
              "value": "={{ $('Main Set').item.json.googleApiKey }}"
            },
            {
              "id": "max_assignment",
              "name": "maxResults",
              "type": "string",
              "value": "={{ $('Main Set').item.json.maxResults }}"
            },
            {
              "id": "location_assignment",
              "name": "locationName",
              "type": "string",
              "value": "={{ $('Main Set').item.json.location }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e0b810cf-2146-47dd-8800-c9a7f866e7fc",
      "name": "Si el lead es válido",
      "type": "n8n-nodes-base.if",
      "position": [
        2144,
        144
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "3f7e701a-3b1e-4f4a-b47f-63e832d8b01a",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.nationalPhoneNumber }}",
              "rightValue": ""
            },
            {
              "id": "2cebb6b9-d612-46da-b541-bb58a00a15b4",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.websiteUri }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "82447bb9-f0a8-45fa-bba5-96c93a7ffcbd",
      "name": "Agregar fila en hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2592,
        144
      ],
      "parameters": {
        "columns": {
          "value": {
            "Phone": "={{ $json.phone }}",
            "Rating": "={{ $json.rating }}",
            "Address": "={{ $json.address }}",
            "Website": "={{ $json.website }}",
            "Place ID": "={{ $json.placeId }}",
            "Scraped At": "={{ $json.scrapedAt }}",
            "Search Query": "={{ $json.searchQuery }}",
            "Business Name": "={{ $json.businessName }}",
            "Total Reviews": "={{ $json.totalReviews }}",
            "Business Types": "={{ $json.businessTypes }}",
            "Business Status": "={{ $json.businessStatus }}",
            "Google Maps URL": "={{ $json.googleMapsUrl }}",
            "Search location": "={{ $json.searchLocation }}"
          },
          "schema": [
            {
              "id": "Business Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Business Name",
              "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": "Google Maps URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Google Maps URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Rating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Total Reviews",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Total Reviews",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Types",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Business Types",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Business Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Place ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Place ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Search Query",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Search Query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Search location",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Search location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Scraped At",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Scraped At",
              "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/1701dkUJszfL2ey5tC55NBMmN4CRHy2cmBC4gZqkk8eU/edit#gid=0",
          "cachedResultName": "Leads"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1701dkUJszfL2ey5tC55NBMmN4CRHy2cmBC4gZqkk8eU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1701dkUJszfL2ey5tC55NBMmN4CRHy2cmBC4gZqkk8eU/edit?usp=drivesdk",
          "cachedResultName": "Leads Generation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Gs7mfT220sbLQ7PS",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a8c39d79-4fc0-49ec-b0e3-51ea9a48f9a6",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        -112
      ],
      "parameters": {
        "width": 624,
        "height": 176,
        "content": "## Generate Leads from Google Maps\nOfficial way to generate leads using Google Maps, using the Google Maps API Key.\n\nGenerate Niche-Specific Leads by filling up the business type, location you're targeting, max number of leads, and your google maps API key as the form input."
      },
      "typeVersion": 1
    },
    {
      "id": "b2ae012e-786d-4bfc-9ad8-755af1680c16",
      "name": "Nota adhesiva 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        -112
      ],
      "parameters": {
        "color": 5,
        "width": 448,
        "height": 176,
        "content": "## User Input & Search\nFill out the form with your search term (business type), location, and Google Maps API key. The workflow converts your location to coordinates and then finds businesses matching your criteria within the specified area."
      },
      "typeVersion": 1
    },
    {
      "id": "15adb718-89ba-4b67-8075-ad51fcd47da2",
      "name": "Nota adhesiva 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        -112
      ],
      "parameters": {
        "color": 4,
        "width": 448,
        "height": 176,
        "content": "## Leads Validation & Storage\nThe workflow checks each found business for valid contact info, organizes details, and automatically adds each valid lead to the Google Sheet."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "2cd4749f-118e-41ae-899f-19ccde3b2dfe": {
      "main": [
        [
          {
            "node": "9e017f9b-517c-4e4d-b887-26bd694d1f4b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c0002a96-8e2c-4b07-bf5a-4c0d8c6f3b5a": {
      "main": [
        [
          {
            "node": "e0b810cf-2146-47dd-8800-c9a7f866e7fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "576b96c6-82cd-4bc3-8553-4360c5083f42": {
      "main": [
        [
          {
            "node": "82447bb9-f0a8-45fa-bba5-96c93a7ffcbd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e0b810cf-2146-47dd-8800-c9a7f866e7fc": {
      "main": [
        [
          {
            "node": "576b96c6-82cd-4bc3-8553-4360c5083f42",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a3cc811c-b586-4adf-8e15-840c0bbc913c": {
      "main": [
        [
          {
            "node": "2cd4749f-118e-41ae-899f-19ccde3b2dfe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0dce7f8f-7df8-4a84-94e4-a45443c2d93e": {
      "main": [
        [
          {
            "node": "c0002a96-8e2c-4b07-bf5a-4c0d8c6f3b5a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "44c4721a-4609-4ea2-8aa1-73ee4286cd8d": {
      "main": [
        [
          {
            "node": "0dce7f8f-7df8-4a84-94e4-a45443c2d93e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e017f9b-517c-4e4d-b887-26bd694d1f4b": {
      "main": [
        [
          {
            "node": "44c4721a-4609-4ea2-8aa1-73ee4286cd8d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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?

Intermedio - Generación de leads

¿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

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos12
Categoría1
Tipos de nodos7
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34