{
  "name": "Monitor ecommerce reviews with MrScraper, GPT-4o-mini, Slack and Notion",
  "nodes": [
    {
      "id": "afa13857-44a7-48ba-9ffa-b45edfd45899",
      "name": "Schedule Trigger (Daily 6AM)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        848,
        208
      ]
    },
    {
      "id": "1a85bcd1-b359-4147-a183-72d218b78a01",
      "name": "Loop Each Product SKU",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1296,
        208
      ]
    },
    {
      "id": "83cb9fda-7141-41f4-8835-d842b2c801db",
      "name": "MrScraper - Discover Review URLs",
      "type": "n8n-nodes-mrscraper.mrscraper",
      "position": [
        1520,
        80
      ]
    },
    {
      "id": "508a804b-9095-40a7-89cd-e30ff6fc62a3",
      "name": "Loop Each Review",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1968,
        192
      ]
    },
    {
      "id": "92a44af9-d943-4f5f-a546-f8a6cb190dde",
      "name": "MrScraper - Extract Review Content",
      "type": "n8n-nodes-mrscraper.mrscraper",
      "position": [
        2224,
        80
      ]
    },
    {
      "id": "97628393-3576-4214-9428-d79886c034e3",
      "name": "Filter & Enrich Review Data",
      "type": "n8n-nodes-base.code",
      "position": [
        2448,
        80
      ]
    },
    {
      "id": "ecb54aac-43ae-4f40-896d-f6de93f19d45",
      "name": "Keep Only Valid Reviews",
      "type": "n8n-nodes-base.if",
      "position": [
        2640,
        80
      ]
    },
    {
      "id": "57e08124-c7f1-4c3f-9d82-1a53ecd9fc74",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2880,
        224
      ]
    },
    {
      "id": "b269bc7f-f1cb-4c34-8b12-ff5a011b994d",
      "name": "Brand Sentiment AI Agent",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2864,
        64
      ]
    },
    {
      "id": "09945704-cfd1-458f-90b0-904e00fbe30a",
      "name": "Parse AI Response & Format Output",
      "type": "n8n-nodes-base.code",
      "position": [
        3216,
        64
      ]
    },
    {
      "id": "7af404e6-441a-4f58-a359-f0450977919d",
      "name": "Needs Urgent Alert?",
      "type": "n8n-nodes-base.if",
      "position": [
        3440,
        96
      ]
    },
    {
      "id": "5322273d-f6e8-4b30-b298-69d869d8c30a",
      "name": "Slack - Urgent Brand Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        3888,
        48
      ]
    },
    {
      "id": "8c515320-9a48-4831-807b-b7e135d097e4",
      "name": "Notion - Save Review Analysis",
      "type": "n8n-nodes-base.notion",
      "position": [
        4048,
        160
      ]
    },
    {
      "id": "84eb269e-b442-4944-9313-3c7e6a3e1451",
      "name": "Build Daily Brand Health Digest",
      "type": "n8n-nodes-base.code",
      "position": [
        3584,
        192
      ]
    },
    {
      "id": "67db960a-b79f-4e79-bf94-93f08877404d",
      "name": "Slack - Daily Brand Digest",
      "type": "n8n-nodes-base.slack",
      "position": [
        3808,
        192
      ]
    },
    {
      "id": "faf60391-e42a-4b7f-92e8-47c06feb72e0",
      "name": "Get Target Product List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1072,
        208
      ]
    },
    {
      "id": "7e73c8d7-a504-4f6d-8458-59c6ae795efc",
      "name": "Extract Review URLs",
      "type": "n8n-nodes-base.code",
      "position": [
        1744,
        80
      ]
    },
    {
      "id": "ba8c747d-377d-4812-b381-6c268504e4df",
      "name": "Sticky Note - Setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 720,
        "height": 1200,
        "content": "## 🛒 BrandPulse 360° — Setup & Configuration\n\n### Before Running This Workflow\n\n**A) Google Sheets Setup (required)**\nCreate a sheet with these columns (exact names):\n- `Platform` → e.g. Tokopedia, Sh"
      }
    },
    {
      "id": "c9fe4e5f-0585-4bc3-96b3-8e0c8c9c25e4",
      "name": "Sticky Note Phase Header 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        112
      ],
      "parameters": {
        "width": 432,
        "height": 256,
        "content": "## Phase 1 — Trigger & Config"
      }
    },
    {
      "id": "5649c41b-cdd1-42e3-bf7e-585713f56a72",
      "name": "Sticky Note Phase 1 Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        384
      ],
      "parameters": {
        "width": 432,
        "height": 336,
        "content": "### Phase 1 — What To Do\n* Trigger fires daily at **6:00 AM** — adjust to your timezone.\n* Google Sheets provides the product list.\n  Each row = one product SKU to monitor.\n* Loop processes each SKU i"
      }
    },
    {
      "id": "63da5a7a-da6b-45be-9e3f-b6a6cc9d6ce9",
      "name": "Sticky Note Phase Header 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        16
      ],
      "parameters": {
        "width": 880,
        "height": 336,
        "content": "##  Phase 2 — Review URL Discovery"
      }
    },
    {
      "id": "64ae885b-00d4-4aa5-ac99-9c03d112347c",
      "name": "Sticky Note Phase 2 Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        368
      ],
      "parameters": {
        "width": 880,
        "height": 400,
        "content": "###  Phase 2 — What To Do\n1. **Map Agent** crawls the product page URL and discovers review section URLs or pagination links.\n2. **Extract Review URLs** node filters to only review-pattern URLs (e.g. "
      }
    },
    {
      "id": "e8a96139-1c5f-4e71-b023-ec48c8379d3a",
      "name": "Sticky Note Phase Header 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        16
      ],
      "parameters": {
        "width": 640,
        "height": 336,
        "content": "## Phase 3 — Review Extraction & Filtering"
      }
    },
    {
      "id": "6a52db12-cb3d-4ea2-bf2d-2b9d19e48536",
      "name": "Sticky Note Phase 3 Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        368
      ],
      "parameters": {
        "width": 640,
        "height": 560,
        "content": "### Phase 3 — What To Do\n1. **General Agent** extracts full review data from each URL.\n   Target fields in your MrScraper setup:\n   - `review_text` (or review / ulasan / content)\n   - `rating` (or sta"
      }
    },
    {
      "id": "70162d1b-7fe4-4064-9db0-0b7afd740b20",
      "name": "Sticky Note Phase Header 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        16
      ],
      "parameters": {
        "width": 580,
        "height": 336,
        "content": "## Phase 4 — AI Brand Sentiment Analysis"
      }
    },
    {
      "id": "03704708-7416-4b2a-898b-b15856d0c551",
      "name": "Sticky Note Phase 4 Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        368
      ],
      "parameters": {
        "width": 580,
        "height": 720,
        "content": "### Phase 4 — What To Do\n1. **GPT-4o-mini** analyzes each review with a structured prompt.\n   Returns a JSON with all 15 brand intelligence fields:\n\n   **Sentiment & Emotion:**\n   - `sentiment_label` "
      }
    },
    {
      "id": "849ecd84-987a-40d0-8d3d-ab30d3a4a84a",
      "name": "Sticky Note Phase Header 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        16
      ],
      "parameters": {
        "width": 804,
        "height": 336,
        "content": "## Phase 5 — Storage, Alerts & Daily Digest"
      }
    },
    {
      "id": "8311b054-8516-42f7-9cb5-8effb8bf1942",
      "name": "Sticky Note Phase 5 Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        368
      ],
      "parameters": {
        "width": 804,
        "height": 720,
        "content": "### Phase 5 — What To Do\n1. **Needs Urgent Alert?** routes reviews where `action_required = true` to an immediate Slack alert.\n   Urgent conditions: urgency = critical or high, viral risk detected, co"
      }
    }
  ],
  "connections": {
    "Loop Each Review": {
      "main": [
        [
          {
            "node": "Loop Each Product SKU",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "MrScraper - Extract Review Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Brand Sentiment AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract Review URLs": {
      "main": [
        [
          {
            "node": "Loop Each Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Needs Urgent Alert?": {
      "main": [
        [
          {
            "node": "Slack - Urgent Brand Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notion - Save Review Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Each Product SKU": {
      "main": [
        [
          {
            "node": "Build Daily Brand Health Digest",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "MrScraper - Discover Review URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Target Product List": {
      "main": [
        [
          {
            "node": "Loop Each Product SKU",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Keep Only Valid Reviews": {
      "main": [
        [
          {
            "node": "Brand Sentiment AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Brand Sentiment AI Agent": {
      "main": [
        [
          {
            "node": "Parse AI Response & Format Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack - Urgent Brand Alert": {
      "main": [
        [
          {
            "node": "Notion - Save Review Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter & Enrich Review Data": {
      "main": [
        [
          {
            "node": "Keep Only Valid Reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger (Daily 6AM)": {
      "main": [
        [
          {
            "node": "Get Target Product List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notion - Save Review Analysis": {
      "main": [
        [
          {
            "node": "Loop Each Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Daily Brand Health Digest": {
      "main": [
        [
          {
            "node": "Slack - Daily Brand Digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MrScraper - Discover Review URLs": {
      "main": [
        [
          {
            "node": "Extract Review URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Response & Format Output": {
      "main": [
        [
          {
            "node": "Needs Urgent Alert?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MrScraper - Extract Review Content": {
      "main": [
        [
          {
            "node": "Filter & Enrich Review Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}