N
n8n Store
Workflow Market
32  Track Sales Rep Performance

32 Track Sales Rep Performance

by yaron-nofluffβ€’0 views

Description

Categories

πŸ€– 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
PriceGratuit
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "bB57PHGi6PT6kDou",
  "meta": {
    "instanceId": "c38e3b8a7e4240e6cdca062743f016c1029f385bf40345b6291939dfd83bfd77",
    "templateCredsSetupCompleted": true
  },
  "name": "32  Track Sales Rep Performance",
  "tags": [],
  "nodes": [
    {
      "id": "3a81bea5-aad7-43af-a555-e7be29f9f59a",
      "name": "⚑ Start Scraping (Manual Trigger)",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -500,
        -80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "81b6c9eb-17b7-45b0-abf8-4cdf31bf3b50",
      "name": " πŸ”— Set MCP Source URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -280,
        -80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5357cffe-b338-4852-a0ca-b9d9cf0700a1",
              "name": "activityURL",
              "type": "string",
              "value": "https://jsonplaceholder.typicode.com/todos"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f9d0f0d5-1dd7-4d85-b55c-3e84cfbf6918",
      "name": "πŸ€– Analyze Sales Rep Performance ",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        0,
        -80
      ],
      "parameters": {
        "text": "=You are a web scraper and data analyzer connected to Bright Data’s MCP tool.\n\nScrape the following URL:\n{{ $json.activityURL }}\n\nEach item in the data represents a sales rep activity. The \"userId\" is the rep ID, \"title\" is the task name, and \"completed\" is task status.\n\nStep 1: Group tasks by each userId (rep).\nStep 2: For each rep, calculate:\n\ntotalTasks\n\ncompletedTasks\n\nincompleteTasks\n\ncompletionRate (as percentage)\nStep 3: Rank reps from highest to lowest completion rate.\nStep 4: Add a field coachingRecommended: true if completionRate is less than 70%, false otherwise.",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "947d6147-93ed-49be-91ad-6f9970be50e7",
      "name": "🧠 AI Brain (OpenAI)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -80,
        180
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "kmqnyfHdWfA8k1KC",
          "name": "OpenAi account 3"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d5b17f70-e99e-4424-a047-9fafb86aa8dc",
      "name": "🌐 Bright Data MCP Tool",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        80,
        160
      ],
      "parameters": {
        "toolName": "scrape_as_markdown",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
      },
      "credentials": {
        "mcpClientApi": {
          "id": "dGu6Ys11ijXSTxcV",
          "name": "MCP Client (STDIO) account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b3e71d48-9247-431f-a384-8b087f25157e",
      "name": "🧩 Split JSON to Individual Records",
      "type": "n8n-nodes-base.code",
      "position": [
        460,
        -80
      ],
      "parameters": {
        "jsCode": "return items[0].json.output.map(rep => {\nreturn {\njson: {\nrepId: rep.repId,\ntotalTasks: rep.totalTasks,\ncompletedTasks: rep.completedTasks,\nincompleteTasks: rep.incompleteTasks,\ncompletionRate: rep.completionRate,\ncoachingRecommended: rep.coachingRecommended\n}\n};\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "a4b9a8a4-bca2-46d9-ab45-fee4e9cf49de",
      "name": " πŸ“Š Store Rep Performance (Google Sheets)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        640,
        -80
      ],
      "parameters": {
        "columns": {
          "value": {
            "repId": "={{ $json.repId }}",
            "totalTasks": "={{ $json.totalTasks }}",
            "completedTasks": "={{ $json.completedTasks }}",
            "completionRate": "={{ $json.completionRate }}",
            "incompletedTasks": "={{ $json.incompleteTasks }}",
            "coachingRecomended": "={{ $json.coachingRecommended }}"
          },
          "schema": [
            {
              "id": "repId",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "repId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "totalTasks",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "totalTasks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "completedTasks",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "completedTasks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "incompletedTasks",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "incompletedTasks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "completionRate",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "completionRate",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "coachingRecomended",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "coachingRecomended",
              "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/1ybPVtArYMojjWfT5EJyiC8I666ZhfQAWAeQ0A8Qidjg/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ybPVtArYMojjWfT5EJyiC8I666ZhfQAWAeQ0A8Qidjg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ybPVtArYMojjWfT5EJyiC8I666ZhfQAWAeQ0A8Qidjg/edit?usp=drivesdk",
          "cachedResultName": "Track Sales Rep Performance"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "i899RBJ6SKiYYWwx",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "2db26570-4de1-498b-ad8d-e49833ca8b48",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -780
      ],
      "parameters": {
        "color": 7,
        "width": 440,
        "height": 900,
        "content": "## πŸ”Ή SECTION 1: Input & Trigger\n\n🧩 Combines:\n\n* ⚑ Start Scraping (Manual Trigger)\n* πŸ”— Set MCP Source URL\n\n🧠 What Happens:\nThis section lets you kick off the workflow and define where the data should come from.\n\nπŸ“ How It Works:\n\n1. You manually run the workflow (great for testing or scheduled automation).\n2. In the Set node, you paste the URL to scrape. In this example, it's a placeholder:\n   β†’ [https://jsonplaceholder.typicode.com](https://jsonplaceholder.typicode.com)\n\nπŸ“ˆ Real-World Example:\nYou can change this to the MCP URL that fetches your sales performance dashboard from Bright Data.\n\n🌟 Benefits:\nβœ… Beginner-friendly – no technical steps\nβœ… Fully customizable – just replace the placeholder with your real URL\nβœ… Works instantly – click + paste = done\n\n🎯 Icons Summary:\n⚑ = Start\nπŸ”— = Define Target Source"
      },
      "typeVersion": 1
    },
    {
      "id": "ca28cb46-e2fd-46b9-b1b7-057bf4a20d24",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -1220
      ],
      "parameters": {
        "color": 6,
        "width": 440,
        "height": 1340,
        "content": "## πŸ€– SECTION 2: AI Scraper & Analyzer (Bright Data MCP + AI Agent)\n\n🧩 Combines:\n\n* πŸ€– Analyze Sales Rep Performance (AI Agent)\n\n  * 🧠 AI Brain (OpenAI)\n  * 🌐 Bright Data MCP Tool: scrape\\_as\\_markdown\n  * 🧾 Structured Response Parser\n\n🧠 What Happens:\nThis section is the heart of the workflow. It uses AI to read and scrape the webpage, process performance results, and return clean, structured JSON data.\n\nπŸ“ How It Works:\n\n1. 🧠 OpenAI receives instructions like:\n   β†’ β€œScrape latest sales rep performance. Include repId, completedTasks, ranking, coaching suggestions, return as JSON.”\n\n2. 🌐 Bright Data’s MCP executes this by visiting the URL using mobile proxies and scraping the page as markdown (bypassing anti-bot protections).\n\n3. 🧾 The Structured Output Parser turns the result into a usable JSON array of sales reps with performance metrics.\n\nπŸ§ͺ Output Example:\n\n```json\n[\n  {\n    \"repId\": 12,\n    \"completedTasks\": 18,\n    \"coachingRecommended\": false\n  },\n  ...\n]\n```\n\n🌟 Benefits:\nβœ… Uses real-time AI scraping β€” no code, no manual labor\nβœ… 100% structured output for automation\nβœ… Scalable β€” works for 5 reps or 5,000!\n\n🎯 Icons Summary:\nπŸ€– = AI Agent\n🧠 = AI Brain\n🌐 = Scrape using Bright Data MCP\n🧾 = Convert to JSON"
      },
      "typeVersion": 1
    },
    {
      "id": "a63a1c64-7df3-41a4-9b1b-ece10b73ef60",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -880
      ],
      "parameters": {
        "color": 5,
        "width": 420,
        "height": 1000,
        "content": "## πŸ“Š SECTION 3: Process & Store in Google Sheets\n\n🧩 Combines:\n\n* 🧩 Split JSON to Individual Records (Function Node)\n* πŸ“Š Store Rep Performance (Google Sheets)\n\n🧠 What Happens:\nNow that we have structured performance data, we break it into clean individual rows and save them in a Google Sheet.\n\nπŸ“ How It Works:\n\n1. 🧩 The function node splits the array of reps into individual entries.\n   β†’ Converts one big object with 10 reps β†’ into 10 separate rows.\n\n2. πŸ“Š The Google Sheets node appends each row:\n   β†’ Columns like repId, completedTasks, ranking, coachingRecommended\n\nπŸ“ˆ Real-World Use:\nPerfect for tracking KPIs, building dashboards, or creating team reports without spreadsheets manual work!\n\n🌟 Benefits:\nβœ… Automatically stores structured data\nβœ… Compatible with dashboards and analytics tools\nβœ… Hands-free performance reporting!\n\n🎯 Icons Summary:\n🧩 = Split records\nπŸ“Š = Store in Google Sheets\n"
      },
      "typeVersion": 1
    },
    {
      "id": "35bc1f15-dfa8-4435-a233-319da5da91a1",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2120,
        -980
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 2920,
        "content": "# πŸš€ Sales Rep Performance Scraper & Analyzer (n8n + Bright Data + AI)\n\nThis smart automation lets you scrape performance data about your sales reps from a source (like Bright Data’s MCP), extract meaningful insights (like rankings, completed tasks, coaching suggestions), and save them beautifully into Google Sheets β€” no coding required!\n\nLet’s break it down section-by-section:\n\n---\n\n## πŸ”Ή SECTION 1: Input & Trigger\n\n🧩 Combines:\n\n* ⚑ Start Scraping (Manual Trigger)\n* πŸ”— Set MCP Source URL\n\n🧠 What Happens:\nThis section lets you kick off the workflow and define where the data should come from.\n\nπŸ“ How It Works:\n\n1. You manually run the workflow (great for testing or scheduled automation).\n2. In the Set node, you paste the URL to scrape. In this example, it's a placeholder:\n   β†’ [https://jsonplaceholder.typicode.com](https://jsonplaceholder.typicode.com)\n\nπŸ“ˆ Real-World Example:\nYou can change this to the MCP URL that fetches your sales performance dashboard from Bright Data.\n\n🌟 Benefits:\nβœ… Beginner-friendly – no technical steps\nβœ… Fully customizable – just replace the placeholder with your real URL\nβœ… Works instantly – click + paste = done\n\n🎯 Icons Summary:\n⚑ = Start\nπŸ”— = Define Target Source\n\n---\n\n## πŸ€– SECTION 2: AI Scraper & Analyzer (Bright Data MCP + AI Agent)\n\n🧩 Combines:\n\n* πŸ€– Analyze Sales Rep Performance (AI Agent)\n\n  * 🧠 AI Brain (OpenAI)\n  * 🌐 Bright Data MCP Tool: scrape\\_as\\_markdown\n  * 🧾 Structured Response Parser\n\n🧠 What Happens:\nThis section is the heart of the workflow. It uses AI to read and scrape the webpage, process performance results, and return clean, structured JSON data.\n\nπŸ“ How It Works:\n\n1. 🧠 OpenAI receives instructions like:\n   β†’ β€œScrape latest sales rep performance. Include repId, completedTasks, ranking, coaching suggestions, return as JSON.”\n\n2. 🌐 Bright Data’s MCP executes this by visiting the URL using mobile proxies and scraping the page as markdown (bypassing anti-bot protections).\n\n3. 🧾 The Structured Output Parser turns the result into a usable JSON array of sales reps with performance metrics.\n\nπŸ§ͺ Output Example:\n\n```json\n[\n  {\n    \"repId\": 12,\n    \"completedTasks\": 18,\n    \"coachingRecommended\": false\n  },\n  ...\n]\n```\n\n🌟 Benefits:\nβœ… Uses real-time AI scraping β€” no code, no manual labor\nβœ… 100% structured output for automation\nβœ… Scalable β€” works for 5 reps or 5,000!\n\n🎯 Icons Summary:\nπŸ€– = AI Agent\n🧠 = AI Brain\n🌐 = Scrape using Bright Data MCP\n🧾 = Convert to JSON\n\n---\n\n## πŸ“Š SECTION 3: Process & Store in Google Sheets\n\n🧩 Combines:\n\n* 🧩 Split JSON to Individual Records (Function Node)\n* πŸ“Š Store Rep Performance (Google Sheets)\n\n🧠 What Happens:\nNow that we have structured performance data, we break it into clean individual rows and save them in a Google Sheet.\n\nπŸ“ How It Works:\n\n1. 🧩 The function node splits the array of reps into individual entries.\n   β†’ Converts one big object with 10 reps β†’ into 10 separate rows.\n\n2. πŸ“Š The Google Sheets node appends each row:\n   β†’ Columns like repId, completedTasks, ranking, coachingRecommended\n\nπŸ“ˆ Real-World Use:\nPerfect for tracking KPIs, building dashboards, or creating team reports without spreadsheets manual work!\n\n🌟 Benefits:\nβœ… Automatically stores structured data\nβœ… Compatible with dashboards and analytics tools\nβœ… Hands-free performance reporting!\n\n🎯 Icons Summary:\n🧩 = Split records\nπŸ“Š = Store in Google Sheets\n\n---\n\n# 🎁 Full Workflow Summary (Emoji Snapshot)\n\n| Step | Icon | Name                 | Description                        |\n| ---- | ---- | -------------------- | ---------------------------------- |\n| 1️⃣  | ⚑    | Start Scraping       | Manually start the workflow        |\n| 2️⃣  | πŸ”—   | Set MCP Source URL   | Define where the data comes from   |\n| 3️⃣  | πŸ€–   | AI Agent             | Smart scraper that thinks for you  |\n|      | 🧠   | OpenAI Model         | Understands scraping instructions  |\n|      | 🌐   | Bright Data Tool     | Actually scrapes the source        |\n|      | 🧾   | Output Parser        | Formats everything into clean JSON |\n| 4️⃣  | 🧩   | Split JSON           | Breaks array into rows             |\n| 5️⃣  | πŸ“Š   | Save to Google Sheet | Appends results into spreadsheet   |\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4e4b4be2-e443-40c4-b6a9-df32564c0843",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        860,
        -880
      ],
      "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": "5ec158a5-1136-4047-9b42-0aa9d0816a0c",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2120,
        -1340
      ],
      "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": "87667602-c4a6-44ae-8b02-a552e85de303",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        200,
        180
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "3e504880-d09a-44b5-9774-f89c1b7d85ad",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        160,
        400
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "kmqnyfHdWfA8k1KC",
          "name": "OpenAi account 3"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ffc087e9-4d4a-4881-b731-6f0ecdbfc1d3",
      "name": "🧾 Structured Response Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        340,
        400
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"repId\": 5,\n    \"totalTasks\": 20,\n    \"completedTasks\": 13,\n    \"incompleteTasks\": 7,\n    \"completionRate\": 65,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 1,\n    \"totalTasks\": 20,\n    \"completedTasks\": 11,\n    \"incompleteTasks\": 9,\n    \"completionRate\": 55,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 2,\n    \"totalTasks\": 20,\n    \"completedTasks\": 10,\n    \"incompleteTasks\": 10,\n    \"completionRate\": 50,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 3,\n    \"totalTasks\": 20,\n    \"completedTasks\": 8,\n    \"incompleteTasks\": 12,\n    \"completionRate\": 40,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 10,\n    \"totalTasks\": 20,\n    \"completedTasks\": 11,\n    \"incompleteTasks\": 9,\n    \"completionRate\": 55,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 9,\n    \"totalTasks\": 20,\n    \"completedTasks\": 9,\n    \"incompleteTasks\": 11,\n    \"completionRate\": 45,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 4,\n    \"totalTasks\": 20,\n    \"completedTasks\": 7,\n    \"incompleteTasks\": 13,\n    \"completionRate\": 35,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 6,\n    \"totalTasks\": 20,\n    \"completedTasks\": 6,\n    \"incompleteTasks\": 14,\n    \"completionRate\": 30,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 7,\n    \"totalTasks\": 20,\n    \"completedTasks\": 10,\n    \"incompleteTasks\": 10,\n    \"completionRate\": 50,\n    \"coachingRecommended\": true\n  },\n  {\n    \"repId\": 8,\n    \"totalTasks\": 20,\n    \"completedTasks\": 13,\n    \"incompleteTasks\": 7,\n    \"completionRate\": 65,\n    \"coachingRecommended\": true\n  }\n]\n"
      },
      "typeVersion": 1.3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e13736eb-09b4-4bd7-af0b-6b00f8b008bf",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "🧠 AI Brain (OpenAI)": {
      "ai_languageModel": [
        [
          {
            "node": "πŸ€– Analyze Sales Rep Performance ",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    " πŸ”— Set MCP Source URL": {
      "main": [
        [
          {
            "node": "πŸ€– Analyze Sales Rep Performance ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "πŸ€– Analyze Sales Rep Performance ",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "🌐 Bright Data MCP Tool": {
      "ai_tool": [
        [
          {
            "node": "πŸ€– Analyze Sales Rep Performance ",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "🧾 Structured Response Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "⚑ Start Scraping (Manual Trigger)": {
      "main": [
        [
          {
            "node": " πŸ”— Set MCP Source URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "πŸ€– Analyze Sales Rep Performance ": {
      "main": [
        [
          {
            "node": "🧩 Split JSON to Individual Records",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🧩 Split JSON to Individual Records": {
      "main": [
        [
          {
            "node": " πŸ“Š Store Rep Performance (Google Sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

η›Έε…³ε·₯作桁