Analyseur de boucle de retour client

Intermédiaire

Ceci est unMiscellaneous, AI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 11 nœuds.Utilise principalement des nœuds comme Code, Gmail, Slack, Switch, FormTrigger. Classification automatisée des retours clients via l'IA, Google Sheets et des alertes Slack

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Token Bot Slack ou URL Webhook
  • Informations d'identification Google Sheets API
  • Clé API Google Gemini
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "bAczIXMBSsZulax7",
  "meta": {
    "instanceId": "14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa",
    "templateCredsSetupCompleted": true
  },
  "name": "Customer Feedback Loop Analyzer",
  "tags": [],
  "nodes": [
    {
      "id": "0aeba1ed-f179-4a69-ad06-23bdf6ed1c4d",
      "name": "À la soumission du formulaire",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        220,
        100
      ],
      "webhookId": "",
      "parameters": {
        "options": {},
        "formTitle": "Customer Review",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Review",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1e5cb96f-9467-47ab-b060-8600ee901582",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        528,
        220
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-1.5-flash"
      },
      "credentials": {
        "googlePalmApi": {}
      },
      "typeVersion": 1
    },
    {
      "id": "0c13ebb7-14ba-4c3b-aa44-b2b22ea72c3f",
      "name": "Envoyer le rapport",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1256,
        100
      ],
      "webhookId": "8d5fae6b-280c-4286-bf3a-d7355617f013",
      "parameters": {
        "sendTo": "",
        "message": "=Your monthly energy report is as follows  {{ $json.url }}",
        "options": {
          "appendAttribution": true
        },
        "subject": "Energy Report",
        "emailType": "text"
      },
      "credentials": {},
      "typeVersion": 2.1
    },
    {
      "id": "d0abc9c5-7591-4f63-b097-f1682ffaa006",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1256,
        -100
      ],
      "webhookId": "af63d3d7-1280-4774-b539-2edbf5d0588a",
      "parameters": {
        "text": "=User  {{ $json.candidate_name }} has already applied for {{ $json.role_applied }}",
        "user": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "select": "user",
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "9151ff73-9062-4bb3-8776-1e299636b9ef",
      "name": "Recevoir l'avis/retour",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        0,
        -100
      ],
      "parameters": {
        "filters": {
          "labelIds": [
            "Label_536806471971916762"
          ]
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "c4312796-7756-4a1a-bad8-5af5f2377b69",
      "name": "Extraire les détails",
      "type": "n8n-nodes-base.code",
      "position": [
        220,
        -100
      ],
      "parameters": {
        "jsCode": "    const fromEmail = $input.first().json.From // Assuming 'from' field holds the full \"From\" string\n    let name = '';\n\n    // Check if the name is enclosed in angle brackets\n    if (fromEmail.includes('<') && fromEmail.includes('>')) {\n        name = fromEmail.substring(0, fromEmail.indexOf('<')).trim();\n    } else {\n        // If no angle brackets, assume the whole \"From\" field is the name\n        name = fromEmail.trim();\n    }\n\n    return { json: { name: name ,Review : $input.first().json.snippet} };"
      },
      "typeVersion": 2
    },
    {
      "id": "e1525399-3ac3-4dc0-8b9b-79261b2f9c63",
      "name": "Transformer et résumer",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "={{ $json.Review }}",
        "options": {
          "systemPromptTemplate": "=You are a feedback analyst. Categorize the following user feedback into one of:\n- Bug\n- Feature Request\n- UX Issue\n- Other\n\nAlso extract the core complaint or suggestion in a concise sentence.\n\nFeedback:  {{ $json.Review }}"
        },
        "schemaType": "fromJson",
        "jsonSchemaExample": "{\n  \"category\": \"Feature Request\",\n  \"summary\": \"User wants dark mode support\",\n  \"sentiment\": \"Positive\",\n  \"Feedback text\": \"Original review\"\n\n}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "13155178-e7b0-4329-95b5-eddd560d0fe5",
      "name": "Examiner les données",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        816,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "summary": "={{ $json.output.summary }}",
            "category": "={{ $json.output.category }}",
            "Timestamp": "={{ $json.output.Timestamp }}",
            "sentiment": "={{ $json.output.sentiment }}",
            "Feedback text": "={{ $json.output[\"Feedback text\"] }}"
          },
          "schema": [
            {
              "id": "category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "summary",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sentiment",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Feedback text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Feedback text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "output"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {},
        "documentId": {}
      },
      "credentials": {},
      "typeVersion": 4.6
    },
    {
      "id": "66b9626b-dd32-4e12-8eda-1a85f8436a40",
      "name": "Catégories",
      "type": "n8n-nodes-base.switch",
      "position": [
        1036,
        0
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "f245286d-696d-43c2-9717-838befcc4064",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.category }}",
                    "rightValue": "Bug"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "394c07bc-9828-4d4d-a434-33cb4a96cddb",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.category }}",
                    "rightValue": "Feature Request"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "a8490c26-d635-4a74-9c90-04d33e94f85e",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        380
      ],
      "parameters": {
        "width": 1520,
        "height": 420,
        "content": "**Purpose:**\nAutomatically capture customer reviews from forms or emails, analyze them with AI to detect category and sentiment, and notify the right channels while logging everything in Google Sheets.\n\n\n**Core Logic:**\n\n1. **Form submission trigger** captures customer name and review text.\n2. **Gmail trigger** listens for incoming feedback emails.\n3. **Extract details (Code node)** parses reviewer name and feedback text.\n4. **AI analysis** summarizes the review, detects sentiment, and assigns a category (Bug, Feature Request, UX Issue, Other).\n5. **Google Gemini (optional)** provides advanced summarization/classification.\n6. **Google Sheets** logs the categorized feedback for tracking.\n7. **Switch node** routes feedback into different branches based on category.\n8. **Slack notification** alerts the team about critical issues like Bugs.\n9. **Email report** sends categorized summaries (e.g., Feature Requests) to stakeholders.\n\n\n**Outcome:**\nCreates a streamlined feedback loop where customer input is captured, structured, categorized, and routed automatically — ensuring issues are quickly acted on, feature requests are tracked, and all feedback is stored for long-term analysis.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a57683e3-5304-4a50-8aec-0ac86427b929",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -82,
        -240
      ],
      "parameters": {
        "color": 5,
        "width": 1520,
        "height": 600,
        "content": "## Customer Feedback Loop Analyzer"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1277749b-2809-4280-a59e-17998a61a482",
  "connections": {
    "66b9626b-dd32-4e12-8eda-1a85f8436a40": {
      "main": [
        [
          {
            "node": "d0abc9c5-7591-4f63-b097-f1682ffaa006",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "0c13ebb7-14ba-4c3b-aa44-b2b22ea72c3f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "13155178-e7b0-4329-95b5-eddd560d0fe5": {
      "main": [
        [
          {
            "node": "66b9626b-dd32-4e12-8eda-1a85f8436a40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c4312796-7756-4a1a-bad8-5af5f2377b69": {
      "main": [
        [
          {
            "node": "e1525399-3ac3-4dc0-8b9b-79261b2f9c63",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0aeba1ed-f179-4a69-ad06-23bdf6ed1c4d": {
      "main": [
        [
          {
            "node": "e1525399-3ac3-4dc0-8b9b-79261b2f9c63",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9151ff73-9062-4bb3-8776-1e299636b9ef": {
      "main": [
        [
          {
            "node": "c4312796-7756-4a1a-bad8-5af5f2377b69",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e1525399-3ac3-4dc0-8b9b-79261b2f9c63": {
      "main": [
        [
          {
            "node": "13155178-e7b0-4329-95b5-eddd560d0fe5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1e5cb96f-9467-47ab-b060-8600ee901582": {
      "ai_languageModel": [
        [
          {
            "node": "e1525399-3ac3-4dc0-8b9b-79261b2f9c63",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Divers, Résumé IA, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds11
Catégorie3
Types de nœuds10
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
WeblineIndia

WeblineIndia

@weblineindia

A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34