AutomationFlowsAI & RAG › Extract Google SERP with Bright Data & Gemini

Extract Google SERP with Bright Data & Gemini

Original n8n title: Google Search Engine Results Page Extraction with Bright Data

Google Search Engine Results Page Extraction with Bright Data. Uses manualTrigger, lmChatGoogleGemini, chainSummarization, toolHttpRequest. Event-driven trigger; 12 nodes.

Event trigger★★★★☆ complexityAI-powered12 nodesGoogle Gemini ChatChain SummarizationTool Http RequestInformation ExtractorHTTP RequestAgent
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Chainsummarization recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "GcSlNHOnN39cPhRA",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Google Search Engine Results Page Extraction with Bright Data",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    }
  ],
  "nodes": [
    {
      "id": "c40156b9-b7ba-449b-8362-f8b8cd27a36d",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        200,
        -440
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d98ae28e-a94f-43a1-9bfe-362adbc61c69",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        960,
        -240
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "984acfe6-acd7-4817-b2d5-6d2aab511bae",
      "name": "Summarization Chain",
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "position": [
        1320,
        -440
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "6b5e26bf-8802-40d4-bc44-62c086c00f7c",
      "name": "Google Gemini Chat Model For Summarization",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1320,
        -260
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1669f59a-eff8-41ad-a6eb-758eec7ed74a",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1620,
        -200
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ad6c4a15-13e0-49fa-9048-bc1838ba0ef9",
      "name": "Webhook HTTP Request",
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "position": [
        1960,
        -200
      ],
      "parameters": {
        "url": "https://webhook.site/ce41e056-c097-48c8-a096-9b876d3abbf7",
        "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
    },
    {
      "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
    },
    {
      "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
    },
    {
      "id": "3019d6eb-cf84-43fd-bb98-f7eed6c9c75f",
      "name": "Google Search Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "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
    },
    {
      "id": "e82e62cf-6618-405a-943f-d2933771e051",
      "name": "Perform Google Search Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        720,
        -440
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "={{ $json.zone }}"
            },
            {
              "name": "url",
              "value": "=https://www.google.com/search?q={{ encodeURI($json.search_query) }}"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0d4baa4c-4f6d-4bb2-8964-73d9cf2a391c",
      "name": "Google Search Expert AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "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
    },
    {
      "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
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3573d57f-de02-4ce6-bfdf-5e83a8a5d7d0",
  "connections": {
    "Summarization Chain": {
      "main": [
        [
          {
            "node": "Google Search Expert AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook HTTP Request": {
      "ai_tool": [
        [
          {
            "node": "Google Search Expert AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Google Search Query": {
      "main": [
        [
          {
            "node": "Perform Google Search Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Google Search Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Google Search Expert AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Search Data Extractor": {
      "main": [
        [
          {
            "node": "Summarization Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Search Expert AI Agent": {
      "main": [
        []
      ]
    },
    "Perform Google Search Request": {
      "main": [
        [
          {
            "node": "Google Search Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Set Google Search Query",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model For Summarization": {
      "ai_languageModel": [
        [
          {
            "node": "Summarization Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

How this works

Efficiently extract and analyse Google search results without the hassle of manual scraping, saving hours of tedious data collection for market researchers, content creators, and business analysts. This workflow leverages Bright Data to fetch search engine results pages and Google Gemini to intelligently summarise and interpret the content, delivering actionable insights directly to your dashboard. The key step involves the AI-powered chain that processes raw SERP data through summarisation and extraction, transforming unstructured web information into structured, valuable outputs.

Use this workflow when you need quick, reliable SERP data for competitive analysis, keyword research, or trend monitoring, especially with high-volume or geo-specific searches. Avoid it for real-time applications requiring sub-second responses, as the event-driven processing adds slight latency; opt for direct API integrations instead. Common variations include adapting the prompt for sentiment analysis on results or chaining it with email notifications for automated reports.

About this workflow

Google Search Engine Results Page Extraction with Bright Data. Uses manualTrigger, lmChatGoogleGemini, chainSummarization, toolHttpRequest. Event-driven trigger; 12 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow is designed for professionals and teams who need real-time, structured insights from Google Search results without manual effort.

Google Gemini Chat, Chain Summarization, Tool Http Request +3
AI & RAG

Indeed Company Data Scraper & Summarization with Airtable, Bright Data and Google Gemini. Uses manualTrigger, lmChatGoogleGemini, toolHttpRequest, stickyNote. Event-driven trigger; 19 nodes.

Google Gemini Chat, Tool Http Request, HTTP Request +4
AI & RAG

Indeed Data Scraper & Summarization with Airtable, Bright Data and Google Gemini is an automated workflow that extracts company profile information from Indeed using Bright Data Web Unlocker, transfor

Google Gemini Chat, Tool Http Request, HTTP Request +4
AI & RAG

Extract & Summarize Indeed Company Info with Bright Data and Google Gemini. Uses manualTrigger, lmChatGoogleGemini, stickyNote, httpRequest. Event-driven trigger; 15 nodes.

Google Gemini Chat, HTTP Request, Agent +3
AI & RAG

Extract & Summarize Indeed Company Info is an automated workflow that extracts the Indeed company profile information using Bright Data Web Unlocker, transform it using Google Gemini’s LLM, and forwar

Google Gemini Chat, HTTP Request, Agent +3