{
  "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
          }
        ]
      ]
    }
  }
}