AutomationFlowsAI & RAG › Automated Feedaty Review Scraper Using Scrapegraphai & Gemini 3

Automated Feedaty Review Scraper Using Scrapegraphai & Gemini 3

Original n8n title: Automated Feedaty Review Scraper 📈 Using Scrapegraphai & Gemini 3

ByDavide Boizza @n3witalia on n8n.io

This workflow automates the entire process of collecting, analyzing, and reporting customer reviews from Feedaty (similar to Trustpilot) using ScrapeGraphAI, transforming raw user feedback into a structured, management-ready reputation report in PDF using new Gemini 3 model and…

Event trigger★★★★☆ complexityAI-powered27 nodesSentiment AnalysisChain LlmN8N Nodes ScrapegraphaiGoogle Gemini ChatGoogle DriveHTTP RequestAgent
AI & RAG Trigger: Event Nodes: 27 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Chainllm 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": "09Mss-bSI610vP0LI3hTu",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Feedaty Review Scraper & PDF Report",
  "tags": [],
  "nodes": [
    {
      "id": "96b6771e-cb07-4434-b11b-f86aea031072",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1856,
        1120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3f18558c-0b12-498f-92f8-1555a159d6bf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1664,
        960
      ],
      "parameters": {
        "color": 7,
        "width": 228,
        "height": 502,
        "content": "## STEP 1 - Setup\nSetup The Feedaty company identifier and The maximum number of review pages to scrape (eg. maxisport)"
      },
      "typeVersion": 1
    },
    {
      "id": "158a8d35-37cd-40e3-b19f-daf86080245c",
      "name": "Set Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        -1600,
        1120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "556e201d-242a-4c0e-bc13-787c2b60f800",
              "name": "company_id",
              "type": "string",
              "value": "XXX"
            },
            {
              "id": "a1f239df-df08-41d8-8b78-d6502266a581",
              "name": "max_page",
              "type": "number",
              "value": 2
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "77db7bf7-d170-4ec3-b5c1-242ccd288f54",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -384,
        768
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "b82f77ed-5b71-408a-9028-398de21ed8fd",
      "name": "Sentiment Analysis1",
      "type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
      "position": [
        128,
        1040
      ],
      "parameters": {
        "options": {
          "categories": "Positive, Neutral, Negative",
          "systemPromptTemplate": "You are highly intelligent and accurate sentiment analyzer. Analyze the sentiment of the provided text. Categorize it into one of the following: {categories}. Use the provided formatting instructions. Only output the JSON."
        },
        "inputText": "=Vote: {{ $json.vote }}/5\nReview: {{ $json.review }}"
      },
      "typeVersion": 1
    },
    {
      "id": "bc0d5b91-572c-4716-bd44-4773b4989455",
      "name": "HTML Converter",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1888,
        560
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=Translate into HTML by analyzing the content. I only need the HTML, not the opening tags \"```html\\n and the closing \\n```."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "e8f90edf-3a17-419c-8094-455c43fca932",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 1232,
        "height": 496,
        "content": "## STEP 4 - AI-Powered Reputation Report\nA specialized AI agent analyzes all reviews at a company level, not product level.\nIt generates a structured management report\nThe report is automatically sent via email to stakeholders."
      },
      "typeVersion": 1
    },
    {
      "id": "d44615e7-ca25-4475-bf05-6d985e59373f",
      "name": "Aggregate reviews",
      "type": "n8n-nodes-base.code",
      "position": [
        1056,
        560
      ],
      "parameters": {
        "jsCode": "const reviews = $input.all().map(item => item.json);\n\nreturn [\n  {\n    json: {\n      reviews,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "b456ae5a-d94a-4859-92c1-6f959085b4e6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1664,
        432
      ],
      "parameters": {
        "width": 1216,
        "height": 512,
        "content": "# Automated Feedaty Review Scraper using ScrapegraphAI & Reputation Analysis \n\n\nThis workflow automates the entire process of collecting, analyzing, and reporting **customer reviews from Feedaty** (similar to Trustpilot) using [ScrapeGraphAI](https://dashboard.scrapegraphai.com/?via=n3witalia), transforming raw user feedback into a structured, management-ready **reputation report in PDF** using new **Gemini 3** model  and [ConvertAPI](https://convertapi.com?ref=n3witalia) & Upload to Google Drive.\n\n### **How it works:**\n\nThis workflow automates the end-to-end process of extracting and analyzing customer reviews from Feedaty. It uses ScrapeGraphAI to collect reviews, capturing details such as date, rating, and text. Each review is then processed through an AI model for sentiment analysis (Positive, Neutral, or Negative). The analyzed data is consolidated and interpreted by a reputation analysis agent to produce a comprehensive management-ready report. The final report is formatted as HTML/PDF using ConvertAPI and automatically uploaded to a predefined Google Drive folder, completing a seamless pipeline from raw feedback to actionable business insights.\n\n\n### **Setup steps:**\n\nConfigure the Feedaty company identifier and review limits in the \u201cSet Parameters\u201d node. Connect the required APIs: ScrapeGraphAI for scraping, Google Gemini for AI analysis and report creation, ConvertAPI for PDF conversion, and Google Drive OAuth2 for upload. Optionally adjust the \u201cLimit reviews\u201d and \u201cCompany Reputation Management\u201d nodes to fine-tune data volume and report tone. Confirm the correct Google Drive folder ID in the \u201cUpload file\u201d node, then trigger the workflow manually to execute the full process from data scraping to report delivery.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9f455240-2a5e-43a3-a8de-7c6a0f6f5c93",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1424,
        960
      ],
      "parameters": {
        "color": 7,
        "width": 980,
        "height": 502,
        "content": "## STEP 2 - Automated Review Scraping\nReviews are fetched directly from Feedaty using ScrapeGraphAI, ordered by recency. Pagination is handled automatically to respect the configured page limit. If you want, you can Limit the number of reviews"
      },
      "typeVersion": 1
    },
    {
      "id": "ec9c2bdb-63d5-477c-8f76-5224334087df",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        960
      ],
      "parameters": {
        "color": 7,
        "width": 1380,
        "height": 502,
        "content": "## STEP 3 - Content Extraction & Sentiment Analysis\nEach review page is converted into clean Markdown, including content rendered via JavaScript.\nEach review\u2019s text is analyzed and classified as Positive, Neutral, or Negative.\nResults are normalized into consistent, machine-readable fields."
      },
      "typeVersion": 1
    },
    {
      "id": "825ead35-4322-4d39-be0a-48ea398cabbc",
      "name": "Set fields",
      "type": "n8n-nodes-base.set",
      "position": [
        752,
        1088
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a9fd22c3-89d3-4a86-bf5b-141d78a54078",
              "name": "date",
              "type": "string",
              "value": "={{ $json.date }}"
            },
            {
              "id": "8646583c-cf48-4490-ad52-a435ebd0a7d2",
              "name": "description",
              "type": "string",
              "value": "={{ $json.review }}"
            },
            {
              "id": "1c07ff1c-7ab2-4527-abfd-ead35a584fcf",
              "name": "vote",
              "type": "number",
              "value": "={{ $json.vote }}"
            },
            {
              "id": "675abd19-e571-480f-8c49-e7e09bba426f",
              "name": "sentiment",
              "type": "string",
              "value": "={{ $json.sentimentAnalysis.category }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3dc0c14e-853a-44bb-88b1-1c4db91027c2",
      "name": "Autonomously extract live data from any website perfect for e commerce job boards lead capture and more",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        -1328,
        1120
      ],
      "parameters": {
        "totalPages": "={{ $json.max_page }}",
        "userPrompt": "=Extract all user reviews with date (convert to dd/MM/yyyy), score, review text and review id which is the value in this html portion (e.g. <a href=\"#\" name=\"12133072\"></a>)",
        "websiteUrl": "=https://www.feedaty.com/recensioni/{{ $json.company_id }}",
        "outputSchema": "{\n  \"type\": \"array\",\n  \"title\": \"ProductSchema\",\n  \"properties\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"title\": \"id\",\n      \"description\": \"ID of review\"\n    },\n    \"date\": {\n      \"type\": \"string\",\n      \"title\": \"date\",\n      \"description\": \"Date of review\"\n    },\n    \"vote\": {\n      \"type\": \"number\",\n      \"title\": \"vote\",\n      \"description\": \"Vote of the review\"\n    },\n    \"review\": {\n      \"type\": \"string\",\n      \"title\": \"review\",\n      \"description\": \"Text of review\"\n    }\n  },\n  \"required\": [\"date\", \"vote\", \"review\"]\n}",
        "useOutputSchema": true,
        "enablePagination": true
      },
      "credentials": {
        "scrapegraphAIApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "67ae437c-ba40-447f-a2a9-dee500b42559",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1360,
        768
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-3-pro-preview"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ab08ebc6-630c-4ff9-aff4-0636f0a2c3df",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1840,
        768
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-3-pro-preview"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "aad09f16-a722-413b-b061-2c5aa692d742",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        64,
        1248
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "80142068-631b-45f3-bdb5-45d922b6f385",
      "name": "HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        1040,
        1088
      ],
      "parameters": {
        "html": "<!DOCTYPE html>\n\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>My HTML document</title>\n</head>\n<body>\n  {{$json.text}}\n</body>\n</html>\n\n<style>\n.container {\n  background-color: #ffffff;\n  text-align: center;\n  padding: 16px;\n  border-radius: 8px;\n}\n\nh1 {\n  color: #ff6d5a;\n  font-size: 24px;\n  font-weight: bold;\n  padding: 8px;\n}\n\nh2 {\n  color: #909399;\n  font-size: 18px;\n  font-weight: bold;\n  padding: 8px;\n}\n</style>\n\n<script>\nconsole.log(\"Hello World!\");\n</script>"
      },
      "typeVersion": 1.2
    },
    {
      "id": "04a70a37-5a78-4e24-a729-5b96c61b6442",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2000,
        1088
      ],
      "parameters": {
        "name": "={{$now.format('yyyyLLddHHiiss')}}_{{ $binary.data.fileName }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1tkCr7xdraoZwsHqeLm7FZ4aRWY94oLbZ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1tkCr7xdraoZwsHqeLm7FZ4aRWY94oLbZ",
          "cachedResultName": "n8n"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "82a2b4bc-1bc1-488a-bf43-2803c04ed956",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        960
      ],
      "parameters": {
        "color": 7,
        "width": 1232,
        "height": 496,
        "content": "## STEP 5 -Convert to HTML/PDF & Upload Google Drive\n"
      },
      "typeVersion": 1
    },
    {
      "id": "38f019b3-1712-4963-9df4-0719865ede5f",
      "name": "From Json to Binary",
      "type": "n8n-nodes-base.code",
      "position": [
        1280,
        1088
      ],
      "parameters": {
        "jsCode": "// Recupera il contenuto HTML dall'input\nconst htmlContent = $input.item.json.html;\n\n// Converte l'HTML in buffer\nconst buffer = Buffer.from(htmlContent, 'utf-8');\n\n// Restituisce l'item con il file binario\nreturn {\n  json: {},\n  binary: {\n    data: {\n      data: buffer.toString('base64'),\n      mimeType: 'text/html',\n      fileName: 'page.html',\n      fileExtension: 'html'\n    }\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "584296c9-1fbb-4028-ab22-7446ca83a195",
      "name": "HTML to PDF",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1552,
        1088
      ],
      "parameters": {
        "url": "https://v2.convertapi.com/convert/html/to/pdf",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "File",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {}
          ]
        },
        "nodeCredentialType": "convertApi"
      },
      "credentials": {
        "convertApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "db83a431-8004-43b6-ba33-a7463214ed60",
      "name": "Base64 to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1792,
        1088
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "=Files[0].FileData"
      },
      "typeVersion": 1.1
    },
    {
      "id": "8c44658c-6d2f-4e77-93e2-d965bbcf652d",
      "name": "Extract reviews",
      "type": "n8n-nodes-base.code",
      "position": [
        -912,
        1120
      ],
      "parameters": {
        "jsCode": "const allReviews = [];\n\nfor (const item of $input.all()) {\n  const data = item.json;\n  \n\n  if (data.result && Array.isArray(data.result)) {\n\n    for (const page of data.result) {\n\n      const reviews = page.result?.recensioni || page.result?.reviews;\n      \n      if (reviews && Array.isArray(reviews)) {\n        reviews.forEach(review => {\n          allReviews.push(review);\n        });\n      }\n    }\n  }\n}\n\n\nreturn allReviews.map(review => ({\n  json: review\n}));"
      },
      "typeVersion": 2
    },
    {
      "id": "ca599a3a-3f98-4d06-9623-214d8a1fc499",
      "name": "Get Result",
      "type": "n8n-nodes-base.set",
      "position": [
        -1120,
        1120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "603db10a-fb05-4a0d-a6e0-9842afc82ab4",
              "name": "result",
              "type": "array",
              "value": "={{ $json.result.pages }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d6714d1f-c9c9-4c8a-9f76-7e5e193c05de",
      "name": "Limit reviews",
      "type": "n8n-nodes-base.limit",
      "position": [
        -688,
        1120
      ],
      "parameters": {
        "maxItems": 5
      },
      "typeVersion": 1
    },
    {
      "id": "b5203ccc-9ed1-4da7-9c43-a387d5556e0b",
      "name": "Company Reputation Management",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1408,
        560
      ],
      "parameters": {
        "text": "=Reviews: {{JSON.stringify($json.reviews)}}",
        "options": {
          "systemMessage": "=You are an **AI agent specialized in Customer Voice Analysis and Company Reputation Management**.\n\nYour role is to analyze **Feedaty reviews** and transform them into a **clear, structured, and actionable report** for **Management, Marketing, Customer Care, Operations, and Product teams**.\n\nYour analysis must always focus on the **COMPANY as a whole**\n(brand perception, service quality, internal processes, customer experience, support, reliability, trust).\n**Never focus on a single product unless explicitly stated in the reviews.**\n\n---\n\n## INPUT ASSUMPTIONS\n\n\u2022 The input is **always a JSON array** of review objects.\n\u2022 Each review object contains:\n\n* `review` (text, may include HTML)\n* `sentiment` (e.g. Positive, Negative, Neutral)\n* `vote` or `rating` (integer from 1 to 5)\n\n---\n\n## DATA HANDLING RULES\n\n\u2022 Extract **only plain text** from the `review` field (remove HTML tags, line breaks, formatting).\n\u2022 Do **NOT invent, infer, or assume** any data not explicitly present.\n\u2022 If information is missing, unclear, or ambiguous, **explicitly state it**.\n\u2022 Do **NOT expose personal data**:\n\n* Mask any email address if present (e.g. `name@domain.com` \u2192 `n***e@d***n.com`)\n  \u2022 Maintain a **professional, clear, action-oriented tone**.\n  \u2022 Avoid jargon, hype, or marketing language.\n  \u2022 Base all insights strictly on the provided reviews.\n\n---\n\n## REPORT OBJECTIVE\n\nThe report must assess the **company\u2019s reputation and customer experience** based on Feedaty feedback:\n\n1. Summarize overall customer sentiment toward the company\n2. Identify recurring themes related to:\n\n   * Service quality\n   * Customer support\n   * Reliability\n   * Communication\n   * Pricing\n   * Delivery / execution\n   * Trust & credibility\n3. Highlight reputational risks and improvement opportunities\n4. Propose **concrete, measurable, and prioritized actions**\n\n---\n\n## MANDATORY OUTPUT STRUCTURE\n\n\u26a0\ufe0f Follow **exactly** this structure and order. Do not add or remove sections.\n\n### 1. Executive Summary\n\n\u2022 Total number of reviews\n\u2022 Sentiment distribution (counts and percentages)\n\u2022 Predominant sentiment\n\u2022 Average rating (1\u20135)\n\u2022 Average intensity (overall + by sentiment)\n\u2022 Average reliability (overall + by sentiment)\n\u2022 **3 key insights** (bulleted, management-ready)\n\n---\n\n### 2. Quantitative Data\n\nUse tables or structured lists.\n\nFor **each review** include:\n\u2022 ID (1..N)\n\u2022 Review excerpt (max 120 characters)\n\u2022 Sentiment\n\u2022 Rating (1\u20135)\n\n---\n\n### 3. Qualitative Review Analysis\n\n\u2022 Recurring **negative themes** (company-level issues, with examples)\n\u2022 Recurring **positive themes** (company strengths, with examples)\n\u2022 Ambiguities or information gaps\n(vague feedback, missing context, unclear expectations)\n\n---\n\n### 4. Company Diagnosis\n\n\u2022 Hypotheses on **root causes** of negative feedback\n(processes, support, communication, expectations, execution)\n\u2022 What the company is doing well\n\u2022 Risks if no action is taken\n(reputation, churn, trust erosion, conversion impact)\n\n---\n\n### 5. Operational Recommendations\n\nFor **each recommendation**, include:\n\u2022 Proposed action\n\u2022 Rationale (linked directly to review themes)\n\u2022 Expected impact (High / Medium / Low)\n\u2022 Estimated effort (High / Medium / Low)\n\u2022 Priority (P0 / P1 / P2)\n\u2022 Measurement approach (suggested KPIs)\n\n---\n\n### 6. Inputs for Internal Teams (Backlog Ideas)\n\nProvide **8\u201315 actionable ideas**, grouped by area:\n\u2022 Customer Support\n\u2022 Operations / Delivery\n\u2022 Communication & Transparency\n\u2022 UX / Digital Experience\n\u2022 Pricing & Policies\n\u2022 Trust & Brand Reputation\n\nClearly mark **\u201cQuick Wins\u201d**\n(low effort, medium or high impact)\n\n---\n\n### 7. Next Steps\n\n\u2022 3\u20135 immediate recommended actions\n\u2022 Additional data required for deeper analysis\n(e.g. ticket resolution time, support channel, customer type, country, new vs returning customers)\n\n---\n\n## CALCULATION RULES (INTERNAL)\n\n\u2022 Percentages = (count / total) \u00d7 100 \u2192 round to **1 decimal**\n\u2022 Intensity & reliability \u2192 floats with **2 decimals**\n\u2022 Average rating = arithmetic mean of votes (1\u20135)\n\u2022 Sentiments outside **Positive / Negative / Neutral**:\n\n* Classify as **\u201cOther\u201d**\n* Explicitly flag them in the report\n\n---\n\n## EXECUTION INSTRUCTION\n\nWhen a JSON array of Feedaty reviews is received:\n\n**Immediately generate the full report**\nby strictly following:\n\u2022 All rules\n\u2022 All constraints\n\u2022 The mandatory output structure\n\nDo not ask follow-up questions."
        },
        "promptType": "define"
      },
      "typeVersion": 3.1
    },
    {
      "id": "417fc81a-4131-4ec9-ac0d-99d8e818f29f",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2432,
        208
      ],
      "parameters": {
        "color": 7,
        "width": 736,
        "height": 736,
        "content": "## MY NEW YOUTUBE CHANNEL\n\ud83d\udc49 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I\u2019ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![image](https://n3wstorage.b-cdn.net/n3witalia/youtube-n8n-cover.jpg)](https://youtube.com/@n3witalia)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "a9f1eedf-92fc-497b-883c-e31f6b61f12e",
  "connections": {
    "HTML": {
      "main": [
        [
          {
            "node": "From Json to Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Result": {
      "main": [
        [
          {
            "node": "Extract reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set fields": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML to PDF": {
      "main": [
        [
          {
            "node": "Base64 to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit reviews": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Base64 to File": {
      "main": [
        [
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML Converter": {
      "main": [
        [
          {
            "node": "HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Parameters": {
      "main": [
        [
          {
            "node": "Autonomously extract live data from any website perfect for e commerce job boards lead capture and more",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract reviews": {
      "main": [
        [
          {
            "node": "Limit reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Aggregate reviews",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Sentiment Analysis1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate reviews": {
      "main": [
        [
          {
            "node": "Company Reputation Management",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "From Json to Binary": {
      "main": [
        [
          {
            "node": "HTML to PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sentiment Analysis1": {
      "main": [
        [
          {
            "node": "Set fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Company Reputation Management",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "HTML Converter",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Sentiment Analysis1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Company Reputation Management": {
      "main": [
        [
          {
            "node": "HTML Converter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Set Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Autonomously extract live data from any website perfect for e commerce job boards lead capture and more": {
      "main": [
        [
          {
            "node": "Get Result",
            "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

This workflow automates the entire process of collecting, analyzing, and reporting customer reviews from Feedaty (similar to Trustpilot) using ScrapeGraphAI, transforming raw user feedback into a structured, management-ready reputation report in PDF using new Gemini 3 model and…

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

🤖🧑‍💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, lmChatOpenAi, executeWorkflowTrigger, toolWorkflow. Event-driven trigger; 49 nodes.

HTTP Request, OpenAI Chat, Execute Workflow Trigger +8
AI & RAG

🤖🧑‍💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, lmChatOpenAi, executeWorkflowTrigger, toolWorkflow. Event-driven trigger; 49 nodes.

HTTP Request, OpenAI Chat, Execute Workflow Trigger +8
AI & RAG

This n8n workflow is designed to automate the aggregation, processing, and reporting of community statistics related to n8n creators and workflows. Its primary purpose is to generate insightful report

HTTP Request, OpenAI Chat, Execute Workflow Trigger +8
AI & RAG

This workflow automates the collection, analysis, and reporting of Trustpilot reviews for a specific company using ScrapeGraphAI, transforming unstructured customer feedback into structured insights a

HTTP Request, N8N Nodes Scrapegraphai, Information Extractor +5
AI & RAG

This workflow creates a multi-talented AI assistant named Simran that interacts with users via Telegram. It can handle text and voice messages, understand the user's intent, and perform various tasks.

MongoDB, Chain Llm, Google Gemini Chat +11