{"workflow":{"id":13657,"name":"Automate Real Estate Listing Scraper 🏠🤖 with ScrapeGraph AI and Google Sheets","views":399,"recentViews":2,"totalViews":399,"createdAt":"2026-02-24T13:40:18.342Z","description":"This workflow automates the process of **scraping real estate property listings** from websites using **ScrapeGraph AI**, extracting structured data, and saving it to a **Google Sheet**. It is designed to handle paginated listing pages and can be adapted to any real estate site that uses URL parameters for pagination.\n\nNOTE:\nThis workflow has been tested with Immobiliare.it, the #1 real estate website in Italy. However, it is designed to be adaptable by modifying the pagination parameter and the listing URL pattern, you can use it with **any real estate website** that structures its listings with URL-based pagination.\n\nBusiness Use Cases:\n\n* Real estate market intelligence\n* Lead generation for agencies\n* Price trend analysis\n* Property comparison dashboards\n* CRM enrichment\n* Competitor monitoring\n\n---\n\n### Key Advantages\n\n#### 1. ✅ Fully Automated Lead Collection\n\nAutomatically collects real estate listings without manual browsing.\n\n#### 2. ✅ AI-Powered Extraction\n\nUses AI instead of rigid selectors:\n\n* More resilient to website layout changes\n* Handles dynamic content better\n* Reduces maintenance effort\n\n\n#### 3. ✅ Structured Data Output\n\nThe defined JSON schema ensures:\n\n* Clean database-ready data\n* Standardized fields\n* Easy integration with CRM or analytics tools\n\n\n#### 4. ✅ Pagination Scalability\n\nCan easily scale:\n\n* Increase number of pages\n* Change city\n* Adapt to different portals\n\n\n#### 5. ✅ Duplicate Prevention\n\nGoogle Sheets uses URL matching to:\n\n* Avoid duplicates\n* Update existing records\n\n\n#### 6. ✅ Modular Architecture\n\nThe workflow is modular and reusable:\n\n* URL generation logic is independent\n* Extraction schema is customizable\n* Storage layer can be replaced (CRM, database, Airtable, etc.)\n\n\n#### 7. ✅ Cost & Time Efficiency\n\n* Eliminates manual data entry\n* Saves research time\n* Enables automated market monitoring\n\n---\n\n\n### **How it works**\n\nThe workflow is structured in two main phases:\n\n1. **Listing URL Discovery**  \n   - The user provides a base URL, the maximum number of pages to scrape, and the pagination parameter name (e.g., `pag` for Immobiliare.it).  \n   - A Code node generates a list of page URLs by appending the pagination parameter.  \n   - Each page URL is processed through the **ScrapegraphAI** node, which extracts all individual listing URLs.  \n   - An **Information Extractor** node (powered by Google Gemini) filters and validates the extracted URLs based on a defined structure.  \n   - A **Wait** node introduces a delay between requests to avoid rate limiting.  \n   - A **Loop Over Items** node ensures all generated page URLs are processed.\n\n2. **Data Extraction & Storage**  \n   - All collected listing URLs are aggregated and split into individual items.  \n   - A second loop processes each listing URL through another **ScrapegraphAI** node, which extracts detailed property data (title, description, price, area, bedrooms, bathrooms, floor, rooms, balcony, terrace, cellar, heating, air conditioning, image URLs) based on a JSON schema.  \n   - The extracted data is then written to a Google Sheet using the **Google Sheets** node, with each listing stored in a new row and deduplicated based on the listing URL.\n\nThe workflow is fully automated and can scale to handle multiple listing pages and hundreds of individual property URLs.\n\n---\n\n### **Set up steps**\n\nTo use this workflow, follow these steps:\n\n1. **Import the workflow** into your n8n instance.\n\n2. **Configure credentials**:\n   - **ScrapegraphAI**: Add your [API key for ScrapegraphAI](https://dashboard.scrapegraphai.com/?via=n3witalia).\n   - **Google Gemini (PaLM)**: Add your Google Gemini API credentials.\n   - **Google Sheets OAuth2**: Authenticate with the Google account where you want to store the data.\n\n3. **Prepare your target Google Sheet**:\n   - Create a new Google Sheet (or clone [this template](https://docs.google.com/spreadsheets/d/1jtMyMglBbekD9Z407q8-0vn-cDDXhM81Uj1oAZIJGX8/edit?usp=sharing)).\n   - Note the **Sheet ID** (from the URL) and the **sheet name** (tab name) where data should be written.\n\n4. **Customize the input parameters**:\n   - In the **Set params** node, define:\n     - `url`: The base URL of the listing page (without pagination parameters).\n     - `max_pages`: The number of pages to scrape.\n     - `page_format_value`: The query parameter used for pagination (e.g., `pag` for Immobiliare.it).\n\n5. **Adjust the listing URL structure** (if needed):\n   - In the **Extract individual URL** node, update the system prompt to match the URL pattern of the target website (e.g., `https://www.xxx.it/xxx/xxxx`).\n\n6. **Review the output schema**:\n   - In the **Extract data** node, you can modify the JSON schema to match the fields you want to extract from each listing.\n\n7. **Update the Google Sheet node**:\n   - Set the correct **Document ID** and **Sheet Name** in the **Update real estate listings** node.\n   - Ensure the column mapping matches your sheet structure.\n\n8. **Activate the workflow** and click **Execute Workflow** to start scraping.\n\n---\n\n👉 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I’ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![image](https://n3wstorage.b-cdn.net/n3witalia/youtube-n8n-cover.jpg)](https://youtube.com/@n3witalia)\n\n\n---\n\n### **Need help customizing?**  \n[Contact me](mailto:info@n3w.it) for consulting and support or add me on [Linkedin](https://www.linkedin.com/in/davideboizza/). ","workflow":{"id":"IN1YGvwzaDENKsGw","meta":{"instanceId":"a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462","templateCredsSetupCompleted":true},"name":"Real Estate Listing Scraper","tags":[],"nodes":[{"id":"99554a23-7a31-499f-aa9b-73b33b4675c6","name":"When clicking ‘Execute workflow’","type":"n8n-nodes-base.manualTrigger","position":[-416,-112],"parameters":{},"typeVersion":1},{"id":"be3522b5-012f-4cf9-b3ea-0e671e3cad96","name":"Loop Over Items","type":"n8n-nodes-base.splitInBatches","position":[480,-112],"parameters":{"options":{"reset":false}},"typeVersion":3},{"id":"1374ac98-2bc3-4975-9636-b9a3174c1668","name":"Split Out","type":"n8n-nodes-base.splitOut","position":[256,-112],"parameters":{"options":{},"fieldToSplitOut":"generated_urls"},"typeVersion":1},{"id":"e98a9d0e-810a-4b26-bc52-74c0c180e739","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[736,-480],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"output"}]}},"typeVersion":1},{"id":"8dbe762f-8ad4-484b-b43e-97ed6f802057","name":"Split Out1","type":"n8n-nodes-base.splitOut","position":[1216,-480],"parameters":{"options":{},"fieldToSplitOut":"unified_output"},"typeVersion":1},{"id":"d13ea647-f536-42bb-883d-c4b7fbd2e070","name":"Limit","type":"n8n-nodes-base.limit","disabled":true,"position":[1440,-480],"parameters":{"maxItems":3},"typeVersion":1},{"id":"1ebd384c-14fd-43cd-a319-755e05e2134c","name":"Loop Over Items1","type":"n8n-nodes-base.splitInBatches","position":[1744,-480],"parameters":{"options":{}},"typeVersion":3},{"id":"3f0c23dd-64d2-4018-b18f-0fc39d0fddef","name":"Google Gemini Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[976,96],"parameters":{"options":{}},"credentials":{"googlePalmApi":{"id":"AaNPKXAphyMzRgfA","name":"Google Gemini(PaLM) (Eure)"}},"typeVersion":1},{"id":"c8988b87-be21-4b6c-859c-fe6ed7cf9c7c","name":"Wait","type":"n8n-nodes-base.wait","position":[1440,-96],"webhookId":"5d7c447f-1b2e-4c45-a80f-2394c722b128","parameters":{"amount":10},"typeVersion":1.1},{"id":"8e5019f7-56a8-4051-8472-e993ed689118","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1664,-640],"parameters":{"color":7,"width":864,"height":384,"content":"## STEP 4 - extracts detailed property\nClone [this Sheet](https://docs.google.com/spreadsheets/d/1jtMyMglBbekD9Z407q8-0vn-cDDXhM81Uj1oAZIJGX8/edit?usp=sharing). Then processes each listing URL through another **ScrapegraphAI** node, which extracts detailed property data (title, description, price, area, bedrooms, bathrooms, floor, rooms, balcony, terrace, cellar, heating, air conditioning, image URLs) based on a JSON schema. "},"typeVersion":1},{"id":"9bf77a4f-0f8d-4eca-83f0-d77ae9bdad45","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-288,-304],"parameters":{"color":7,"width":496,"height":464,"content":"## STEP 1 - Config Params\nEnter the GET pagination parameter. For example, for immobiliare_it, if the paginated URL is:\n\n`https://www.immobiliare.it/vendita-case/verona/?pag=2`\n\nthen the `page_format_value` field should be set to `pag`.\n"},"typeVersion":1},{"id":"6c34eee1-bf6f-4e38-a103-c1a081a6106e","name":"Set params","type":"n8n-nodes-base.set","position":[-192,-112],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8af8b6b-d121-4887-a739-f6dbcd871802","name":"url","type":"string","value":"https://www.immobiliare.it/vendita-case/verona/"},{"id":"1890a580-64ce-4530-96a1-72c5a7142672","name":"max_pages","type":"string","value":"2"},{"id":"f3abf556-33e1-4a68-b503-0ccad96c6fba","name":"page_format_value","type":"string","value":"pag"}]}},"typeVersion":3.4},{"id":"f0eb8938-4799-430a-879f-09c052c8f90d","name":"Generate Urls","type":"n8n-nodes-base.code","position":[32,-112],"parameters":{"jsCode":"for (const item of $input.all()) {\n  \n  const baseUrl = item.json.url;\n  const maxPages = parseInt(item.json.max_pages, 10);\n  const pageFormatValue=item.json.page_format_value;\n  \n  const urls = [];\n\n  for (let i = 1; i <= maxPages; i++) {\n    urls.push(`${baseUrl}&${pageFormatValue}=${i}`);\n  }\n\n  item.json.generated_urls = urls;\n}\n\nreturn $input.all();\n"},"typeVersion":2},{"id":"95f6bc78-c36c-4d9e-a1f9-95827b919349","name":"Scrape listings","type":"n8n-nodes-scrapegraphai.scrapegraphAi","position":[736,-96],"parameters":{"userPrompt":"=You are an expert extraction algorithm.\nYou must extract the URLs of individual listings.\nThe listings have the following structure:\n`https://www.XXX.it/annunci/xxxx`\n\nIf the page does not contain URLs of this type, return an empty array.","websiteUrl":"={{ $json.generated_urls }}"},"credentials":{"scrapegraphAIApi":{"id":"EOxCPnl9IynxgpyB","name":"ScrapegraphAI account"}},"typeVersion":1},{"id":"91bef7eb-4e07-4413-960b-d87c73045aee","name":"Extract individual URL","type":"@n8n/n8n-nodes-langchain.informationExtractor","position":[1024,-96],"parameters":{"text":"={{ JSON.stringify($json) }}","options":{"systemPromptTemplate":"You are an expert extraction algorithm.\nYou must extract the URLs of individual listings.\nThe listings have the following structure:\n`https://www.immobiliare.it/annunci/xxxx`\n\nIf the page does not contain URLs of this type, return an empty array.\n"},"schemaType":"manual","inputSchema":"{\n\t\"type\": \"array\",\n\t\"properties\": {\n\t\t\"url\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"},"typeVersion":1.2},{"id":"4b369167-05a1-43ce-9b0a-0a997f58a119","name":"Unified","type":"n8n-nodes-base.code","position":[976,-480],"parameters":{"jsCode":"const items = $input.all();\n\nconst unified = items\n  .flatMap(item => item.json.output || [])\n  .flat();\n\nreturn [\n  {\n    json: {\n      unified_output: unified\n    }\n  }\n];\n"},"typeVersion":2},{"id":"79f0f797-6561-46fb-b114-1a108e64092a","name":"Extract data","type":"n8n-nodes-scrapegraphai.scrapegraphAi","position":[2000,-464],"parameters":{"userPrompt":"=Extract all useful property data, including the title, the full description, the listing reference, and all property image URLs.","websiteUrl":"={{ $json.unified_output }}","outputSchema":"{\n  \"type\": \"array\",\n  \"title\": \"RealEstateSchema\",\n  \"properties\": {\n    \"title\": {\n      \"type\": \"string\",\n      \"description\": \"Title of the real estate listing\"\n    },\n    \"description\": {\n      \"type\": \"string\",\n      \"description\": \"Full description of the property\"\n    },\n    \"reference\": {\n      \"type\": \"string\",\n      \"description\": \"Listing identification code\"\n    },\n    \"price\": {\n      \"type\": \"number\",\n      \"description\": \"Property price in numeric format\"\n    },\n    \"area\": {\n      \"type\": \"number\",\n      \"description\": \"Property size in square meters\"\n    },\n    \"bedrooms\": {\n      \"type\": \"integer\",\n      \"description\": \"Number of bedrooms\"\n    },\n    \"bathrooms\": {\n      \"type\": \"integer\",\n      \"description\": \"Number of bathrooms\"\n    },\n    \"floor\": {\n      \"type\": \"string\",\n      \"description\": \"Property floor level(s)\"\n    },\n    \"rooms\": {\n      \"type\": \"integer\",\n      \"description\": \"Total number of rooms\"\n    },\n    \"balcony\": {\n      \"type\": \"string\",\n      \"description\": \"Balcony availability (e.g. Yes/No)\"\n    },\n    \"terrace\": {\n      \"type\": \"string\",\n      \"description\": \"Terrace availability (e.g. Yes/No)\"\n    },\n    \"cellar\": {\n      \"type\": \"string\",\n      \"description\": \"Cellar availability (e.g. Yes/No)\"\n    },\n    \"heating\": {\n      \"type\": \"string\",\n      \"description\": \"Type of heating system\"\n    },\n    \"air_conditioning\": {\n      \"type\": \"string\",\n      \"description\": \"Type of air conditioning system\"\n    },\n    \"image_urls\": {\n      \"type\": \"array\",\n      \"description\": \"List of property image URLs\",\n      \"items\": {\n        \"type\": \"string\",\n        \"format\": \"uri\"\n      }\n    }\n  },\n  \"required\": [\n    \"title\",\n    \"description\",\n    \"price\",\n    \"area\"\n  ]\n}","renderHeavyJs":true,"useOutputSchema":true},"credentials":{"scrapegraphAIApi":{"id":"EOxCPnl9IynxgpyB","name":"ScrapegraphAI account"}},"typeVersion":1},{"id":"3b63d958-03c0-41f3-b0ad-98ade0d1803c","name":"Update real estate listings","type":"n8n-nodes-base.googleSheets","position":[2256,-464],"parameters":{"columns":{"value":{"URL":"={{ $json.website_url }}","AREA":"={{ $json.result.items[0].area }}","FLOOR":"={{ $json.result.items[0].floor }}","PROCE":"={{ $json.result.items[0].price }}","ROOMS":"={{ $json.result.items[0].rooms }}","TITLE":"={{ $json.result.items[0].title }}","CELLAR":"={{ $json.result.items[0].cellar }}","BALCONY":"={{ $json.result.items[0].balcony }}","HEATING":"={{ $json.result.items[0].heating }}","BEDROOMS":"={{ $json.result.items[0].bedrooms }}","TERRANCE":"={{ $json.result.items[0].terrace }}","BATHROOMS":"={{ $json.result.items[0].bathrooms }}","REFERENCE":"={{ $json.result.items[0].reference }}","IMAGE URLS":"={{ JSON.stringify($json.result.items[0].image_urls) }}","DESCRIPTION":"={{ $json.result.items[0].description }}","AIR_CONDITIONING":"={{ $json.result.items[0].air_conditioning }}"},"schema":[{"id":"URL","type":"string","display":true,"removed":false,"required":false,"displayName":"URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"TITLE","type":"string","display":true,"required":false,"displayName":"TITLE","defaultMatch":false,"canBeUsedToMatch":true},{"id":"DESCRIPTION","type":"string","display":true,"required":false,"displayName":"DESCRIPTION","defaultMatch":false,"canBeUsedToMatch":true},{"id":"REFERENCE","type":"string","display":true,"required":false,"displayName":"REFERENCE","defaultMatch":false,"canBeUsedToMatch":true},{"id":"PROCE","type":"string","display":true,"required":false,"displayName":"PROCE","defaultMatch":false,"canBeUsedToMatch":true},{"id":"AREA","type":"string","display":true,"required":false,"displayName":"AREA","defaultMatch":false,"canBeUsedToMatch":true},{"id":"BEDROOMS","type":"string","display":true,"required":false,"displayName":"BEDROOMS","defaultMatch":false,"canBeUsedToMatch":true},{"id":"BATHROOMS","type":"string","display":true,"required":false,"displayName":"BATHROOMS","defaultMatch":false,"canBeUsedToMatch":true},{"id":"FLOOR","type":"string","display":true,"required":false,"displayName":"FLOOR","defaultMatch":false,"canBeUsedToMatch":true},{"id":"ROOMS","type":"string","display":true,"required":false,"displayName":"ROOMS","defaultMatch":false,"canBeUsedToMatch":true},{"id":"BALCONY","type":"string","display":true,"required":false,"displayName":"BALCONY","defaultMatch":false,"canBeUsedToMatch":true},{"id":"TERRANCE","type":"string","display":true,"required":false,"displayName":"TERRANCE","defaultMatch":false,"canBeUsedToMatch":true},{"id":"CELLAR","type":"string","display":true,"required":false,"displayName":"CELLAR","defaultMatch":false,"canBeUsedToMatch":true},{"id":"HEATING","type":"string","display":true,"required":false,"displayName":"HEATING","defaultMatch":false,"canBeUsedToMatch":true},{"id":"AIR_CONDITIONING","type":"string","display":true,"required":false,"displayName":"AIR_CONDITIONING","defaultMatch":false,"canBeUsedToMatch":true},{"id":"IMAGE URLS","type":"string","display":true,"required":false,"displayName":"IMAGE URLS","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["URL"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1jtMyMglBbekD9Z407q8-0vn-cDDXhM81Uj1oAZIJGX8/edit#gid=0","cachedResultName":"Foglio1"},"documentId":{"__rl":true,"mode":"list","value":"1jtMyMglBbekD9Z407q8-0vn-cDDXhM81Uj1oAZIJGX8","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1jtMyMglBbekD9Z407q8-0vn-cDDXhM81Uj1oAZIJGX8/edit?usp=drivesdk","cachedResultName":"Real Estate listing"}},"credentials":{"googleSheetsOAuth2Api":{"id":"JYR6a64Qecd6t8Hb","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"e2c1f45b-41a4-437f-9271-861e09480ac2","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[688,-1456],"parameters":{"width":944,"height":784,"content":"# Automate Real Estate Listing Scraper with ScrapeGraph AI and Google Sheets\nThis workflow automates the process of **scraping real estate property listings** from websites using **ScrapeGraph AI**, extracting structured data, and saving it to a **Google Sheet**. It is designed to handle paginated listing pages and can be adapted to any real estate site that uses URL parameters for pagination.\n\nNOTE:\nThis workflow has been tested with Immobiliare_it, the #1 real estate website in Italy. However, it is designed to be adaptable by modifying the pagination parameter and the listing URL pattern, you can use it with **any real estate website** that structures its listings with URL-based pagination.\n\n### **How it works:**\n\nThe workflow operates in two structured phases: **listing URL discovery** and **data extraction & storage**. First, a Code node generates paginated listing URLs using a base URL, maximum page count, and pagination parameter. Each page is processed by **ScrapeGraphAI** to extract individual property URLs, which are validated and structured using a Google Gemini-powered Information Extractor. A Wait node controls request pacing, and looping ensures all pages are processed safely.\n\nIn the second phase, collected listing URLs are aggregated and iterated individually. ScrapeGraphAI extracts structured property data (price, area, rooms, features, images, etc.) according to a defined JSON schema. The results are written to **Google Sheets**, where records are deduplicated based on listing URL. The modular design enables scalability, schema customization, and storage replacement.\n\n### **Setup steps:**\n\nStart by importing the workflow into n8n and configuring required credentials: **ScrapeGraphAI API**, **Google Gemini API**, and **Google Sheets OAuth2**. Prepare a Google Sheet (or clone the template), then note the **Document ID** and **Sheet Name** for configuration.\n\nIn the **Set params** node, define the base listing URL, pagination parameter (e.g., `pag`), and number of pages to scrape. If needed, update the listing URL pattern in the **Extract individual URL** node and adjust the JSON schema in the **Extract data** node to match your target fields. Finally, configure the Google Sheets node with correct column mappings, activate the workflow, and execute it to begin automated scraping and structured data collection.\n"},"typeVersion":1},{"id":"e4ec8d66-b283-473f-8b90-94650cf1afac","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[688,-224],"parameters":{"color":7,"width":944,"height":384,"content":"## STEP 2 - Extract Urls\n\nAll collected listing URLs are aggregated and split into individual items.\n"},"typeVersion":1},{"id":"724ed092-e7d8-4dc0-9a5e-0a60e40a6038","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[688,-640],"parameters":{"color":7,"width":944,"height":384,"content":"## STEP 3 - Extract Urls\n\nAll collected listing URLs are aggregated and split into individual items\n"},"typeVersion":1},{"id":"6c4562c2-b5da-4ce2-9275-53fd1aed994a","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[1680,-1408],"parameters":{"color":7,"width":736,"height":736,"content":"## MY NEW YOUTUBE CHANNEL\n👉 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I’ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![image](https://n3wstorage.b-cdn.net/n3witalia/youtube-n8n-cover.jpg)](https://youtube.com/@n3witalia)"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"c1b1f39f-2481-44a9-ab3c-a750cede2d35","connections":{"Wait":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Limit":{"main":[[{"node":"Loop Over Items1","type":"main","index":0}]]},"Unified":{"main":[[{"node":"Split Out1","type":"main","index":0}]]},"Aggregate":{"main":[[{"node":"Unified","type":"main","index":0}]]},"Split Out":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Set params":{"main":[[{"node":"Generate Urls","type":"main","index":0}]]},"Split Out1":{"main":[[{"node":"Limit","type":"main","index":0}]]},"Extract data":{"main":[[{"node":"Update real estate listings","type":"main","index":0}]]},"Generate Urls":{"main":[[{"node":"Split Out","type":"main","index":0}]]},"Loop Over Items":{"main":[[{"node":"Aggregate","type":"main","index":0}],[{"node":"Scrape listings","type":"main","index":0}]]},"Scrape listings":{"main":[[{"node":"Extract individual URL","type":"main","index":0}]]},"Loop Over Items1":{"main":[[],[{"node":"Extract data","type":"main","index":0}]]},"Extract individual URL":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Google Gemini Chat Model1":{"ai_languageModel":[[{"node":"Extract individual URL","type":"ai_languageModel","index":0}]]},"Update real estate listings":{"main":[[{"node":"Loop Over Items1","type":"main","index":0}]]},"When clicking ‘Execute workflow’":{"main":[[{"node":"Set params","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":22,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.limit":{"count":1},"n8n-nodes-base.splitOut":{"count":2},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.googleSheets":{"count":1},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":2},"n8n-nodes-scrapegraphai.scrapegraphAi":{"count":2},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1},"@n8n/n8n-nodes-langchain.informationExtractor":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Davide Boizza","username":"n3witalia","bio":"Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza and Youtube.com/@n3witalia","verified":true,"links":["https://n3w.it"],"avatar":"https://gravatar.com/avatar/d41b8a0aa81139243509c58870f5b4be292824a507ab57d10ed066d8628ed8da?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1237,"icon":"file:limit.svg","name":"n8n-nodes-base.limit","codex":{"data":{"alias":["Limit","Remove","Slice","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.limit/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Limit"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjMkZCNjdDIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcGF0aD0idXJsKCNhKSIgY2xpcC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNTEyIDQ1OGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMTUyLTIyMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYzMGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDI0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTk0YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6Ii8+PHBhdGggZD0iTTE0OS41NzcgMTQ2Ljk4MmM5LjM5OC05LjM0NiAyNC41OTQtOS4zMDQgMzMuOTQxLjA5NUwyNTYgMjE5Ljk2NGw3Mi40ODItNzIuODg3YzkuMzQ3LTkuMzk5IDI0LjU0My05LjQ0MSAzMy45NDEtLjA5NXM5LjQ0MSAyNC41NDMuMDk1IDMzLjk0MWwtODkuNSA5MGEyNCAyNCAwIDAgMS0zNC4wMzYgMGwtODkuNS05MGMtOS4zNDYtOS4zOTgtOS4zMDQtMjQuNTk0LjA5NS0zMy45NDFNMCAzNTBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0ODhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyeiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTEydjUxMkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg=="},"displayName":"Limit","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1273,"icon":"fa:project-diagram","name":"@n8n/n8n-nodes-langchain.informationExtractor","codex":{"data":{"alias":["NER","parse","parsing","JSON","data extraction","structured"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extractor/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Information Extractor"},"iconData":{"icon":"project-diagram","type":"icon"},"displayName":"Information Extractor","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":32,"name":"Market Research"},{"id":49,"name":"AI Summarization"}],"image":[]}}