{"id":"YZpFvpXOTYkBpiUU","meta":{"instanceId":"workflow-d8fbde86","versionId":"1.0.0","createdAt":"2025-09-29T07:07:54.428043","updatedAt":"2025-09-29T07:07:54.428056","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Extract Business Leads from Google Maps with Dumpling AI to Google Sheets","nodes":[{"id":"3a49e594-6c62-4128-825e-99cdfd7e6ed5","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-660,-200],"parameters":{"width":600,"height":700,"content":"#### 🔍 Workflow Goal\nAutomatically search Google Maps using Dumpling AI based on a keyword (e.g., best restaurants in New York), extract results, and log them into a structured Google Sheet.\n\n## 🚀 Workflow Steps\n1. **Manual Trigger**\n   - Starts the workflow when testing manually.\n\n2. **Dumpling AI Google Search**\n   - Sends a POST request to Dumpling AI to search for locations on Google Maps based on your query.\n\n3. **Split Out Node**\n   - Breaks the `places[]` array into individual items so each result can be handled separately.\n\n4. **Google Sheets Node**\n   - Appends each place’s data (name, address, phone, website, rating, etc.) into a specific tab of your Google Sheets.\n\n##### 🧠 Notes\n- The search query is currently set to: `\"best+restaurants+in+New+York\"`\n- Output columns include rating, price level, website, phone, booking links, etc.\n- Each run consumes Dumpling AI credits per query.\n- You can customize search keywords or location in the HTTP Request body.\n\n#### ✅ Tip\nTo automate this regularly, change the trigger node to a **Schedule Trigger** and add dynamic query input using a **Set** or **Webhook** node.\n\n"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"0a4ee00a-19cf-4d1e-a145-b5c5619ce636","name":"Trigger: Manual Test Run","type":"n8n-nodes-base.manualTrigger","position":[0,120],"parameters":{},"typeVersion":1,"notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"id":"26fdb640-93a0-4312-beaf-4c07fff87751","name":"Search Google Maps via Dumpling AI","type":"n8n-nodes-base.httpRequest","position":[220,120],"parameters":{"url":"{{ $env.API_BASE_URL }}","method":"POST","options":{},"jsonBody":"={\n  \"query\": \"best+restaurants+in+New+York\", \n  \"language\": \"en\"\n}","sendBody":true,"specifyBody":"json","authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"xamyMqCpAech5BeT","name":"Header Auth account"}},"typeVersion":4.2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"d3fafc2c-0b9d-4e83-83aa-de24d11fc0e1","name":"Split Places List for Processing","type":"n8n-nodes-base.splitOut","position":[440,120],"parameters":{"options":{},"fieldToSplitOut":"places"},"typeVersion":1,"notes":"This splitOut node performs automated tasks as part of the workflow."},{"id":"83b48532-b1fb-4ab3-9596-6e96526bfd49","name":"Save Results to Google Sheet (Place Info)","type":"n8n-nodes-base.googleSheets","position":[660,120],"parameters":{"columns":{"value":{"type":"={{ $json.type }}","Name ":"={{ $json.title }}","rating":"={{ $json.rating }}","Address":"={{ $json.address }}","Website":"={{ $json.website }}","Position":"={{ $json.position }}","priceLevel":"={{ $json.priceLevel }}","Booking Link":"={{ $json.bookingLinks[0] }}","Phone number":"={{ $json.phoneNumber }}"},"schema":[{"id":"Name ","type":"string","display":true,"required":false,"displayName":"Name ","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Address","type":"string","display":true,"required":false,"displayName":"Address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"priceLevel","type":"string","display":true,"required":false,"displayName":"priceLevel","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"I use an HTTP request in n8n, I returned up to 10","type":"string","display":true,"removed":false,"required":false,"displayName":"I use an HTTP request in n8n, I returned up to 10","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Booking Link","type":"string","display":true,"required":false,"displayName":"Booking Link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Website","type":"string","display":true,"removed":false,"required":false,"displayName":"Website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Phone number","type":"string","display":true,"removed":false,"required":false,"displayName":"Phone number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Position","type":"string","display":true,"removed":false,"required":false,"displayName":"Position","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Google Maps"},"documentId":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Places"}},"credentials":{"googleSheetsOAuth2Api":{"id":"GaJqJHuS5mQxap7q","name":"Google Sheets account"}},"typeVersion":4.5,"notes":"This googleSheets node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"171ef405-bac6-42c0-a3c3-c28cb49ff21a","connections":{"Search Google Maps via Dumpling AI":{"main":[[],[],[],[],[],[],[],[],[]]},"Save Results to Google Sheet (Place Info)":{"main":[[]]}},"description":"Automated workflow: Extract Business Leads from Google Maps with Dumpling AI to Google Sheets. This workflow integrates 6 different services: stickyNote, httpRequest, splitOut, stopAndError, manualTrigger. It contains 8 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Extract Business Leads from Google Maps with Dumpling AI to Google Sheets. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}