{ "id": "GcSlNHOnN39cPhRA", "meta": { "instanceId": "workflow-79dac422", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:49.908564", "updatedAt": "2025-09-29T07:07:49.908583", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Google Search Engine Results Page Extraction with Bright Data", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "c40156b9-b7ba-449b-8362-f8b8cd27a36d", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 200, -440 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "d98ae28e-a94f-43a1-9bfe-362adbc61c69", "name": "Google Gemini Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 960, -240 ], "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": "984acfe6-acd7-4817-b2d5-6d2aab511bae", "name": "Summarization Chain", "type": "n8n-nodes-base.noOp", "position": [ 1320, -440 ], "parameters": { "options": {} }, "typeVersion": 2, "notes": "This chainSummarization node performs automated tasks as part of the workflow." }, { "id": "6b5e26bf-8802-40d4-bc44-62c086c00f7c", "name": "Google Gemini Chat Model For Summarization", "type": "n8n-nodes-base.noOp", "position": [ 1320, -260 ], "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": "1669f59a-eff8-41ad-a6eb-758eec7ed74a", "name": "Google Gemini Chat Model1", "type": "n8n-nodes-base.noOp", "position": [ 1620, -200 ], "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": "ad6c4a15-13e0-49fa-9048-bc1838ba0ef9", "name": "Webhook HTTP Request", "type": "n8n-nodes-base.noOp", "position": [ 1960, -200 ], "parameters": { "url": "{{ $env.WEBHOOK_URL }}", "method": "POST", "sendBody": true, "parametersBody": { "values": [ { "name": "search_summary", "value": "={{ $json.response.text }}", "valueProvider": "fieldValue" }, { "name": "search_result" } ] }, "toolDescription": "Extract the response and format a structured JSON response" }, "typeVersion": 1.1, "notes": "This toolHttpRequest node performs automated tasks as part of the workflow." }, { "id": "dc5985c2-02cd-47d0-b518-8dc9d8302998", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 220, -780 ], "parameters": { "width": 400, "height": 300, "content": "## Bright Data Google Search SERP (Search Engine Results Page)\n\nDeals with the Google Search using the Bright Data Web Scraper API.\n\nThe Information Extraction, Summarization and AI Agent are being used to demonstrate the usage of the N8N AI capabilities.\n\n**Please make sure to Set the Google Search Query and update the Webhook Notification URL**" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "38b1a20b-9d62-45d9-9399-0b927a6e882a", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 720, -780 ], "parameters": { "width": 480, "height": 300, "content": "## LLM Usages\n\nGoogle Gemini Flash Exp model is being used.\n\nGoogle Search Data Extractor using the n8n Infromation Extractor node.\n\nSummarization Chain is being used for the summarization of search results.\n\nThe AI Agent formats the search result and pushes it to the Webhook via HTTP Request" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "3019d6eb-cf84-43fd-bb98-f7eed6c9c75f", "name": "Google Search Data Extractor", "type": "n8n-nodes-base.noOp", "position": [ 960, -440 ], "parameters": { "text": "={{ $json.data }}", "options": { "systemPromptTemplate": "You are an expert HTML extractor. Your job is to analyze the search result and \nstrip out the html, css, scripts and produce a textual data." }, "attributes": { "attributes": [ { "name": "textual_response", "description": "Textual Response" } ] } }, "typeVersion": 1, "notes": "This informationExtractor node performs automated tasks as part of the workflow." }, { "id": "e82e62cf-6618-405a-943f-d2933771e051", "name": "Perform Google Search Request", "type": "n8n-nodes-base.httpRequest", "position": [ 720, -440 ], "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": "={{ $env.WEBHOOK_URL }}{{ encodeURI($json.search_query) }}" }, { "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": "0d4baa4c-4f6d-4bb2-8964-73d9cf2a391c", "name": "Google Search Expert AI Agent", "type": "n8n-nodes-base.noOp", "position": [ 1680, -440 ], "parameters": { "text": "=You are an expert Google Search Expert. You need to format the search result and push it to the Webhook via HTTP Request. Here is the search result - {{ $('Google Search Data Extractor').item.json.output.textual_response }}", "options": {}, "promptType": "define" }, "typeVersion": 1.8, "notes": "This agent node performs automated tasks as part of the workflow." }, { "id": "433d4369-f750-40bd-8e46-8368f535e99f", "name": "Set Google Search Query", "type": "n8n-nodes-base.set", "position": [ 440, -440 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "3aedba66-f447-4d7a-93c0-8158c5e795f9", "name": "search_query", "type": "string", "value": "Bright Data" }, { "id": "4e7ee31d-da89-422f-8079-2ff2d357a0ba", "name": "zone", "type": "string", "value": "serp_api1" } ] } }, "typeVersion": 3.4, "notes": "This set 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": "3573d57f-de02-4ce6-bfdf-5e83a8a5d7d0", "connections": { "ad6c4a15-13e0-49fa-9048-bc1838ba0ef9": { "main": [ [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-d31963e0", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-d5fd3247", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-b66a5b16", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-85545601", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-30ba2d71", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-d440e175", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-f74f05ea", "type": "main", "index": 0 } ], [ { "node": "error-handler-ad6c4a15-13e0-49fa-9048-bc1838ba0ef9-acb71610", "type": "main", "index": 0 } ] ] }, "e82e62cf-6618-405a-943f-d2933771e051": { "main": [ [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-c09b5b9d", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-414ba565", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-1ccfcd97", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-5add2739", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-0b864d92", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-5c1fed59", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-15dc27ba", "type": "main", "index": 0 } ], [ { "node": "error-handler-e82e62cf-6618-405a-943f-d2933771e051-67425ff2", "type": "main", "index": 0 } ] ] }, "d98ae28e-a94f-43a1-9bfe-362adbc61c69": { "main": [ [ { "node": "error-handler-d98ae28e-a94f-43a1-9bfe-362adbc61c69-61531b45", "type": "main", "index": 0 } ] ] }, "6b5e26bf-8802-40d4-bc44-62c086c00f7c": { "main": [ [ { "node": "error-handler-6b5e26bf-8802-40d4-bc44-62c086c00f7c-6474eaef", "type": "main", "index": 0 } ] ] }, "1669f59a-eff8-41ad-a6eb-758eec7ed74a": { "main": [ [ { "node": "error-handler-1669f59a-eff8-41ad-a6eb-758eec7ed74a-eb4dc3cf", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Google Search Engine Results Page Extraction with Bright Data. This workflow integrates 10 different services: stickyNote, httpRequest, toolHttpRequest, lmChatGoogleGemini, agent. It contains 19 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Google Search Engine Results Page Extraction with Bright Data. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }