N
n8n Store
Workflow Market
21 Track Local Search Trends

21 Track Local Search Trends

by yaron-nofluff0 views

説明

Categories

📢 Marketing🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.googleSheetsn8n-nodes-mcp.mcpClientTool
Price無料
Views0
最終更新11/28/2025
workflow.json
{
  "id": "CE8hCLPGBDqK8M07",
  "meta": {
    "instanceId": "60046904b104f0f72b2629a9d88fe9f676be4035769f1f08dad1dd38a76b9480",
    "templateCredsSetupCompleted": true
  },
  "name": "21 Track Local Search Trends",
  "tags": [],
  "nodes": [
    {
      "id": "9ea32a48-a56e-404a-aa0b-878a6e17f117",
      "name": "🔌 Trigger: Manual Start",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -40,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d35de7e1-5b66-4e93-b812-dff0b195ccff",
      "name": "📝 Set google trends URL",
      "type": "n8n-nodes-base.set",
      "position": [
        180,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bbb89709-875d-4064-8d35-652dc4ec0f44",
              "name": "url",
              "type": "string",
              "value": "https://trends.google.com/trending?geo=US"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "910da821-530a-4830-ae98-a49c42346f4f",
      "name": "🤖 Scrape Trends with MCP",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "=Use Bright Data MCP to scrape the following Google Trends URL and return with keywords, score, and date.\n\nURL: {{ $json.url }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "a1be70b4-e0c6-4ab8-b4a6-d8debbbb5310",
      "name": "🧩 Split Trends (One per Item)",
      "type": "n8n-nodes-base.code",
      "position": [
        880,
        0
      ],
      "parameters": {
        "jsCode": "// Get the Agent response\nconst input = items[0].json;\n\n// Access the trending keywords array\nconst keywords = input.output.trending_keywords;\n\n// Prepare each keyword as a single item\nreturn keywords.map(keyword => {\n  return {\n    json: {\n      keyword: keyword.keyword,\n      score: keyword.score,\n      date: keyword.date\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "6e969c7b-276f-412f-976b-2298468eca70",
      "name": "📄 Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1080,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.date }}",
            "Score": "={{ $json.score }}",
            "Keyword": "={{ $json.keyword }}"
          },
          "schema": [
            {
              "id": "Keyword",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Keyword",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1U3JIgUjCjjOUssjcwDcV5v5dFI_ssjzMHb9DzjtH4nU/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1U3JIgUjCjjOUssjcwDcV5v5dFI_ssjzMHb9DzjtH4nU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1U3JIgUjCjjOUssjcwDcV5v5dFI_ssjzMHb9DzjtH4nU/edit?usp=drivesdk",
          "cachedResultName": "Google trends"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "r2mDaisH6e9VkwHl",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "511ebc56-696d-4830-b119-c959e9539294",
      "name": "🧠 OpenAI Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        400,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8sEyPDkC5p4w4Jha",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8edd4a28-ee73-4431-80b2-b4d0d2680337",
      "name": "🌐 Bright Data MCP",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        560,
        280
      ],
      "parameters": {
        "toolName": "scrape_as_markdown",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
      },
      "credentials": {
        "mcpClientApi": {
          "id": "eqq94k789oJCd6jU",
          "name": "MCP Client (STDIO) account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c00d74fc-2698-463e-8598-42a2a9a0ece9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -900
      ],
      "parameters": {
        "color": 6,
        "width": 420,
        "height": 1080,
        "content": "### ## 🟢 **SECTION 1 — 🚀 Trigger & Input: “Set the Mission”**\n\n**✨ Nodes in this section:**\n1️⃣ **🔌 Trigger: Manual Start**\n2️⃣ **📝 Set Region & Topic**\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section is your *starting point*. It lets *you* (or anyone using this workflow) **decide when to run** it and **what you want to search for**.\n\n* **How it works:**\n\n  * The **🔌 Trigger** node is like a *button*. When you click *Execute Workflow*, the whole process starts.\n  * The **📝 Input Fields** node lets you fill in details — for example:\n\n    * *Region:* “Los Angeles”\n    * *Topic:* “Restaurants”, “Concerts”, “Events near me”\n  * These inputs tell the Agent exactly **which local trends** to scrape.\n\n* **Benefit for beginners:**\n  You don’t need to open Google Trends manually or copy-paste URLs — just **set your target location & topic once**, click a button, and you’re good to go! 🌍✨\n\n---\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1a71f611-b7ce-42e1-9f91-e0281dee05ae",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -1040
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 1220,
        "content": "### ## 🟡 **SECTION 2 — 🤖 Scrape Trends with Bright Data MCP**\n\n**✨ Nodes in this section:**\n3️⃣ **🤖 Scrape Trends with MCP**\n\n* Sub-nodes:\n\n  * 🧠 **OpenAI Model** → Handles the Agent’s logic & instructions\n  * 🌐 **Bright Data MCP** → Runs the actual scraping\n  * 🗂️ **Structured Output Parser** → Makes sure the data comes back clean JSON\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section is the *smart engine* of your workflow. It sends your search request out to the internet, collects the latest **local trending keywords**, and puts them in a neat, structured format.\n\n* **How it works:**\n\n  * The **🤖 Agent** takes your region & topic and talks to **Bright Data MCP** — your web scraper.\n  * Bright Data crawls **Google Trends** (or another site) and finds **hot keywords**, **interest scores**, and **when they started trending**.\n  * The **Structured Output Parser** makes sure the raw text is turned into tidy, machine-readable **JSON** — so you don’t need to clean up messy data yourself.\n\n* **Benefit for beginners:**\n  You don’t have to write scraping code or build a custom parser. The Agent + Bright Data MCP do it all. It’s like having a digital research assistant that never sleeps. 🧑‍💻🔍\n\n---\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "420b543a-0ed0-43f0-91b3-616c3b7d9f48",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        -760
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 940,
        "content": "### ## 🟣 **SECTION 3 — 🧩 Process & Save: “Put it to Work”**\n\n**✨ Nodes in this section:**\n4️⃣ **🧩 Split Trends (One per Item)**\n5️⃣ **📄 Save to Google Sheets**\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section *unpacks* the scraped data and *uses* it — by saving it to your Google Sheet, ready for SEO or marketing.\n\n* **How it works:**\n\n  * The **🧩 Code** node (your `Function`) takes the full list of keywords and **breaks them into single items** — one keyword per row.\n  * The **📄 Google Sheets** node then **appends** each keyword as a new row:\n\n    * Keyword\n    * Search volume\n    * When it started trending\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4ee00b42-8838-4ba3-8c5e-96d0b068c501",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -760
      ],
      "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": "1397f12a-47ee-4b41-be66-2b9818abcc20",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1780,
        -900
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    [email protected]\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": "6d7d3cc4-67dc-45a9-9670-571190d0cefd",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1780,
        -560
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2958,
        "content": "## 🎯 **📍 Title:**\n\n**“Local Trends Scraper & SEO Booster — Automated Google Trends to Sheets Workflow”**\n\n---\n\n\n### ## 🟢 **SECTION 1 — 🚀 Trigger & Input: “Set the Mission”**\n\n**✨ Nodes in this section:**\n1️⃣ **🔌 Trigger: Manual Start**\n2️⃣ **📝 Set Region & Topic**\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section is your *starting point*. It lets *you* (or anyone using this workflow) **decide when to run** it and **what you want to search for**.\n\n* **How it works:**\n\n  * The **🔌 Trigger** node is like a *button*. When you click *Execute Workflow*, the whole process starts.\n  * The **📝 Input Fields** node lets you fill in details — for example:\n\n    * *Region:* “Los Angeles”\n    * *Topic:* “Restaurants”, “Concerts”, “Events near me”\n  * These inputs tell the Agent exactly **which local trends** to scrape.\n\n* **Benefit for beginners:**\n  You don’t need to open Google Trends manually or copy-paste URLs — just **set your target location & topic once**, click a button, and you’re good to go! 🌍✨\n\n---\n\n---\n\n### ## 🟡 **SECTION 2 — 🤖 Scrape Trends with Bright Data MCP**\n\n**✨ Nodes in this section:**\n3️⃣ **🤖 Scrape Trends with MCP**\n\n* Sub-nodes:\n\n  * 🧠 **OpenAI Model** → Handles the Agent’s logic & instructions\n  * 🌐 **Bright Data MCP** → Runs the actual scraping\n  * 🗂️ **Structured Output Parser** → Makes sure the data comes back clean JSON\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section is the *smart engine* of your workflow. It sends your search request out to the internet, collects the latest **local trending keywords**, and puts them in a neat, structured format.\n\n* **How it works:**\n\n  * The **🤖 Agent** takes your region & topic and talks to **Bright Data MCP** — your web scraper.\n  * Bright Data crawls **Google Trends** (or another site) and finds **hot keywords**, **interest scores**, and **when they started trending**.\n  * The **Structured Output Parser** makes sure the raw text is turned into tidy, machine-readable **JSON** — so you don’t need to clean up messy data yourself.\n\n* **Benefit for beginners:**\n  You don’t have to write scraping code or build a custom parser. The Agent + Bright Data MCP do it all. It’s like having a digital research assistant that never sleeps. 🧑‍💻🔍\n\n---\n\n---\n\n### ## 🟣 **SECTION 3 — 🧩 Process & Save: “Put it to Work”**\n\n**✨ Nodes in this section:**\n4️⃣ **🧩 Split Trends (One per Item)**\n5️⃣ **📄 Save to Google Sheets**\n\n---\n\n### 🎯 **What happens here?**\n\n* **Purpose:**\n  This section *unpacks* the scraped data and *uses* it — by saving it to your Google Sheet, ready for SEO or marketing.\n\n* **How it works:**\n\n  * The **🧩 Code** node (your `Function`) takes the full list of keywords and **breaks them into single items** — one keyword per row.\n  * The **📄 Google Sheets** node then **appends** each keyword as a new row:\n\n    * Keyword\n    * Search volume\n    * When it started trending\n\n* **Benefit for beginners:**\n  You instantly have a **ready-made spreadsheet** you can share with your content team, SEO team, or use to update your local landing pages.\n  No manual copy-paste. No formatting headaches. 📊✅\n\n---\n\n---\n\n## 🌟 **✨ How does this help you win?**\n\n✅ **Fully automated:** You can run it every day or week — always get fresh local keywords.\n✅ **SEO superpower:** See exactly *what’s trending* in your region → update landing pages → get more local traffic.\n✅ **No code needed:** All you did was *click*, *input*, *watch it run*.\n✅ **Team-ready:** The final Google Sheet is shareable, editable, and easy to integrate with your marketing process.\n\n---\n\n## 🎉 **💎 Visual Summary**\n\n```\n📌 SECTION 1: 🟢 Trigger & Input  \n   🔌 Manual Start → 📝 Set Region & Topic\n\n📌 SECTION 2: 🟡 Scrape & Structure  \n   🤖 Agent → 🧠 OpenAI → 🌐 Bright Data → 🗂️ JSON Parser\n\n📌 SECTION 3: 🟣 Process & Save  \n   🧩 Split Keywords → 📄 Save to Google Sheets\n```\n\n---\n\n## ✅ **Use Case Example**\n\n> **Example:**\n> Local bakery in Los Angeles wants to know trending searches for “best cake shops” or “Independence Day treats” → this workflow finds hot search trends → your SEO person adds those phrases to landing pages → you rank higher locally → more customers! 🎂🎆\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e1108517-eac3-4ac9-a2a7-cac91566ce03",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        720,
        280
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "6080dcb4-3ef7-41b3-bb05-b85e1e2d7737",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        700,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "8sEyPDkC5p4w4Jha",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4858d36d-3eca-46da-bb9a-a6f224e80f4d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        860,
        500
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"trending_keywords\": [\n    {\n      \"keyword\": \"Julian McMahon\",\n      \"score\": \"1M+ searches\",\n      \"date\": \"5 hours ago\"\n    },\n    {\n      \"keyword\": \"Camp Mystic\",\n      \"score\": \"1M+ searches\",\n      \"date\": \"13 hours ago\"\n    },\n    {\n      \"keyword\": \"Palmeiras vs Chelsea\",\n      \"score\": \"200K+ searches\",\n      \"date\": \"8 hours ago\"\n    },\n    {\n      \"keyword\": \"Cuatro de Julio\",\n      \"score\": \"100K+ searches\",\n      \"date\": \"23 hours ago\"\n    },\n    {\n      \"keyword\": \"Independence Day Celebrations Near Me\",\n      \"score\": \"100K+ searches\",\n      \"date\": \"23 hours ago\"\n    },\n    {\n      \"keyword\": \"What Time Do Fireworks Start\",\n      \"score\": \"200K+ searches\",\n      \"date\": \"7 hours ago\"\n    },\n    {\n      \"keyword\": \"Astros vs Dodgers\",\n      \"score\": \"50K+ searches\",\n      \"date\": \"3 hours ago\"\n    },\n    {\n      \"keyword\": \"Young Noble\",\n      \"score\": \"20K+ searches\",\n      \"date\": \"7 hours ago\"\n    },\n    {\n      \"keyword\": \"Fluminense vs Al-Hilal\",\n      \"score\": \"200K+ searches\",\n      \"date\": \"10 hours ago\"\n    },\n    {\n      \"keyword\": \"Brewsers vs Marlins\",\n      \"score\": \"10K+ searches\",\n      \"date\": \"5 hours ago\"\n    }\n  ]\n}\n"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a4dd65b0-e789-488c-882f-2094f0a5f1a7",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "🧠 OpenAI Model": {
      "ai_languageModel": [
        [
          {
            "node": "🤖 Scrape Trends with MCP",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "🌐 Bright Data MCP": {
      "ai_tool": [
        [
          {
            "node": "🤖 Scrape Trends with MCP",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "🤖 Scrape Trends with MCP",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "📝 Set google trends URL": {
      "main": [
        [
          {
            "node": "🤖 Scrape Trends with MCP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🔌 Trigger: Manual Start": {
      "main": [
        [
          {
            "node": "📝 Set google trends URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🤖 Scrape Trends with MCP": {
      "main": [
        [
          {
            "node": "🧩 Split Trends (One per Item)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🧩 Split Trends (One per Item)": {
      "main": [
        [
          {
            "node": "📄 Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流