{ "id": "cKFPrgXstN3JgdJs", "meta": { "instanceId": "workflow-36a9fe29", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:50.170384", "updatedAt": "2025-09-29T07:07:50.170434", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Extract & Summarize Yelp Business Review with Bright Data and Google Gemini", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "b7847e5b-1855-4bce-a9ba-123053085f99", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 340, -535 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "9bee5052-3aeb-4a76-a688-3128c20877ec", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 780, -820 ], "parameters": { "width": 420, "height": 220, "content": "## LLM Usages\n\nGoogle Gemini Flash Exp model is being used.\n\nBasic LLM Chain with the Output parser for building the structured data.\n\nSummarization Chain to summarize the structured response." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "ee05bcc3-0971-4e8c-9e2d-89708fc4ecf4", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 320, -820 ], "parameters": { "width": 400, "height": 220, "content": "## Note\n\nDeals with the Yelp Business Review data extraction using the Bright Data and LLM for structured data extraction and summarization.\n\n**Please make sure to update the \"Set Yelp URL with the Bright Data Zone\" and the Webhook Notification URL**" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "8917dd4e-75aa-4c51-ba80-577be3573578", "name": "Set Yelp URL with the Bright Data Zone", "type": "n8n-nodes-base.set", "notes": "Set the URL which you are interested to scrap the data", "position": [ 560, -535 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "1c132dd6-31e4-453b-a8cf-cad9845fe55b", "name": "url", "type": "string", "value": "{{ $env.API_BASE_URL }}" }, { "id": "0fa387df-2511-4228-b6aa-237cceb3e9c7", "name": "zone", "type": "string", "value": "web_unlocker1" } ] } }, "notesInFlow": true, "typeVersion": 3.4 }, { "id": "4cccab05-2584-4557-a58a-f92cbd67c67e", "name": "HTTP Request to fetch the Yelp Business Reviews", "type": "n8n-nodes-base.httpRequest", "position": [ 780, -535 ], "parameters": { "url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {}, "sendBody": true, "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "bodyParameters": { "parameters": [ { "name": "zone", "value": "={{ $json.zone }}" }, { "name": "url", "value": "={{ $json.url }}" }, { "name": "format", "value": "raw" } ] }, "genericAuthType": "httpHeaderAuth", "headerParameters": { "parameters": [ {} ] } }, "credentials": { "httpHeaderAuth": { "id": "kdbqXuxIR8qIxF7y", "name": "Header Auth account" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "5b39a992-1902-4afe-9cbb-2fca524a5272", "name": "Google Gemini Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 1000, -320 ], "parameters": { "options": {}, "modelName": "models/gemini-2.0-flash-exp" }, "credentials": { "googlePalmApi": { "id": "YeO7dHZnuGBVQKVZ", "name": "Google Gemini(PaLM) Api account" } }, "typeVersion": 1, "notes": "This lmChatGoogleGemini node performs automated tasks as part of the workflow." }, { "id": "dba8b9f8-0739-4f34-9c3a-41ad447c1dd3", "name": "Structured Output Parser", "type": "n8n-nodes-base.noOp", "position": [ 1160, -320 ], "parameters": { "jsonSchemaExample": "[\n {\n \"restaurant_name\": \"string\",\n \"location\": \"string\",\n \"average_rating\": \"float\",\n \"review_count\": \"int\",\n \"reviews\": [\n {\n \"reviewer\": \"string\",\n \"rating\": \"float\",\n \"date\": \"YYYY-MM-DD\",\n \"text\": \"string\"\n }\n ]\n }\n]" }, "typeVersion": 1.2, "notes": "This outputParserStructured node performs automated tasks as part of the workflow." }, { "id": "375dc3e5-02f4-499d-922d-31070188b864", "name": "Summarization Chain", "type": "n8n-nodes-base.noOp", "position": [ 1376, -660 ], "parameters": { "options": { "summarizationMethodAndPrompts": { "values": { "prompt": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n", "combineMapPrompt": "=Write a concise summary of the following:\n\n\n\n\n\nCONCISE SUMMARY: {{ $json.output }}" } } } }, "typeVersion": 2, "notes": "This chainSummarization node performs automated tasks as part of the workflow." }, { "id": "3846b2a2-a670-4264-9028-11c5f76770e8", "name": "Merge", "type": "n8n-nodes-base.merge", "position": [ 1760, -520 ], "parameters": {}, "typeVersion": 3.1, "notes": "This merge node performs automated tasks as part of the workflow." }, { "id": "5f617e4c-17c2-437b-8a7a-1cdab587c5dd", "name": "Webhook Notifier for the merged response", "type": "n8n-nodes-base.httpRequest", "position": [ 1972, -535 ], "parameters": { "url": "{{ $env.WEBHOOK_URL }}", "options": {}, "sendBody": true, "bodyParameters": { "parameters": [ { "name": "reviews", "value": "={{ $json.output }}" }, { "name": "summary", "value": "={{ $json.response.text }}" } ] } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "66bd58de-a235-43b3-bb3e-491644aaabd8", "name": "Google Gemini Chat Model for Summarization", "type": "n8n-nodes-base.noOp", "position": [ 1464, -440 ], "parameters": { "options": {}, "modelName": "models/gemini-2.0-flash-exp" }, "credentials": { "googlePalmApi": { "id": "YeO7dHZnuGBVQKVZ", "name": "Google Gemini(PaLM) Api account" } }, "typeVersion": 1, "notes": "This lmChatGoogleGemini node performs automated tasks as part of the workflow." }, { "id": "4bd63e0d-5f58-4232-b638-cede71a50f0f", "name": "Structured Data Extractor", "type": "n8n-nodes-base.noOp", "position": [ 1000, -535 ], "parameters": { "text": "=Summarize and analyze Yelp reviews {{ $json.data }}", "promptType": "define", "hasOutputParser": true }, "typeVersion": 1.6, "notes": "This chainLlm node performs automated tasks as part of the workflow." } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "32c41687-2a9b-4ab8-b7fb-a34e5111548a", "connections": { "4cccab05-2584-4557-a58a-f92cbd67c67e": { "main": [ [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-1307c0f7", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-4ae6264a", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-31a5ca01", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-bb4d7abc", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-700fa313", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-7cce76ad", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-ca6f7203", "type": "main", "index": 0 } ], [ { "node": "error-handler-4cccab05-2584-4557-a58a-f92cbd67c67e-44752503", "type": "main", "index": 0 } ] ] }, "5f617e4c-17c2-437b-8a7a-1cdab587c5dd": { "main": [ [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-56c163a8", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-cd946544", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-e251d70b", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-b2495d23", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-c14147df", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-b2fa7065", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-2f24be0b", "type": "main", "index": 0 } ], [ { "node": "error-handler-5f617e4c-17c2-437b-8a7a-1cdab587c5dd-49a2aee8", "type": "main", "index": 0 } ] ] }, "5b39a992-1902-4afe-9cbb-2fca524a5272": { "main": [ [ { "node": "error-handler-5b39a992-1902-4afe-9cbb-2fca524a5272-34ad8131", "type": "main", "index": 0 } ] ] }, "66bd58de-a235-43b3-bb3e-491644aaabd8": { "main": [ [ { "node": "error-handler-66bd58de-a235-43b3-bb3e-491644aaabd8-70c93545", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Extract & Summarize Yelp Business Review with Bright Data and Google Gemini. This workflow integrates 10 different services: stickyNote, httpRequest, lmChatGoogleGemini, chainLlm, outputParserStructured. It contains 18 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Extract & Summarize Yelp Business Review with Bright Data and Google Gemini. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }