{
  "workflow": {
    "id": 5971,
    "name": "Scrape local business directories with Bright Data & OpenAI for lead generation",
    "views": 1227,
    "recentViews": 0,
    "totalViews": 1227,
    "createdAt": "2025-07-13T19:02:55.889Z",
    "description": "*This workflow contains community nodes that are only compatible with the self-hosted version of n8n.*\n\nThis workflow automatically scrapes local business directories (Yelp, Yellow Pages, Google Maps, etc.) to build a structured database of prospects. Stop copying listings by hand—get fresh leads delivered straight to Google Sheets.\n\n## Overview\n\nUsing Bright Data, the automation fetches business names, contact details, ratings, and categories for a given city or ZIP code. OpenAI cleans and normalizes the data, while duplicate detection ensures each business appears only once. The result is emailed as a CSV and stored in Sheets for easy filtering.\n\n## Tools Used\n\n- **n8n** – Workflow orchestration\n- **Bright Data** – Handles large-scale directory scraping\n- **OpenAI** – Performs entity cleanup and deduplication\n- **Google Sheets** – Houses the resulting lead list\n- **Gmail** – Sends the CSV file to your inbox\n\n## How to Install\n\n1. **Import the Workflow**: Load the `.json` into n8n.\n2. **Configure Bright Data**: Add your credentials.\n3. **Set Up OpenAI**: Enter your API key.\n4. **Connect Google Sheets & Gmail**: Authorize both integrations.\n5. **Customize Locations & Categories**: Adjust parameters in the Start node.\n\n## Use Cases\n\n- **Local Lead Generation**: Build outreach lists for agencies or SaaS.\n- **Market Research**: Analyze density of businesses in a region.\n- **Franchise Expansion**: Identify potential partners within a territory.\n- **Startup Sales**: Discover SMBs that match your ICP.\n\n## Connect with Me\n\n- **Website**: https://www.nofluff.online\n- **YouTube**: https://www.youtube.com/@YaronBeen/videos\n- **LinkedIn**: https://www.linkedin.com/in/yaronbeen/\n- **Get Bright Data**: https://get.brightdata.com/1tndi4600b25 (Using this link supports my free workflows with a small commission)\n\n#n8n #automation #webscraping #localbusiness #brightdata #leadgeneration #n8nworkflow #nocode #businessdirectories #openai",
    "workflow": {
      "id": "9GW2AVoU4cVMOrkr",
      "meta": {
        "instanceId": "c38e3b8a7e4240e6cdca062743f016c1029f385bf40345b6291939dfd83bfd77",
        "templateCredsSetupCompleted": true
      },
      "name": "28  Scrape Local Business Directories",
      "tags": [],
      "nodes": [
        {
          "id": "eedd4234-2cee-42a5-bd0e-389361be7b9b",
          "name": "🔘 Trigger: Manual Execution",
          "type": "n8n-nodes-base.manualTrigger",
          "position": [
            -300,
            -100
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "49faaaf3-e19f-4a60-a703-fe61db31544b",
          "name": "🔗 Set Yelp Business URL for Dr",
          "type": "n8n-nodes-base.set",
          "position": [
            -80,
            -100
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "d1dc3293-4616-498b-a682-432445d59eb0",
                  "name": "URL",
                  "type": "string",
                  "value": "https://www.yelp.com/biz/william-kimbrough-md-washington"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "a2c73d83-2ad9-423f-b025-e1171bc7dc6c",
          "name": "🤖 Agent: Scrape Yelp Business Info",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            200,
            -100
          ],
          "parameters": {
            "text": "=You are a data extraction agent.\n\nScrape the following Yelp URL:\n{{ $json.URL }}\n\nExtract data for businesses (Doctors) listed on this page. For each business, provide the following details: \n\n- `Business Name`: The name of the business (Doctor's name or practice).\n- `Location`: The full address or location of the business.\n- `Contact Phone`: The contact Phone of the business (if available, otherwise dont return ).\n- `Category`: The category or type of business (e.g., \"Doctors\").\n- `Rating`: The Yelp rating (numeric value, e.g., \"4.5\").\n- `Reviews`: The number of reviews.\n- `Website`: The website of the business (if available, otherwise dont return ).\n",
            "options": {},
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2
        },
        {
          "id": "1dfe9fc1-9053-479d-8819-ea1cfe5d4cb9",
          "name": "💬 AI Model: Process Data",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            140,
            160
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "211bda52-986c-4941-9949-805df3e89c3e",
          "name": "🌐 Bright Data MCP Client",
          "type": "n8n-nodes-mcp.mcpClientTool",
          "position": [
            280,
            160
          ],
          "parameters": {
            "toolName": "scrape_as_markdown",
            "operation": "executeTool",
            "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
          },
          "credentials": {
            "mcpClientApi": {
              "id": "credential-id",
              "name": "mcpClientApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "bd66a3af-19ff-48e4-ba33-4481ef65e04c",
          "name": "📧 Send Partnership Proposal to Business Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            660,
            -100
          ],
          "webhookId": "7ce2b97d-e13a-427d-85ee-b37a6f25fdf6",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "=Dear {{ $json.output[0].business_name }},\n\nI hope this message finds you well. I am reaching out to explore a potential partnership with your business, as I noticed your exceptional reputation on Yelp with a rating of {{ $json.output[0].rating }}. We specialize in providing innovative solutions for businesses in the {{ $json.output[0].category }} industry, and I believe there is a strong synergy between our services.\n\nPlease let us know if you're open to discussing further details. You can visit our website at {{ $json.output[0].website }}, or feel free to reach out via email at shahkar.genai@gmail.com.\n\nLooking forward to hearing from you soon.\n\nBest regards,\n[Your Name]\n[Your Company]\n",
            "options": {},
            "subject": "=Potential Partnership with {{ $json.output[0].business_name }}",
            "emailType": "text"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "763b2b0e-acc7-4c3f-a5bc-dd62664dbff1",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -340,
            -860
          ],
          "parameters": {
            "color": 3,
            "width": 420,
            "height": 960,
            "content": "### 🔹 **SECTION 1: Trigger & Set Yelp Business URL**\n\n#### 🧩 **Nodes:**\n\n* `⚡ Trigger: Manual Execution`\n* `📝 Set Yelp Business URL for Dr. William Kimbrough, MD`\n\n#### 💡 **What Happens:**\n\n1. **Trigger the Workflow:**\n\n   * You **manually start** the workflow by clicking the **\"Execute\"** button in n8n.\n2. **Set Yelp Business URL:**\n\n   * **You input** the URL of the **Yelp business profile** for Dr. William Kimbrough (or any business you want) into the system, and this URL will serve as the data source for the rest of the workflow.\n\n   Example URL:\n   `https://www.yelp.com/biz/dr-william-kimbrough-md`\n\n#### ✅ **How You Can Use It:**\n\n* **Simple Setup:** This section lets you easily input the URL of **any Yelp business**, so you can use this workflow for multiple businesses by just changing the URL each time.\n* **No coding skills required:** Simply paste the URL, click **“Execute”**, and you're good to go!"
          },
          "typeVersion": 1
        },
        {
          "id": "d2cf6b8c-6d00-4eed-8a95-815088f8daf2",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            120,
            -980
          ],
          "parameters": {
            "color": 5,
            "width": 420,
            "height": 1080,
            "content": "### 🤖 **SECTION 2: AI Agent Scrapes Business Information**\n\n#### 🧩 **Node:**\n\n* `🤖 Agent: Scrape Yelp Business Info`\n\n##### **Sub-Nodes Inside the Agent:**\n\n* **🧠 AI Model: Process Data**: Understands the data request and prepares for scraping.\n* **🌐 Bright Data MCP Client: Scrape as Markdown**: Scrapes business data from the Yelp profile using the **Bright Data MCP Client** with the **“scrape\\_as\\_markdown”** tool.\n* **🧾 Parse Scraped Data into JSON**: Takes the raw data from Yelp and organizes it into **JSON format**, so it’s easy to use in later steps.\n\n#### 💡 **What Happens:**\n\n1. The **AI Model** receives the request to scrape the Yelp business profile data.\n2. The **MCP Client** is the tool that accesses the **Yelp website** and **scrapes** the business information, such as reviews, address, hours, phone number, and services offered.\n3. The scraped data is **parsed and structured** into a **JSON format**, which ensures the data is ready to be used in other steps of the workflow (e.g., sending it via email).\n\n#### ✅ **How You Can Use It:**\n\n* **Effortless Scraping:** The **AI Agent** automatically scrapes all the necessary business details from Yelp without you needing to manually copy or extract any information.\n* **No Coding:** Simply set the Yelp URL, and the AI handles the scraping and organizing.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "ee19e06d-a7ef-4e6b-b70d-404149c97365",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            580,
            -820
          ],
          "parameters": {
            "width": 340,
            "height": 920,
            "content": "### 📧 **SECTION 3: Send Email Proposal to Business**\n\n#### 🧩 **Node:**\n\n* `📧 Send Partnership Proposal to Business Email`\n\n#### 💡 **What Happens:**\n\n1. After the business details are scraped and organized, the workflow **automatically sends** an email to the **business’s email address** (found in the Yelp profile) with a **partnership proposal**.\n2. The email can include a personalized message, along with the **scraped business information**, offering a **business partnership**.\n\n#### ✅ **How You Can Use It:**\n\n* **Automated Emailing:** You don’t have to write or send emails manually. The workflow sends a **pre-drafted proposal** to the business, making it faster and more efficient.\n* **Outreach Efficiency:** This allows you to automatically send partnership emails to multiple businesses by simply changing the Yelp URL each time."
          },
          "typeVersion": 1
        },
        {
          "id": "11578249-29a6-43ef-a786-4172ca69285a",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1840,
            -940
          ],
          "parameters": {
            "color": 4,
            "width": 1300,
            "height": 2360,
            "content": "## 🚀 **Yelp Business Scraper and Email Workflow for Partnership Proposal**\n\nThis workflow is designed to help you automatically scrape **business details** from a **Yelp business profile** (like Dr. William Kimbrough’s profile), then send a **partnership proposal email** to the business. Let’s break it down into **3 simple sections**!\n\n---\n\n### 🔹 **SECTION 1: Trigger & Set Yelp Business URL**\n\n#### 🧩 **Nodes:**\n\n* `⚡ Trigger: Manual Execution`\n* `📝 Set Yelp Business URL for Dr. William Kimbrough, MD`\n\n#### 💡 **What Happens:**\n\n1. **Trigger the Workflow:**\n\n   * You **manually start** the workflow by clicking the **\"Execute\"** button in n8n.\n2. **Set Yelp Business URL:**\n\n   * **You input** the URL of the **Yelp business profile** for Dr. William Kimbrough (or any business you want) into the system, and this URL will serve as the data source for the rest of the workflow.\n\n   Example URL:\n   `https://www.yelp.com/biz/dr-william-kimbrough-md`\n\n#### ✅ **How You Can Use It:**\n\n* **Simple Setup:** This section lets you easily input the URL of **any Yelp business**, so you can use this workflow for multiple businesses by just changing the URL each time.\n* **No coding skills required:** Simply paste the URL, click **“Execute”**, and you're good to go!\n\n---\n\n### 🤖 **SECTION 2: AI Agent Scrapes Business Information**\n\n#### 🧩 **Node:**\n\n* `🤖 Agent: Scrape Yelp Business Info`\n\n##### **Sub-Nodes Inside the Agent:**\n\n* **🧠 AI Model: Process Data**: Understands the data request and prepares for scraping.\n* **🌐 Bright Data MCP Client: Scrape as Markdown**: Scrapes business data from the Yelp profile using the **Bright Data MCP Client** with the **“scrape\\_as\\_markdown”** tool.\n* **🧾 Parse Scraped Data into JSON**: Takes the raw data from Yelp and organizes it into **JSON format**, so it’s easy to use in later steps.\n\n#### 💡 **What Happens:**\n\n1. The **AI Model** receives the request to scrape the Yelp business profile data.\n2. The **MCP Client** is the tool that accesses the **Yelp website** and **scrapes** the business information, such as reviews, address, hours, phone number, and services offered.\n3. The scraped data is **parsed and structured** into a **JSON format**, which ensures the data is ready to be used in other steps of the workflow (e.g., sending it via email).\n\n#### ✅ **How You Can Use It:**\n\n* **Effortless Scraping:** The **AI Agent** automatically scrapes all the necessary business details from Yelp without you needing to manually copy or extract any information.\n* **No Coding:** Simply set the Yelp URL, and the AI handles the scraping and organizing.\n\n---\n\n### 📧 **SECTION 3: Send Email Proposal to Business**\n\n#### 🧩 **Node:**\n\n* `📧 Send Partnership Proposal to Business Email`\n\n#### 💡 **What Happens:**\n\n1. After the business details are scraped and organized, the workflow **automatically sends** an email to the **business’s email address** (found in the Yelp profile) with a **partnership proposal**.\n2. The email can include a personalized message, along with the **scraped business information**, offering a **business partnership**.\n\n#### ✅ **How You Can Use It:**\n\n* **Automated Emailing:** You don’t have to write or send emails manually. The workflow sends a **pre-drafted proposal** to the business, making it faster and more efficient.\n* **Outreach Efficiency:** This allows you to automatically send partnership emails to multiple businesses by simply changing the Yelp URL each time.\n\n---\n\n### **Summary of the Workflow**\n\n| **Section**                                 | **What Happens**                                                                                                                          |\n| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| **🔘 Section 1: Trigger & Input URL**       | You manually trigger the workflow and input the Yelp URL of the business you want to scrape (e.g., Dr. William Kimbrough’s Yelp profile). |\n| **🤖 Section 2: Scrape Yelp Business Info** | The AI Agent scrapes the business info from Yelp and formats it into a **structured JSON format**.                                        |\n| **📧 Section 3: Send Email**                | Automatically sends a **partnership proposal email** to the business using the **scraped data**.                                          |\n\n---\n\n### ✅ **How This Helps You:**\n\n| **Use Case**                           | **Benefit**                                                      |\n| -------------------------------------- | ---------------------------------------------------------------- |\n| 🤝 **Partnership Outreach**            | Automatically send partnership proposals to businesses.          |\n| 📈 **Business Information Collection** | Scrape business info (e.g., hours, reviews) from Yelp with ease. |\n| 🕒 **Time-Saving**                     | No more manual scraping and emailing. **Save hours of work**.    |\n"
          },
          "typeVersion": 1
        },
        {
          "id": "bc8b2708-6f3c-4386-9a06-338e145ace83",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            940,
            -820
          ],
          "parameters": {
            "color": 7,
            "width": 380,
            "height": 240,
            "content": "## I’ll receive a tiny commission if you join Bright Data through this link—thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
          },
          "typeVersion": 1
        },
        {
          "id": "eacc825c-0715-4bbd-b7b8-b137128ea38c",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1840,
            -1300
          ],
          "parameters": {
            "color": 4,
            "width": 1300,
            "height": 320,
            "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
          },
          "typeVersion": 1
        },
        {
          "id": "10525ffe-08f0-4b5a-b099-64a36f417f20",
          "name": "Auto-fixing Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
          "position": [
            400,
            160
          ],
          "parameters": {
            "options": {}
          },
          "typeVersion": 1
        },
        {
          "id": "a59d20f8-71ee-4921-8e83-59c496b8fd62",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            340,
            380
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4.1-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "7c657853-2328-4169-9ffe-99b195015dec",
          "name": "📝 Parse Scraped Data into JSON1",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            520,
            360
          ],
          "parameters": {
            "jsonSchemaExample": "[\n  {\n    \"business_name\": \"William Kimbrough, MD\",\n    \"location\": \"1350 Connecticut Ave Ste 1250 One Medical, Washington, DC 20036\",\n    \"contact_phone\": \"(202) 660-0005\",\n    \"category\": \"Internal Medicine, Family Practice\",\n    \"rating\": 5.0,\n    \"reviews\": 6,\n    \"website\": \"http://www.onemedical.com/dc/doctors?utm_medium=referral&utm_source=yelp.com&utm_campaign=sitelink\"\n  }\n]\n"
          },
          "typeVersion": 1.3
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "c1faa689-fe24-40a9-b121-fd63be1ebe1b",
      "connections": {
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "Auto-fixing Output Parser",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Auto-fixing Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "🤖 Agent: Scrape Yelp Business Info",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "🌐 Bright Data MCP Client": {
          "ai_tool": [
            [
              {
                "node": "🤖 Agent: Scrape Yelp Business Info",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "💬 AI Model: Process Data": {
          "ai_languageModel": [
            [
              {
                "node": "🤖 Agent: Scrape Yelp Business Info",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "🔘 Trigger: Manual Execution": {
          "main": [
            [
              {
                "node": "🔗 Set Yelp Business URL for Dr",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "🔗 Set Yelp Business URL for Dr": {
          "main": [
            [
              {
                "node": "🤖 Agent: Scrape Yelp Business Info",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "📝 Parse Scraped Data into JSON1": {
          "ai_outputParser": [
            [
              {
                "node": "Auto-fixing Output Parser",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "🤖 Agent: Scrape Yelp Business Info": {
          "main": [
            [
              {
                "node": "📧 Send Partnership Proposal to Business Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 62,
    "workflowInfo": {
      "nodeCount": 15,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 1
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 6
        },
        "n8n-nodes-mcp.mcpClientTool": {
          "count": 1
        },
        "n8n-nodes-base.manualTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.outputParserAutofixing": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Yaron Been",
      "username": "yaron-nofluff",
      "bio": "Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host\n\nIf you need any help with Automations, feel free to reach out via linkedin:\nhttps://www.linkedin.com/in/yaronbeen/\n\nAnd check out my Youtube channel:\nhttps://www.youtube.com/@YaronBeen/videos",
      "verified": true,
      "links": [
        "https://www.nofluff.online/automation-services/"
      ],
      "avatar": "https://gravatar.com/avatar/a4e4dcaa1f76ff5266bbf80e8df86d22efda890474c68f7796e72fd82e3f2375?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "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": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "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/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with 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-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/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/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "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": 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": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1175,
        "icon": "fa:tools",
        "name": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Auto-fixing Output Parser"
        },
        "iconData": {
          "icon": "tools",
          "type": "icon"
        },
        "displayName": "Auto-fixing Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 37,
        "name": "Lead Generation"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}