AutomationFlowsAI & RAG › Extract Marketing Testimonials From Feedback with Gemini AI and Google Sheets

Extract Marketing Testimonials From Feedback with Gemini AI and Google Sheets

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically extracts short emotional testimonials from Google Form responses. It listens for new feedback in Google Sheets, processes it with AI (Google Gemini), writes back a refined testimonial, and sends an email notification.

Event trigger★★★☆☆ complexityAI-powered10 nodesGoogle Sheets TriggerChain LlmGoogle Gemini ChatGoogle SheetsGmail
AI & RAG Trigger: Event Nodes: 10 Complexity: ★★★☆☆ AI nodes: yes Added:

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

This workflow follows the Chainllm → Gmail 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": "lgYxvuFWuVJVSVHv",
  "name": "13. Extract Marketing Testimonials from Feedback with Gemini AI and Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "a7fd4b4e-3642-43ee-9df7-34a291ff34b4",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        512,
        272
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 352165437,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s/edit#gid=352165437",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s/edit?usp=drivesdk",
          "cachedResultName": "Testimonial"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "818884ad-381e-413e-96a1-7a269828e4ed",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        784,
        272
      ],
      "parameters": {
        "text": "=Extract a short, emotionally engaging testimonial quote from the following user feedback. Ignore neutral or irrelevant text. Only return the quote.\n\"{{ $json.Feedback }}\"\n\nFeedback: \"{{ $json[\"Feedback\"] }}\"\n",
        "promptType": "define"
      },
      "typeVersion": 1.5
    },
    {
      "id": "800bef4c-8ac7-459a-ae3b-95262f7c6fd9",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        768,
        528
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash"
      },
      "typeVersion": 1
    },
    {
      "id": "ab8f31c8-65ec-4829-829f-ee6ec355e077",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1200,
        272
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Feedback",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Feedback",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Testimony",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Testimony",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "Testimony"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 352165437,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s/edit#gid=352165437",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/14nmSXdGURNj3a1uQsxNcspdN5HrjGl8TA8t-hdQUF2s/edit?usp=drivesdk",
          "cachedResultName": "Testimonial"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "a07133e4-e94b-4d28-9284-0f38368a32c2",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1488,
        272
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "={{ $json.text }}",
        "options": {},
        "subject": "New Testimonial Extracted"
      },
      "typeVersion": 2.1
    },
    {
      "id": "3bf47f3b-da76-46c3-b72b-9e38d9e8f9d8",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        -112
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0ff7790c-c741-4c9f-b97f-0ce72fa9b305",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        224
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 1726,
        "content": "# Extract Marketing Testimonials from Feedback with Gemini AI and Google Sheets\n\n### \ud83c\udf0d **Overview**\n\nThis workflow automatically **extracts short emotional testimonials** from Google Form responses. It listens for new feedback in Google Sheets, processes it with AI (Google Gemini), writes back a refined testimonial, and sends an email notification.\n\nThink of it as your **testimonial assistant**\u2014turning raw customer feedback into marketing-ready quotes.\n\n---\n\n## \ud83d\udfe2 Section 1: Trigger \u2013 Listen for New Feedback\n\n\ud83d\udd17 **Nodes:**\n\n* **Google Sheets Trigger** \u2192 Watches for new rows (new form responses).\n\n\ud83d\udca1 **Beginner takeaway:**\nWhenever a customer submits feedback via your form, this trigger **wakes up the workflow**.\n\n\ud83d\udcc8 **Advantage:**\nNo manual checking \u2014 feedback is instantly processed.\n\n---\n\n## \ud83d\udfe6 Section 2: Testimonial Extraction with AI\n\n\ud83d\udd17 **Nodes:**\n\n* **Basic LLM Chain** \u2192 Runs a custom prompt that tells the AI: *\u201cExtract a short, emotional testimonial quote from the feedback.\u201d*\n* **Google Gemini Chat Model** \u2192 The AI brain that processes and rewrites the testimonial.\n\n\ud83d\udca1 **Beginner takeaway:**\nThis part **filters out neutral or boring text** and produces a **catchy, emotional testimonial**.\n\n\ud83d\udcc8 **Advantage:**\nSaves you time editing feedback \u2192 instantly produces marketing-ready quotes.\n\n---\n\n## \ud83d\udfe3 Section 3: Store & Notify\n\n\ud83d\udd17 **Nodes:**\n\n* **Google Sheets (Write Back)** \u2192 Saves the extracted testimonial into the same Google Sheet.\n* **Gmail** \u2192 Sends an email with the new testimonial to your chosen inbox.\n\n\ud83d\udca1 **Beginner takeaway:**\nThe testimonial is both **saved for records** and **shared with your team via email**.\n\n\ud83d\udcc8 **Advantage:**\nYou get real-time alerts and maintain a growing database of testimonials.\n\n---\n\n## \ud83d\udcca Final Overview Table\n\n| Section           | Nodes                 | Purpose                       | Benefit                    |\n| ----------------- | --------------------- | ----------------------------- | -------------------------- |\n| \ud83d\udfe2 Trigger        | Google Sheets Trigger | Detect new feedback           | Automated start            |\n| \ud83d\udfe6 AI Extraction  | LLM Chain + Gemini    | Extract emotional testimonial | Marketing-ready quotes     |\n| \ud83d\udfe3 Store & Notify | Google Sheets + Gmail | Save + send testimonial       | Organized + instant alerts |\n\n---\n\n## \ud83d\ude80 Why This Workflow is Useful\n\n* **Automates testimonial creation** \u2192 No manual copywriting needed\n* **Captures emotions** \u2192 AI filters for impactful quotes\n* **Centralized storage** \u2192 All testimonials logged in Google Sheets\n* **Instant notifications** \u2192 New testimonials delivered straight to email\n* **Beginner-friendly** \u2192 Just connect your sheet + Gmail and it runs on its own\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "05696003-b784-4105-9414-0545041d8578",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -176
      ],
      "parameters": {
        "color": 3,
        "width": 324,
        "height": 656,
        "content": "## \ud83d\udfe2 Section 1: Trigger \u2013 Listen for New Feedback\n\n\ud83d\udd17 **Nodes:**\n\n* **Google Sheets Trigger** \u2192 Watches for new rows (new form responses).\n\n\ud83d\udca1 **Beginner takeaway:**\nWhenever a customer submits feedback via your form, this trigger **wakes up the workflow**.\n\n\ud83d\udcc8 **Advantage:**\nNo manual checking \u2014 feedback is instantly processed.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5ff54d6f-ce31-4df1-8a20-b56708e40aae",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -272
      ],
      "parameters": {
        "color": 6,
        "width": 324,
        "height": 752,
        "content": "## \ud83d\udfe6 Section 2: Testimonial Extraction with AI\n\n\ud83d\udd17 **Nodes:**\n\n* **Basic LLM Chain** \u2192 Runs a custom prompt that tells the AI: *\u201cExtract a short, emotional testimonial quote from the feedback.\u201d*\n* **Google Gemini Chat Model** \u2192 The AI brain that processes and rewrites the testimonial.\n\n\ud83d\udca1 **Beginner takeaway:**\nThis part **filters out neutral or boring text** and produces a **catchy, emotional testimonial**.\n\n\ud83d\udcc8 **Advantage:**\nSaves you time editing feedback \u2192 instantly produces marketing-ready quotes.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e0f1efff-19c1-47e3-9c39-bce1632896c7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        -176
      ],
      "parameters": {
        "color": 5,
        "width": 484,
        "height": 656,
        "content": "## \ud83d\udfe3 Section 3: Store & Notify\n\n\ud83d\udd17 **Nodes:**\n\n* **Google Sheets (Write Back)** \u2192 Saves the extracted testimonial into the same Google Sheet.\n* **Gmail** \u2192 Sends an email with the new testimonial to your chosen inbox.\n\n\ud83d\udca1 **Beginner takeaway:**\nThe testimonial is both **saved for records** and **shared with your team via email**.\n\n\ud83d\udcc8 **Advantage:**\nYou get real-time alerts and maintain a growing database of testimonials.\n\n---\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e72316d5-d541-413f-8862-ce5f225ceacd",
  "connections": {
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow automatically extracts short emotional testimonials from Google Form responses. It listens for new feedback in Google Sheets, processes it with AI (Google Gemini), writes back a refined testimonial, and sends an email notification.

Source: https://n8n.io/workflows/4378/ — 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? Marketing teams, content creators, solopreneurs, and agencies who want to generate emotionally-resonant, SEO-optimized content tailored to audience psychology and buyer journey stag

Google Sheets Trigger, Chain Llm, Google Gemini Chat +6
AI & RAG

Customer Review Pipeline. Uses googleSheetsTrigger, lmChatGoogleGemini, gmail, chainLlm. Event-driven trigger; 10 nodes.

Google Sheets Trigger, Google Gemini Chat, Gmail +2
AI & RAG

Subtitle: Feedback to Marketing Gold

Google Gemini Chat, Google Sheets Trigger, Chain Llm +2
AI & RAG

This workflow creates a sophisticated, self-improving customer support system that automatically handles incoming emails. It's designed to answer common questions using an AI-powered knowledge base an

Text Classifier, Chain Llm, Gmail Trigger +4
AI & RAG

This workflow automates the entire process of creating SEO-optimized meta titles and descriptions. It analyzes your webpage, spies on top-ranking competitors for the same keywords, and then uses a mul

Google Sheets, Output Parser Structured, HTTP Request +3