AutomationFlowsAI & RAG › Analyze & Summarize Amazon Product Reviews with Decodo, Openai and Google Sheets

Analyze & Summarize Amazon Product Reviews with Decodo, Openai and Google Sheets

ByRanjan Dailata @ranjancse on n8n.io

Please note - This workflow is only available on n8n self-hosted as it’s making use of the community node for the Decodo Web Scraping

Event trigger★★★★☆ complexityAI-powered14 nodes@Decodo/N8N Nodes DecodoInformation ExtractorRead Write FileGoogle SheetsOpenAI Chat
AI & RAG Trigger: Event Nodes: 14 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10659 — we link there as the canonical source.

This workflow follows the Google Sheets → Informationextractor recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "iHsB0BGpJVAsox6F",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Analyze & Summarize Amazon Product Reviews with Decodo, OpenAI and Google Sheets",
  "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": "a29b7fb0-3ed7-44c2-b11b-7a17d69537db",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -720,
        -64
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5d2e9f86-bd81-4313-aa7b-0bf6b9f01d32",
      "name": "Set the Input Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -512,
        -64
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a9346a9a-cc65-4505-8e47-4c15a3073c61",
              "name": "amazon_url",
              "type": "string",
              "value": "https://www.amazon.com/Amazon-Basics-Bluetooth-Wireless-Headphones/dp/B0BVM1PSYN"
            },
            {
              "id": "6dd23c79-7c19-49c7-85b8-c36ae5d7257d",
              "name": "geo",
              "type": "string",
              "value": "India"
            },
            {
              "id": "8c969d62-7b25-49c6-a1c4-2d6141536e50",
              "name": "file_name",
              "type": "string",
              "value": "Amazon-Basics-Bluetooth-Wireless-Headphones-B0BVM1PSYN.json"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "28371bb1-f1f6-4bd1-b424-708882d083ac",
      "name": "Decodo Amazon Scraper",
      "type": "@decodo/n8n-nodes-decodo.decodo",
      "position": [
        -208,
        -64
      ],
      "parameters": {
        "geo": "={{ $json.geo }}",
        "url": "={{ $json.amazon_url }}",
        "operation": "amazon"
      },
      "credentials": {
        "decodoApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "7752d0a8-39bd-4746-ac4f-08d5985f74e8",
      "name": "Extract the Reviews",
      "type": "n8n-nodes-base.code",
      "position": [
        128,
        -64
      ],
      "parameters": {
        "jsCode": "return {\n  \"reviews\": $input.first().json.results[0].content.results.reviews,\n  \"reviews_ai_summary\": $input.first().json.results[0].content.results.review_ai_summary\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "396506b9-28af-41e6-86ac-d43ed1b37867",
      "name": "Perform Review Analysis",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        336,
        -64
      ],
      "parameters": {
        "text": "=Analyze and provide me the comprehensive and abstract reviews for the following\n\n {{ $json.reviews.toJsonString() }}",
        "options": {},
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"comprehensive_review\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n      \"abstract_review\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
      },
      "retryOnFail": true,
      "typeVersion": 1.2
    },
    {
      "id": "36603325-e772-4fec-8bc4-89cc87a1e27d",
      "name": "Create a Binary Response",
      "type": "n8n-nodes-base.function",
      "position": [
        128,
        -352
      ],
      "parameters": {
        "functionCode": "\n\nitems[0].binary = {\n  data: {\n    data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n  }\n};\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "id": "17f5028f-66af-48c8-8274-624e3135fa36",
      "name": "Write the Structured JSON to Disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        304,
        -352
      ],
      "parameters": {
        "options": {},
        "fileName": "=C:\\\\{{ $('Set the Input Fields').item.json.file_name }}",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "9115fd05-7d8a-468a-8ef0-9d14cf6b8a32",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -464
      ],
      "parameters": {
        "color": 7,
        "width": 832,
        "height": 288,
        "content": "## 2. Export Data Handling\n\nPersist the Amazon Scraped Response to Disk"
      },
      "typeVersion": 1
    },
    {
      "id": "e03e2a33-1049-4cf7-9258-33d43396368a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -160
      ],
      "parameters": {
        "color": 7,
        "width": 832,
        "height": 400,
        "content": "## 3. Amazon Review Analysis\n\nComprehensive and Abstract Review Analysis of the Amazon Scraped Content\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b2666d86-2fe3-4412-abf8-7a101461b972",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        -176
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 304,
        "content": "## 1. Amazon URL Scraper\n\nWeb Scrape the Amazon URL via the Decode"
      },
      "typeVersion": 1
    },
    {
      "id": "2ef973af-687a-44f8-98cb-fdea180d489c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        -768
      ],
      "parameters": {
        "width": 768,
        "height": 1072,
        "content": "## How It Works\n\nThis workflow automates **Amazon product review analysis** using **Decodo**, **OpenAI GPT-4.1-mini**, and **Google Sheets**.\n\n* **Trigger & Input:** Manually start with `amazon_url`, `geo`, and `file_name`.\n* **Scrape Reviews:** Decodo fetches real-time product reviews.\n* **Extract & Clean:** Review text is structured into a clean JSON format.\n* **AI Analysis (GPT-4.1-mini):**\n\n  * **Comprehensive Summary:** Detailed insights on pros, cons, and opinions.\n  * **Abstract Summary:** Concise sentiment overview.\n* **Store Output:** Saves results as `.json` for reference.\n* **Sync to Google Sheets:** Updates or adds rows for tracking and reporting.\n\n## Setup\n\n* [ ] **Import & Configure Credentials**\n\n1. Import the JSON workflow into n8n.\n2. Add credentials:\n\n   * **Decodo API** \u2013 Scrape Amazon product reviews.\n   * **OpenAI API** \u2013 Generate summaries.\n   * **Google Sheets OAuth2** \u2013 Store results.\n\n* [ ] **Set Input Parameters**\n  In the **\u201cSet Input Fields\u201d** node:\n\n- `amazon_url` \u2192 Target product link.\n- `geo` \u2192 Region code (e.g., `US`, `IN`).\n- `file_name` \u2192 Output JSON name.\n\n## Customize\n\n* **Multi-Product Automation**\n  Replace the **Manual Trigger** with a **Spreadsheet Trigger** or **Webhook** to process multiple product URLs automatically.\n\n* **Sentiment Scoring**\n  Add an OpenAI node to classify each review as *positive*, *neutral*, or *negative*.\n\n* **Database Integration**\n  Swap Google Sheets for **MySQL**, **PostgreSQL**, or **Notion** to build scalable data pipelines.\n\n* **Prompt Optimization**\n  Refine the **OpenAI node prompt** to highlight tone, key features, or recurring complaints for deeper insights.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3a9941dc-3e5b-4651-8c8b-3ef5f640c031",
      "name": "Append or update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        688,
        -64
      ],
      "parameters": {
        "columns": {
          "value": {
            "all_reviews": "={{ $('Extract the Reviews').item.json.reviews.toJsonString() }}",
            "product_reviews": "={{ $json.output.toJsonString() }}"
          },
          "schema": [
            {
              "id": "product_reviews",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "product_reviews",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "all_reviews",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "all_reviews",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "product_reviews"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16IZ8QSrMVnN_oddv_ltGWm6-nAS5d53boJmbN_czLpc/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "16IZ8QSrMVnN_oddv_ltGWm6-nAS5d53boJmbN_czLpc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16IZ8QSrMVnN_oddv_ltGWm6-nAS5d53boJmbN_czLpc/edit?usp=drivesdk",
          "cachedResultName": "Amazon Product Reviews Decodo"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c7b744bd-5f42-499a-8fab-c052b195d765",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -768
      ],
      "parameters": {
        "color": 3,
        "width": 448,
        "height": 288,
        "content": "## Disclaimer\n\n![Logo](https://cdn.brandfetch.io/idIeG9_eXK/w/100/h/100/theme/dark/icon.jpeg?c=1bxid64Mup7aczewSAYMX&t=1756483136894)\n\nThis workflow is only available on n8n self-hosted as it's making use of the community node for the Decodo Web Scraping"
      },
      "typeVersion": 1
    },
    {
      "id": "fc1080c8-e4b4-42ef-879b-7e0d075a2f82",
      "name": "OpenAI Chat Model for Review Analysis",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        336,
        96
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {
          "temperature": 0
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9c0ac605-89eb-4a34-9bfa-1978871a1fc6",
  "connections": {
    "Extract the Reviews": {
      "main": [
        [
          {
            "node": "Perform Review Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set the Input Fields": {
      "main": [
        [
          {
            "node": "Decodo Amazon Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decodo Amazon Scraper": {
      "main": [
        [
          {
            "node": "Extract the Reviews",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create a Binary Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perform Review Analysis": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a Binary Response": {
      "main": [
        [
          {
            "node": "Write the Structured JSON to Disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set the Input Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model for Review Analysis": {
      "ai_languageModel": [
        [
          {
            "node": "Perform Review Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Please note - This workflow is only available on n8n self-hosted as it’s making use of the community node for the Decodo Web Scraping

Source: https://n8n.io/workflows/10659/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Community nodes can only be installed on self-hosted instances of n8n.

N8N Nodes Mcp, Information Extractor, HTTP Request +3
AI & RAG

Please note - This workflow is only available on n8n self-hosted as it's making use of the community node for the Decodo Web Scraping

Read Write File, @Decodo/N8N Nodes Decodo, Information Extractor +2
AI & RAG

This workflow is designed for: Recruiters, Talent Intelligence Teams, and HR tech builders automating resume ingestion. Developers and data engineers building ATS (Applicant Tracking Systems) or CRM d

HTTP Request, Information Extractor, OpenAI Chat +2
AI & RAG

Eliminate 90% of manual work in procurement by automating quote requests, response tracking, price extraction, and supplier follow-ups. This complete automation handles everything from sending persona

Gmail, Google Sheets, Information Extractor +2
AI & RAG

Transform your Gmail sent folder into a comprehensive, enriched contact database automatically. This workflow processes hundreds or thousands of sent emails, extracting and enriching contact informati

HTTP Request, @Brave/N8N Nodes Brave Search, Gmail +3