AutomationFlowsSlack & Telegram › Automate Customer Feedback Analysis with Forms, Ai, Google Sheets and Whatsapp

Automate Customer Feedback Analysis with Forms, Ai, Google Sheets and Whatsapp

ByOneClick IT Consultancy P Limited @oneclick-it on n8n.io

Imagine this: Your team launches a new feature. Feedback starts pouring in emails, support tickets, social media mentions, and survey responses. You know gold is buried in there, but manually reading, tagging, and summarising hundreds, maybe thousands, of comments? It takes…

Event trigger★★★☆☆ complexity9 nodesForm TriggerWhatsAppGoogle Sheets TriggerGoogle SheetsEmail Send
Slack & Telegram Trigger: Event Nodes: 9 Complexity: ★★★☆☆ Added:

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

This workflow follows the Emailsend → Form Trigger 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": "h47UJYYjZeKuBLTn",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "AI Automation in Feedback",
  "tags": [],
  "nodes": [
    {
      "id": "553d9f71-a750-4152-84bb-9d2956441aa8",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        260,
        220
      ],
      "parameters": {
        "options": {
          "path": "feedback",
          "customCss": "",
          "appendAttribution": false
        },
        "formTitle": "Customer Feedback Questions for IT Services",
        "formFields": {
          "values": [
            {
              "fieldLabel": "What is your Name?",
              "requiredField": true
            },
            {
              "fieldType": "email",
              "fieldLabel": "Email ID",
              "requiredField": true
            },
            {
              "fieldLabel": "Contact Number",
              "placeholder": "(e.g, +1234567890)",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "How satisfied are you with the quality of our IT services or solutions?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Very Dissatisfied"
                  },
                  {
                    "option": "Dissatisfied"
                  },
                  {
                    "option": "Neutral"
                  },
                  {
                    "option": "Satisfied"
                  },
                  {
                    "option": "Very Satisfied"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Did our team understand your technical requirements clearly?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "How would you rate our communication throughout the project/support process?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Poor"
                  },
                  {
                    "option": "Fair"
                  },
                  {
                    "option": "Good"
                  },
                  {
                    "option": "Excellent"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Was your project/service delivered on time and within the expected timeline?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Did our solution meet your business needs or solve your problem effectively?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "No"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "How responsive was our support team when you needed assistance?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Slow"
                  },
                  {
                    "option": "Average"
                  },
                  {
                    "option": "Fast"
                  },
                  {
                    "option": "Very Fast"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "How would you rate the technical expertise of our team?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "1"
                  },
                  {
                    "option": "2"
                  },
                  {
                    "option": "3"
                  },
                  {
                    "option": "4"
                  },
                  {
                    "option": "5"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "What could we do to improve your experience with our IT services?",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Would you recommend our IT services to others?",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Yes"
                  },
                  {
                    "option": "=No"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Any additional comments or suggestions?",
              "requiredField": true
            }
          ]
        }
      },
      "notesInFlow": false,
      "typeVersion": 2.2
    },
    {
      "id": "0f02714d-0da3-4f86-ba62-97ce92883201",
      "name": "If E-mail and Phone Number Both are given",
      "type": "n8n-nodes-base.if",
      "position": [
        520,
        440
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8cc5cb6d-8aee-4547-bb67-aa8465789473",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.Phone.toString() }}",
              "rightValue": ""
            },
            {
              "id": "2a0ba5ea-f76c-4cf2-9b77-6fc0e2d269da",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.Email }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2890694e-c503-4eda-825b-b569e7f8831a",
      "name": "If only Phone Number is given",
      "type": "n8n-nodes-base.if",
      "position": [
        520,
        640
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "84c363c4-8ae2-4b56-b9f7-a83de196be4b",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.Phone.toString() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "cf9d2612-b582-4352-809e-31a38f4126b5",
      "name": "Send Message on Whatsapp",
      "type": "n8n-nodes-base.whatsApp",
      "notes": "Set the WhatsApp template from the WhatsApp Business Account.",
      "position": [
        780,
        620
      ],
      "parameters": {
        "template": "feedback_n8n|en_US",
        "components": {
          "component": [
            {
              "bodyParameters": {
                "parameter": [
                  {
                    "text": "={{ $('Google Sheets Trigger').item.json.User }}"
                  }
                ]
              }
            }
          ]
        },
        "phoneNumberId": "550325331503475",
        "recipientPhoneNumber": "={{ $json.Phone.toString() }}"
      },
      "credentials": {
        "whatsAppApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ce02dda2-111e-4bde-99a9-393547c40435",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "notes": "Set Google Credentials and then select Google Sheets.\nSelect the Sheet on which you want to set the trigger.\n\nIf any changes are made to the selected Sheet. Node will trigger.",
      "position": [
        200,
        520
      ],
      "parameters": {
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "153adc14-68c1-4b4d-bb93-8dc5204ec7e9",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Follow this steps:\n- Set Google Credentials and then select Google Sheets account.\n- Select \"Sheet Within Document\" option in Resource tab.\n- Select \"Append or Update Row\" in Operation tab.\n- In Document tab select your google sheets which you want to update.\n- In Sheets tab select sheet from your google sheets document.\n- In Mapping select \"Map Each Column Manually\"\n- Now from list of colums select colum which you want to match from selected sheet. The column to use when matching rows in Google Sheets to the input items of this node. Usually an ID.\n- Now you can see all colume in \"Values to Send\" section. Here you need to map (using drag and drop) the filed  with the form filed name. ",
      "position": [
        520,
        220
      ],
      "parameters": {
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "65b5cb47-12d0-42a5-bb95-c023710dd310",
      "name": "Email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        780,
        420
      ],
      "parameters": {
        "text": "Please give us your valuable feedback at:\n<<< Your Form Production URL >>>",
        "options": {
          "appendAttribution": false
        },
        "subject": "Feedback",
        "toEmail": "={{ $json.Email }}",
        "fromEmail": "user@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "457b43d6-fa50-4259-bf56-b637b1819445",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        140
      ],
      "parameters": {
        "width": 380,
        "height": 600,
        "content": "## Google Sheets Integration \n#### Create Google Cloud Credentials\nTo connect Google Sheets to n8n, you need to set up OAuth2 authentication through Google Cloud:\n\n**1. Create a Google Cloud Project:**\n - Go to the Google Cloud Console (https://console.cloud.google.com/).\n - Create a new project or select an existing one.\n - Enable the Google Sheets API under APIs & Services > Library.\n\n**2. Set Up OAuth Consent Screen:**\n - Navigate to APIs & Services > OAuth consent screen.\n - Select External user type and fill in required details (e.g., app name, support email).\n - Add the following scopes: .../auth/spreadsheets (for full access to Google Sheets).\n - Save and proceed.\n\n**3. Create OAuth2 Credentials:**\n - Go to APIs & Services > Credentials > Create Credentials > OAuth 2.0 Client IDs.\n - Choose Web application as the application type.\n - Add an Authorized redirect URI (you\u2019ll get this from n8n in the next step).\n - Save to obtain your Client ID and Client Secret."
      },
      "typeVersion": 1
    },
    {
      "id": "cc0786b3-2340-4fa1-812b-49dc76a3ef0d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        20
      ],
      "parameters": {
        "width": 380,
        "height": 100,
        "content": "## Integration Notes\nKindly see the node **notes** in the **setting** tab for more information."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "481b316a-890a-4a24-812a-b402638ff547",
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "If E-mail and Phone Number Both are given",
            "type": "main",
            "index": 0
          },
          {
            "node": "If only Phone Number is given",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Message on Whatsapp": {
      "main": [
        []
      ]
    },
    "If only Phone Number is given": {
      "main": [
        [
          {
            "node": "Send Message on Whatsapp",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "If E-mail and Phone Number Both are given": {
      "main": [
        [
          {
            "node": "Email",
            "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

Imagine this: Your team launches a new feature. Feedback starts pouring in emails, support tickets, social media mentions, and survey responses. You know gold is buried in there, but manually reading, tagging, and summarising hundreds, maybe thousands, of comments? It takes…

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

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

This is a fully working n8n workflow that sends prescriptions to patients via email and WhatsApp when a doctor enters prescription data into a Google Sheet.

WhatsApp, Google Sheets, Google Sheets Trigger +1
Slack & Telegram

This n8n workflow demonstrates how to automate customer interactions and appointment management via WhatsApp Business bot. After submitting a Google Form, the user receives a notification via WhatsApp

WhatsApp, WhatsApp Trigger, Google Sheets +1
Slack & Telegram

This workflow automatically sends timely medication reminders to patients after a prescription is marked as sent in the system. It reads the medication schedule from prescription data, schedules remin

Google Sheets, WhatsApp, Google Sheets Trigger +1
Slack & Telegram

The aim of the YouTube Video Summarizer Workflow is to automate the process of summarizing or extracting transcripts from YouTube videos with the help of Gemini AI, while optionally storing results an

Form Trigger, Google Gemini, Google Sheets +4
Slack & Telegram

Automates LinkedIn job searches across multiple countries and categories, filters results with AI, stores data in Google Sheets, and sends weekly Telegram notifications. Perfect for professionals seek

Telegram Trigger, Item Lists, HTTP Request +3