N
n8n Store
Workflow Market
TrustPilot SaaS Product Review Tracker with Bright Data & OpenAI

TrustPilot SaaS Product Review Tracker with Bright Data & OpenAI

by ranjancse0 views

Description

Categories

📊 Productivity🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.mergen8n-nodes-base.functionn8n-nodes-base.aggregaten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "zwjbwtOLKbB9k1df",
  "meta": {
    "instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
    "templateCredsSetupCompleted": true
  },
  "name": "TrustPilot SaaS Product Review Tracker with Bright Data & OpenAI",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ZOwtAMLepQaGW76t",
      "name": "Building Blocks",
      "createdAt": "2025-04-13T15:23:40.462Z",
      "updatedAt": "2025-04-13T15:23:40.462Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    }
  ],
  "nodes": [
    {
      "id": "61361e03-f532-48ff-bea7-9902ec770ecc",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1700,
        -210
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f962255b-66cc-43a6-8d56-ce12905a03cf",
      "name": "Set URL and Bright Data Zone",
      "type": "n8n-nodes-base.set",
      "position": [
        -1480,
        -210
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3aedba66-f447-4d7a-93c0-8158c5e795f9",
              "name": "url",
              "type": "string",
              "value": "https://www.trustpilot.com/review/brightdata.com"
            },
            {
              "id": "4e7ee31d-da89-422f-8079-2ff2d357a0ba",
              "name": "zone",
              "type": "string",
              "value": "web_unlocker1"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6b1c8aa5-143f-47cd-acb4-f377fdbb5e66",
      "name": "Perform Bright Data Web Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1260,
        -210
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "={{ $json.zone }}"
            },
            {
              "name": "url",
              "value": "={{ $json.url }}"
            },
            {
              "name": "format",
              "value": "raw"
            },
            {
              "name": "data_format",
              "value": "markdown"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kdbqXuxIR8qIxF7y",
          "name": "Header Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1c6175c1-2378-4c5e-99ea-20f2e3150ae3",
      "name": "Markdown to Textual Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -1040,
        -210
      ],
      "parameters": {
        "text": "=You need to analyze the below markdown and convert to textual data. Please do not output with your own thoughts. Make sure to output with textual data only with no links, scripts, css etc.\n\n{{ $json.data }}",
        "messages": {
          "messageValues": [
            {
              "message": "You are a markdown expert"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "d6202509-b9ba-4c34-96b7-c1dde45db533",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -640
      ],
      "parameters": {
        "width": 400,
        "height": 320,
        "content": "## Note\n\nDeals with the Trust Pilot data extraction and summarization by utilizing the Bright Data Web Unlocker Product.\n\n**Please make sure to set the TrustPilot URL with the Bright Data zone name. Also update the Webhook Notification URL of your interest**"
      },
      "typeVersion": 1
    },
    {
      "id": "be54db23-e209-4f46-af32-9adb8d19bac9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1260,
        -640
      ],
      "parameters": {
        "width": 480,
        "height": 320,
        "content": "## LLM Usages\n\nOpenAI GPT 4o model is being used.\n\nBasic LLM Chain for converting the markdown to textual content.\n\nInformation Extractor is being used for transforming the markdown to textual content. The Structured Data extraction is also done via the Information Extractor node.\n\nSummarization Chain is being used for creating a summary of the extracted Crunchbase textual content."
      },
      "typeVersion": 1
    },
    {
      "id": "16abf06e-1974-47c0-9b38-78c58053c54b",
      "name": "Structured JSON Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        -580,
        40
      ],
      "parameters": {
        "text": "=Extract the review mentioned below\n\n {{ $json.text }}",
        "options": {},
        "schemaType": "fromJson",
        "jsonSchemaExample": "{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Organization\",\n  \"name\": \"Bright Data\",\n  \"url\": \"https://brightdata.com\",\n  \"logo\": \"https://brightdata.com/assets/logo.png\",\n  \"sameAs\": [\n    \"https://www.trustpilot.com/review/brightdata.com\"\n  ],\n  \"description\": \"Bright Data, the world's #1 web data platform, simplifies the hard work of collecting & preparing web data through SaaS, providing ethical, high-speed, and compliant proxy solutions.\",\n  \"address\": {\n    \"@type\": \"PostalAddress\",\n    \"streetAddress\": \"4 Hamahshev\",\n    \"addressLocality\": \"Netanya\",\n    \"postalCode\": \"4250714\",\n    \"addressCountry\": \"IL\"\n  },\n  \"contactPoint\": {\n    \"@type\": \"ContactPoint\",\n    \"email\": \"[email protected]\",\n    \"contactType\": \"Customer Support\",\n    \"availableLanguage\": [\"English\"]\n  },\n  \"aggregateRating\": {\n    \"@type\": \"AggregateRating\",\n    \"ratingValue\": \"4.3\",\n    \"reviewCount\": 831,\n    \"bestRating\": \"5\",\n    \"worstRating\": \"1\"\n  },\n  \"review\": [\n    {\n      \"@type\": \"Review\",\n      \"author\": {\n        \"@type\": \"Person\",\n        \"name\": \"Ranjit Wankhede\"\n      },\n      \"datePublished\": \"2025-04-29\",\n      \"reviewBody\": \"Incredible support and empathy. Shemi truly listened and understood my concerns, which made all the difference. I felt heard and cared for throughout the process. Outstanding service!\",\n      \"reviewRating\": {\n        \"@type\": \"Rating\",\n        \"ratingValue\": \"5\",\n        \"bestRating\": \"5\",\n        \"worstRating\": \"1\"\n      }\n    }\n  ]\n}\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7679de49-6ec5-4af2-9203-70e8f6f14f69",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        760,
        -440
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "data",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "data"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wRJ1tInpPq35WJuKwWaD_nPvcsXmsXJxWgcTjhAinEQ/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wRJ1tInpPq35WJuKwWaD_nPvcsXmsXJxWgcTjhAinEQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wRJ1tInpPq35WJuKwWaD_nPvcsXmsXJxWgcTjhAinEQ/edit?usp=drivesdk",
          "cachedResultName": "SaaS Product Review"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Zjoxh2BUZ6VXGQhA",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "e557ffcd-cf51-424c-acf7-3596fb7bb4f5",
      "name": "Create a binary data for Structured Data Extract",
      "type": "n8n-nodes-base.function",
      "position": [
        760,
        -240
      ],
      "parameters": {
        "functionCode": "items[0].binary = {\n  data: {\n    data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n  }\n};\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "id": "e1d2fcab-c139-42df-95ca-ae8ab5aa8be2",
      "name": "Write the structured content to disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        980,
        -240
      ],
      "parameters": {
        "options": {},
        "fileName": "=d:\\TrustPilot-StructuredData.json",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "f01185d3-d41e-41a2-94fb-771eaf7d8f42",
      "name": "Summarization Chain",
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "position": [
        -460,
        -640
      ],
      "parameters": {
        "options": {
          "summarizationMethodAndPrompts": {
            "values": {
              "prompt": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\n",
              "combineMapPrompt": "Write a concise summary of the following:\n\n\n\"{text}\"\n"
            }
          }
        },
        "chunkingMode": "advanced"
      },
      "typeVersion": 2
    },
    {
      "id": "4579a12b-e6a7-4adb-8892-0bd3c4009e90",
      "name": "Merge the responses",
      "type": "n8n-nodes-base.merge",
      "position": [
        220,
        -240
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "e310c62c-2ba4-4dbf-a47d-11b75e6e0e2c",
      "name": "Code to extract the first element",
      "type": "n8n-nodes-base.code",
      "position": [
        -140,
        40
      ],
      "parameters": {
        "jsCode": "return $input.first().json.output"
      },
      "typeVersion": 2
    },
    {
      "id": "b784fd99-2016-439d-aff0-f489a0f183af",
      "name": "Aggregate the responses",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        440,
        -240
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "4ce9f460-0158-4d82-9467-881866e54215",
      "name": "Initiate a Webhook Notification for the Structured Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        760,
        -40
      ],
      "parameters": {
        "url": "https://webhook.site/7b5380a0-0544-48dc-be43-0116cb2d52c2",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "summary",
              "value": "={{ $json.data }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9dd0000c-daaa-4fa7-b3eb-6b389fb86f89",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        -720
      ],
      "parameters": {
        "color": 6,
        "width": 440,
        "height": 460,
        "content": "## Summarization"
      },
      "typeVersion": 1
    },
    {
      "id": "7b6e0751-d6af-4f79-9eb5-f45e1f1452ac",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -20
      ],
      "parameters": {
        "color": 4,
        "width": 740,
        "height": 420,
        "content": "## Structured Data Extract"
      },
      "typeVersion": 1
    },
    {
      "id": "64723920-d48a-4f60-b3cb-d301afc0f3e0",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -600
      ],
      "parameters": {
        "color": 3,
        "width": 1000,
        "height": 760,
        "content": "## Outbound Data Push\nOutbound data handling by merging, aggregating the data and pushing the same to multiple sources such as Google Sheets, Save to Disk, Webhook Notification"
      },
      "typeVersion": 1
    },
    {
      "id": "a2f3ac27-3356-418d-96bc-2b14a87b375f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -1080
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 400,
        "content": "## Logo\n\n\n![logo](https://images.seeklogo.com/logo-png/43/1/brightdata-logo-png_seeklogo-439974.png)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9128bb19-6bd1-48bc-8219-fa43e2b86218",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -960,
        20
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ac51c8fe-6441-41ef-b90d-a03e310bd365",
      "name": "OpenAI Chat Model for Structured Data",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -500,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7faf6ec0-2ff6-4f23-9122-5f0333c068b2",
      "name": "OpenAI Chat Model for Summarization",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -420,
        -420
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "vPKynKbDzJ5ZU4cU",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "68dc5e3c-3e36-4be6-93b3-ba70613f64c6",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Markdown to Textual Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Merge the responses": {
      "main": [
        [
          {
            "node": "Aggregate the responses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarization Chain": {
      "main": [
        [
          {
            "node": "Merge the responses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate the responses": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Initiate a Webhook Notification for the Structured Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create a binary data for Structured Data Extract",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set URL and Bright Data Zone": {
      "main": [
        [
          {
            "node": "Perform Bright Data Web Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured JSON Data Extractor": {
      "main": [
        [
          {
            "node": "Code to extract the first element",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perform Bright Data Web Request": {
      "main": [
        [
          {
            "node": "Markdown to Textual Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code to extract the first element": {
      "main": [
        [
          {
            "node": "Merge the responses",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Set URL and Bright Data Zone",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown to Textual Data Extractor": {
      "main": [
        [
          {
            "node": "Structured JSON Data Extractor",
            "type": "main",
            "index": 0
          },
          {
            "node": "Summarization Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Summarization": {
      "ai_languageModel": [
        [
          {
            "node": "Summarization Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Structured Data": {
      "ai_languageModel": [
        [
          {
            "node": "Structured JSON Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Create a binary data for Structured Data Extract": {
      "main": [
        [
          {
            "node": "Write the structured content to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流