{
  "id": "hTFoOF6ytDW05sCg",
  "name": "Automated Review Intelligence System using decodo",
  "tags": [
    {
      "id": "uMBvoK3U8QYbRWJ5",
      "name": "done",
      "createdAt": "2025-11-18T13:27:52.572Z",
      "updatedAt": "2025-11-18T13:27:52.572Z"
    }
  ],
  "nodes": [
    {
      "id": "3b6fb56e-a533-4edc-96cf-a283f0a2eeb2",
      "name": "Start Review Collection",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2064,
        256
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "df2fb243-e7a1-4fd3-b8e6-c5c1ebd03158",
      "name": "Set Review Source URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -1856,
        256
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "341ddcbc-207d-46f5-9038-af2a8a7259a4",
              "name": "URL",
              "type": "string",
              "value": "https://www.trustpilot.com/review/football-mall.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7c4ccdde-734c-425f-b6e1-b1b208db64d2",
      "name": "Review Collection Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1392,
        240
      ],
      "parameters": {
        "text": "=Use Decodo to collect reviews and ratings from URL\n\nURL: {{ $('Set Review Source URL').item.json.URL }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "c3d953b1-821e-4574-9189-48a3e14d6253",
      "name": "Decodo Review Scraper",
      "type": "@decodo/n8n-nodes-decodo.decodoTool",
      "position": [
        -1264,
        496
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}",
        "headless": false,
        "markdown": true
      },
      "credentials": {
        "decodoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "920b3c0a-fe06-4848-8f33-a9f8370f7c84",
      "name": "Review Data Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1120,
        496
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"trust_score\": 3.6,\n  \"total_reviews\": 1,\n  \"rating_breakdown\": {\n    \"5_star\": 0,\n    \"4_star\": 100,\n    \"3_star\": 0,\n    \"2_star\": 0,\n    \"1_star\": 0\n  },\n  \"reviews\": [\n    {\n      \"reviewer_name\": \"Johan Bj\u00f6rnstr\u00f6m\",\n      \"reviewer_location\": \"SE\",\n      \"date\": \"Nov 13, 2024\",\n      \"rating\": 4,\n      \"comment\": \"Super bra tr\u00f6ja! Tog ett tag att komma men det var v\u00e4rt det!\",\n      \"translation\": \"Super good jersey! Took a while to arrive but it was worth it!\"\n    }\n  ],\n  \"data_source\": \"Trustpilot\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "796ee192-1f4d-4878-bae3-8a5d7590d795",
      "name": "Enrich Review Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -1280,
        784
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a390a9e5-2707-41cc-b68b-d74d4d3f6c04",
              "name": "output.overall_rating",
              "type": "string",
              "value": "={{ $json.output.overall_rating }}"
            },
            {
              "id": "898e9cf3-423f-4d4f-8168-4765029a5b67",
              "name": "output.total_reviews",
              "type": "number",
              "value": "={{ $json.output.total_reviews }}"
            },
            {
              "id": "c7286fc1-f514-4e16-bf8e-655ea9aecc22",
              "name": "output.review_summary",
              "type": "string",
              "value": "={{ $json.output.review_summary }}"
            },
            {
              "id": "ec43c6ba-726d-44ff-8c50-07253cfb9f81",
              "name": "output.detailed_reviews",
              "type": "array",
              "value": "={{ $json.output.detailed_reviews }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0557da5b-c9e6-47a6-9d3b-17ee0ad0ede6",
      "name": "OpenAI Review Analyzer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1424,
        496
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "50bd54fd-2c57-473f-95a1-2e51a6b93893",
      "name": "Store Reviews in Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1056,
        784
      ],
      "parameters": {
        "columns": {
          "value": {
            "total_reviews": "={{ $json.output.total_reviews }}",
            "overall_rating": "={{ $json.output.overall_rating }}",
            "review_summary": "={{ $json.output.review_summary }}",
            "detailed_reviews": "={{ $json.output.detailed_reviews }}"
          },
          "schema": [
            {
              "id": "overall_rating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "overall_rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "total_reviews",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "total_reviews",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "review_summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "review_summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "detailed_reviews",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "detailed_reviews",
              "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/1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI/edit?usp=drivesdk",
          "cachedResultName": "Review Aggregation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "fef00f9b-4cdc-4b58-ac2a-e2ed537827f4",
      "name": "Read Aggregated Reviews",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -800,
        784
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZanVlljO_23lPsaqO55ErWFfsYiEspUK17eaVKbvoJI/edit?usp=drivesdk",
          "cachedResultName": "Review Aggregation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "4da43422-c374-43ac-92b0-cbe99962a7b0",
      "name": "Summary Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1296,
        1184
      ],
      "parameters": {
        "text": "=Summarize the reviews and provide key insights.\n\nData: {{ $json.reviews }}\nAverage Rating: {{ $json.average_rating }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "c465e972-6d5f-4047-aa48-33f5620258fd",
      "name": "OpenAI Summary Analyzer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1328,
        1488
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cb020d3a-91ea-4413-8364-9a0fd7c26cbe",
      "name": "Summary Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1056,
        1504
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"summary\": \"string\",\n  \"key_insights\": [\"string\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "22f39613-9519-43e4-b84b-3213da6f029b",
      "name": "Send error alert",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -1648,
        480
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "Your workflow has stopped working",
        "options": {},
        "subject": "Error in workflow"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "62729373-8f9d-4991-8aef-d4606321ad84",
      "name": "Validate URL Format",
      "type": "n8n-nodes-base.if",
      "position": [
        -1648,
        256
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b5a57cef-7125-4530-a3d6-dc9a0e9c5361",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.URL }}",
              "rightValue": "http"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2ab5d61f-25e0-4e85-8dbb-7c46f72d75e7",
      "name": "Send Summary Report via Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -944,
        1184
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "={{ $json.output.summary }}",
        "options": {},
        "subject": "Report",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "03b99672-cfb2-4a10-9cb1-75cbd1b60aa1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2880,
        -64
      ],
      "parameters": {
        "width": 368,
        "height": 688,
        "content": "## How it works\nThis workflow collects customer reviews from websites like Trustpilot. It reads the reviews, saves them to Google Sheets, and creates a summary report. You get an email with the main points from all the reviews so you can understand what customers are saying.\n\n## Setup steps\n\nChange the website URL in \"Set Review Source URL\" to your review page\n\nConnect your Decodo, OpenAI, Gmail, and Google Sheets accounts\n\nMake sure your Google Sheets has columns for ratings and reviews\n\nSet the email address where you want to receive summary reports\n\nClick \"Start Review Collection\" to run the workflow\n\n## Use Coupon Code \"YARON\" and get free decodo credits\n\n### https://decodo.com/"
      },
      "typeVersion": 1
    },
    {
      "id": "b45e146a-5ff1-4681-8053-c61417cc430b",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2128,
        80
      ],
      "parameters": {
        "color": 7,
        "width": 1008,
        "height": 336,
        "content": "## Start & Get Reviews\nClick the start button to begin. This sets the review website URL, checks if it's valid, then visits the site to collect all customer reviews and ratings.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8f8431ca-886d-4a96-a426-146174e16c93",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1328,
        1056
      ],
      "parameters": {
        "color": 7,
        "width": 544,
        "height": 352,
        "content": "## Send Reports\nThis uses AI to find patterns and create a summary of what customers like and don't like and sends the review summary to your email."
      },
      "typeVersion": 1
    },
    {
      "id": "13d0384c-39f8-430d-9700-92675f0d60de",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1328,
        672
      ],
      "parameters": {
        "color": 7,
        "width": 688,
        "height": 304,
        "content": "## Save & Analyze\nThis saves all collected reviews to Google Sheets, then reads back the reviews from google sheets"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6a69c3f0-d9f5-4a03-a5d4-a259d2ea6eff",
  "connections": {
    "Summary Agent": {
      "main": [
        [
          {
            "node": "Send Summary Report via Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summary Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Summary Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Enrich Review Data": {
      "main": [
        [
          {
            "node": "Store Reviews in Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Review Data Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Review Collection Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Validate URL Format": {
      "main": [
        [
          {
            "node": "Review Collection Agent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send error alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decodo Review Scraper": {
      "ai_tool": [
        [
          {
            "node": "Review Collection Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Review Source URL": {
      "main": [
        [
          {
            "node": "Validate URL Format",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Review Analyzer": {
      "ai_languageModel": [
        [
          {
            "node": "Review Collection Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Summary Analyzer": {
      "ai_languageModel": [
        [
          {
            "node": "Summary Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Read Aggregated Reviews": {
      "main": [
        [
          {
            "node": "Summary Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Review Collection Agent": {
      "main": [
        [
          {
            "node": "Enrich Review Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Review Collection": {
      "main": [
        [
          {
            "node": "Set Review Source URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Reviews in Database": {
      "main": [
        [
          {
            "node": "Read Aggregated Reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}