AutomationFlowsAI & RAG › Sentiment Analysis of Product Reviews Using Google Sheets & Openai

Sentiment Analysis of Product Reviews Using Google Sheets & Openai

ByWeblineIndia @weblineindia on n8n.io

Automated customer feedback analyzer: Trigger: Google Sheets triggers on new product review rows. Sentiment Analysis: Review text sent to OpenAI. Writeback: Resulting sentiment (Positive, Neutral, Negative) is written back to the sheet.

Event trigger★★☆☆☆ complexityAI-powered6 nodesSentiment AnalysisOpenAI ChatGoogle Sheets TriggerGoogle Sheets
AI & RAG Trigger: Event Nodes: 6 Complexity: ★★☆☆☆ AI nodes: yes Added:

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

This workflow follows the Google Sheets → Googlesheetstrigger 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": "ugi00HVDOW9kN81g",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Sentiment Analysis of Product Reviews with OpenAI",
  "tags": [],
  "nodes": [
    {
      "id": "a0c76f41-a0f7-4c15-88ed-9372ecac1db3",
      "name": "Sentiment Analysis",
      "type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
      "position": [
        -100,
        -40
      ],
      "parameters": {
        "options": {},
        "inputText": "={{ $json.Review }}"
      },
      "typeVersion": 1
    },
    {
      "id": "4fc752b9-8dcf-4c92-9ffe-83ff63f02a6e",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -80,
        160
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2fb5412d-bf2f-4e9c-9f99-e057b6b8c0bc",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -300,
        -40
      ],
      "parameters": {
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1HOq0GIqZ80rMhlDaU9B4d4Vq9BPj1WsTzfnB1kAmY2g",
          "cachedResultUrl": "",
          "cachedResultName": "Review"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "88925ca1-3294-4655-8943-67f403044dd9",
      "name": "Updated Sentiment of Product Review",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        440,
        -60
      ],
      "parameters": {
        "columns": {
          "value": {
            "Review": "={{ $json.Review }}",
            "Sentiment": "={{ $json.sentimentAnalysis.category }}"
          },
          "schema": [
            {
              "id": "Review",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Review",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Sentiment",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Review"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1HOq0GIqZ80rMhlDaU9B4d4Vq9BPj1WsTzfnB1kAmY2g",
          "cachedResultUrl": "",
          "cachedResultName": "Review"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "dd0610dd-524c-4987-8fca-fc2ed6e1deb2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        -240
      ],
      "parameters": {
        "color": 3,
        "width": 1100,
        "height": 520,
        "content": "## Sentiment Analysis of Product Review Using OpenAI"
      },
      "typeVersion": 1
    },
    {
      "id": "be858b1d-e0c6-4337-b3da-77b748b82597",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        300
      ],
      "parameters": {
        "color": 7,
        "width": 1100,
        "height": 180,
        "content": "## Description\n\nWhenever a product review is submitted, the workflow is initiated. Each review is then sent for sentiment analysis using OpenAI. Once the sentiment is determined, the result is updated alongside the review."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "07a342c5-be90-41f9-99c3-93d918db974d",
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Sentiment Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Sentiment Analysis": {
      "main": [
        [
          {
            "node": "Updated Sentiment of Product Review",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Updated Sentiment of Product Review",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Updated Sentiment of Product Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Sentiment Analysis",
            "type": "main",
            "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

Automated customer feedback analyzer: Trigger: Google Sheets triggers on new product review rows. Sentiment Analysis: Review text sent to OpenAI. Writeback: Resulting sentiment (Positive, Neutral, Negative) is written back to the sheet.

Source: https://n8n.io/workflows/6739/ — 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

Who is this for? Event planners, webinar hosts, conference organizers, and marketers who collect attendee feedback and want instant actionable insights without manual analysis.

Google Sheets Trigger, OpenAI Chat, Google Docs +3
AI & RAG

This workflow automates the process of scraping Trustpilot reviews, extracting key details, analyzing sentiment, and saving the results to Google Sheets. It uses OpenAI for sentiment analysis and HTML

Information Extractor, HTTP Request, Google Sheets +2
AI & RAG

Use cases are many: Whether you're a YouTube creator exploring feedback, a social media manager fine-tuning engagement strategy, a brand team monitoring campaign sentiment, or a marketing agency condu

OpenAI Chat, HTTP Request, Google Gemini Chat +2
AI & RAG

Influencers, marketers, and data teams who need instant insights into audience sentiment—without manual exports or scattered tools. Manual exports from YouTube Studio Time-consuming sentiment tagging

OpenAI Chat, Google Sheets, HTTP Request +1
AI & RAG

Google Sheets → OpenAI GPT-4o → QuickChart → Gmail Fetches customer reviews from a Google Sheet. Classifies each review as Positive, Neutral or Negative with GPT-4o-mini. Writes the sentiment back to

Sentiment Analysis, OpenAI Chat, Google Sheets +2