{
  "name": "Analyze Customer Reviews from 5 Platforms with Thordata Scraping & GPT-4.1 Reports",
  "nodes": [
    {
      "id": "7a22b325-5cc4-4410-a3e0-4b6157bf2fd1",
      "name": "Universal Safe Parser",
      "type": "n8n-nodes-base.code",
      "position": [
        784,
        3632
      ]
    },
    {
      "id": "a3ebf41d-973d-4426-800a-82454b59cd56",
      "name": "URL Builder",
      "type": "n8n-nodes-base.code",
      "position": [
        320,
        3632
      ]
    },
    {
      "id": "6a3780d0-3d41-4572-8fbd-09aa88e15669",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -688,
        3616
      ]
    },
    {
      "id": "33b6d69b-4e91-4d18-af3f-71f1ddfaa4ae",
      "name": "Prepare Review Sources",
      "type": "n8n-nodes-base.code",
      "position": [
        -352,
        3616
      ]
    },
    {
      "id": "202cbefc-0ac8-4f8f-b497-802f3598c0b1",
      "name": "Initialize Pagination",
      "type": "n8n-nodes-base.set",
      "position": [
        96,
        3632
      ]
    },
    {
      "id": "347afbbd-8f94-41aa-b0db-b159f70431a9",
      "name": "Loop Through Sources (Rate Limit Safe)",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -128,
        3616
      ]
    },
    {
      "id": "5708ec7e-2a50-49b1-bbd5-dc2b514e29ae",
      "name": "Scrape Page (Robust) via Thordata API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        560,
        3632
      ]
    },
    {
      "id": "fb1e5835-d23c-47fd-a4cc-54648f5b4817",
      "name": "Has More Pages?",
      "type": "n8n-nodes-base.if",
      "position": [
        1024,
        3632
      ]
    },
    {
      "id": "e2131ae6-aff2-47c8-8fbf-768f38696bc2",
      "name": "Increment Page Counter",
      "type": "n8n-nodes-base.set",
      "position": [
        1312,
        3616
      ]
    },
    {
      "id": "e457c5c7-51df-491b-addb-03e718d3ddfb",
      "name": "Rate Limit Delay (2s)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1520,
        3616
      ]
    },
    {
      "id": "c7af6943-9a5c-4d47-a1c6-4a18f76d8d40",
      "name": "Deduplicate & Summarize All Reviews",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        3424
      ]
    },
    {
      "id": "021e2bfb-a706-4932-888a-c54f43db63a9",
      "name": "Prepare Data for AI Analysis",
      "type": "n8n-nodes-base.code",
      "position": [
        320,
        3424
      ]
    },
    {
      "id": "861af668-6cae-4e1e-9c72-1c29b959506e",
      "name": "AI Review Sentiment Analysis",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        544,
        3424
      ]
    },
    {
      "id": "e0b090cb-ef8b-4b07-aa89-46df26731575",
      "name": "Return Final Results",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        656,
        3152
      ]
    },
    {
      "id": "1bda3f48-85b5-4a18-b5e6-7bb4e1d866f0",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -688,
        3840
      ]
    },
    {
      "id": "e0faf882-df2d-424f-956c-42bcf461b92c",
      "name": "Form Trigger – Submit Sources",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -688,
        3408
      ]
    },
    {
      "id": "1d1fd03e-0fdf-47a1-8773-b542a7ed192a",
      "name": "Render Elegant Email Template",
      "type": "n8n-nodes-base.code",
      "position": [
        912,
        3424
      ]
    },
    {
      "id": "202ad2fa-de6d-491b-85a3-6fe7d044af9e",
      "name": "Send Executive Summary Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1152,
        3424
      ]
    },
    {
      "id": "30be5cf7-662f-4c0f-94ec-0c48a460ebef",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        2160
      ],
      "parameters": {
        "width": 1088,
        "height": 864,
        "content": "## 🌟 Scrape & AI-Analyze Reviews from 5 Platforms in One Click\n\nAutomatically collect hundreds of customer reviews from Trustpilot, Capterra, Chrome Web Store, TrustRadius, and Product Hunt → deduplic"
      }
    },
    {
      "id": "24334689-b603-4ddd-8a40-4083b3852cc5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        3616
      ],
      "parameters": {
        "width": 368,
        "height": 128,
        "content": "### 🔄 STEP 1: Choose your input  \n• Manual Trigger → quick test with defaults  \n• Form Trigger → user-friendly UI  \n• Webhook → integrate with Zapier/Make/etc."
      }
    },
    {
      "id": "42c3e5a6-e35c-446a-b52a-a94eaa95a3ef",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        3904
      ],
      "parameters": {
        "width": 896,
        "height": 96,
        "content": "### 🛠️ STEP 2: Build source list  \nAccepts Trustpilot domain, full URLs for Capterra/Chrome/TrustRadius, and Product Hunt slug → creates clean source objects."
      }
    },
    {
      "id": "2de7f216-99a1-4519-864b-dbd102181e89",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        3360
      ],
      "parameters": {
        "width": 416,
        "height": null,
        "content": "### 🔄 STEP 3: Smart pagination loop (rate-limit safe)  \n• Handles all 5 sites differently  \n• Builds correct ?page= URLs  \n• Scrapes via Thordata (JS-rendered + proxy rotation)  \n• Stops when no more "
      }
    },
    {
      "id": "7b3943e3-dbf4-4fb4-8073-68ed2f079ff2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        3216
      ],
      "parameters": {
        "width": 352,
        "height": 128,
        "content": "### 🧹 STEP 4: Global storage + deduplication  \nCollects reviews from every source & page → unique IDs prevent duplicates even if formatting changes."
      }
    },
    {
      "id": "7653a681-20bc-4680-ac30-d7524d95f330",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        3232
      ],
      "parameters": {
        "width": 416,
        "height": 128,
        "content": "### 🤖 STEP 5: AI analysis & beautiful report  \n• All reviews sent together to GPT-4.1  \n• Structured insights + sentiment scoring  \n• Renders responsive HTML email  \n• Sends executive summary automati"
      }
    }
  ],
  "connections": {
    "URL Builder": {
      "main": [
        [
          {
            "node": "Scrape Page (Robust) via Thordata API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Prepare Review Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has More Pages?": {
      "main": [
        [
          {
            "node": "Increment Page Counter",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Through Sources (Rate Limit Safe)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Prepare Review Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initialize Pagination": {
      "main": [
        [
          {
            "node": "URL Builder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rate Limit Delay (2s)": {
      "main": [
        [
          {
            "node": "URL Builder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Universal Safe Parser": {
      "main": [
        [
          {
            "node": "Has More Pages?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Increment Page Counter": {
      "main": [
        [
          {
            "node": "Rate Limit Delay (2s)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Review Sources": {
      "main": [
        [
          {
            "node": "Loop Through Sources (Rate Limit Safe)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Review Sentiment Analysis": {
      "main": [
        [
          {
            "node": "Render Elegant Email Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Data for AI Analysis": {
      "main": [
        [
          {
            "node": "Return Final Results",
            "type": "main",
            "index": 0
          },
          {
            "node": "AI Review Sentiment Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Executive Summary Email": {
      "main": [
        []
      ]
    },
    "Render Elegant Email Template": {
      "main": [
        [
          {
            "node": "Send Executive Summary Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form Trigger – Submit Sources": {
      "main": [
        [
          {
            "node": "Prepare Review Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deduplicate & Summarize All Reviews": {
      "main": [
        [
          {
            "node": "Prepare Data for AI Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Page (Robust) via Thordata API": {
      "main": [
        [
          {
            "node": "Universal Safe Parser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Through Sources (Rate Limit Safe)": {
      "main": [
        [
          {
            "node": "Deduplicate & Summarize All Reviews",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Initialize Pagination",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}