Jotform

Experte

Dies ist ein Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden Gmail, Switch, Telegram, GoogleSheets, JotFormTrigger und andere Nodes verwendet. Automatisierte Kundenfeedback-Triage mit Antworten von Gemini, Jotform, Google Sheets und Gmail

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Telegram Bot Token
  • Google Sheets API-Anmeldedaten
  • Google Gemini API Key

Kategorie

-
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "REDACTED",
  "meta": {
    "instanceId": "REDACTED",
    "templateCredsSetupCompleted": true
  },
  "name": "Jotform",
  "tags": [],
  "nodes": [
    {
      "id": "db688133-4596-47b2-9d63-5e91bc73753f",
      "name": "JotForm-Trigger",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -224,
        -16
      ],
      "webhookId": "REDACTED",
      "parameters": {
        "form": "REDACTED"
      },
      "credentials": {
        "jotFormApi": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9ebab0dd-5bac-443a-98ab-d30eff4b458a",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        16,
        -32
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "comments",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "8868d5a6-f386-4f9d-bb65-b4373617bbf6",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json['Feedback Type'].toLowerCase() }}",
                    "rightValue": "comments"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "questions",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "6a821715-e994-4e85-8da3-9ba3b8e98bb5",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json['Feedback Type'].toLowerCase() }}",
                    "rightValue": "questions"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "suggestions",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "3eca34e9-2a95-424c-bfe7-2e2aa6092492",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json['Feedback Type'].toLowerCase() }}",
                    "rightValue": "suggestions"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "efa026b3-0b2e-4ee7-8074-493902a91265",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        336,
        -176
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "75bd3135-b303-4fed-95e4-50c2f8950f1a",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        480,
        544
      ],
      "parameters": {
        "options": {
          "temperature": 0.4
        }
      },
      "credentials": {
        "googlePalmApi": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "631e6076-06f9-44c7-b2d3-2b9ed406cc5f",
      "name": "Sentiment-Analyse",
      "type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
      "position": [
        368,
        -448
      ],
      "parameters": {
        "options": {},
        "inputText": "={{ $json['Describe Your Feedback:'] }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "6b25a8c3-85c3-422b-8128-416afe44b98a",
      "name": "An Support-Gruppe senden",
      "type": "n8n-nodes-base.telegram",
      "position": [
        912,
        -272
      ],
      "webhookId": "REDACTED",
      "parameters": {
        "text": "=🚨Customer Angry🚨\n\nName: {{ $json.Name.first }} {{ $json.Name.last }}\nEmail: {{ $json['E-mail'] }}\n\nMessage: {{ $json['Describe Your Feedback:'] }}\n\nPlease reach out immediately — your SLA is only 6 hours.\n\n",
        "chatId": "REDACTED",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a0399c2f-8d4a-4ac5-ac55-7c086fd74f7b",
      "name": "Kunden antworten",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1056,
        -32
      ],
      "webhookId": "REDACTED",
      "parameters": {
        "sendTo": "={{ $('Switch').item.json['E-mail'] }}",
        "message": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>AquaPure Smart Bottle Response</title>\n  <style>\n    body {\n      font-family: Arial, Helvetica, sans-serif;\n      background-color: #f6f8fa;\n      color: #333;\n      margin: 0;\n      padding: 0;\n    }\n    .email-container {\n      max-width: 600px;\n      margin: 30px auto;\n      background: #ffffff;\n      padding: 24px;\n      border-radius: 8px;\n      box-shadow: 0 2px 8px rgba(0,0,0,0.05);\n    }\n    p {\n      line-height: 1.6;\n      margin: 0 0 12px;\n    }\n    .question, .answer {\n      background-color: #f1f5f9;\n      padding: 12px;\n      border-radius: 6px;\n      margin-bottom: 16px;\n    }\n    .footer {\n      margin-top: 24px;\n      font-size: 14px;\n      color: #666;\n    }\n  </style>\n</head>\n<body>\n  <div class=\"email-container\">\n    <p>\n      Dear {{ $('Switch').item.json.Name.first }} {{ $('Switch').item.json.Name.last }},\n    </p>\n\n    <p>Thank you for your interest in <strong>AquaPure Smart Bottle</strong>.</p>\n\n    <div class=\"question\">\n      <strong>Question:</strong><br>\n      {{ $('Switch').item.json['Describe Your Feedback:'] }}\n    </div>\n\n    <div class=\"answer\">\n      <strong>Answer:</strong><br>\n      {{ $json.output }}\n    </div>\n\n    <p class=\"footer\">\n      Best regards,<br>\n      <strong>Jotform</strong>\n    </p>\n  </div>\n</body>\n</html>",
        "options": {},
        "subject": "=AquaPure Smart Bottle - {{ $('Switch').item.json['Describe Your Feedback:'] }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "723d81fc-924b-46d2-b146-3544470daaa0",
      "name": "Datenbank auslesen",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        848,
        112
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "REDACTED",
          "cachedResultName": "qna"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "REDACTED"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "5607dc4f-d50f-4425-824e-2462bf09ce20",
      "name": "QnA-Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        624,
        -32
      ],
      "parameters": {
        "text": "=user: {{ $json['Describe Your Feedback:'] }}",
        "options": {
          "systemMessage": "=# Role\n- you're a helpful assistant to answer user question\n- always respond in warm tone\n\n# Context\n- you must read the google sheets for getting the answer\n- paraphrase the result so user can easily understand\n\n# Important restrictions\n- keep polite and use a proper language"
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "5162281b-fe6d-454d-88a4-7667b3b8d5c8",
      "name": "Vorschläge zusammenfassen",
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "position": [
        288,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "97913d99-2fe8-4afa-97b6-39627337f11a",
      "name": "Textnachricht senden",
      "type": "n8n-nodes-base.telegram",
      "position": [
        656,
        320
      ],
      "webhookId": "REDACTED",
      "parameters": {
        "text": "=Suggestions from {{ $('Switch').item.json.Name.first }} {{ $('Switch').item.json.Name.last }}\nEmail: {{ $('Switch').item.json['E-mail'] }}\n\nSummary: {{ $json.output.text }}\n\nFull: {{ $('Switch').item.json['Describe Your Feedback:'] }}",
        "chatId": "REDACTED",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "43158b87-1336-417d-bbd0-6245f6adaa8e",
      "name": "Zu Vorschlags-Backlog hinzufügen",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        880,
        320
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "={{ $('Switch').item.json.Name.first }} {{ $('Switch').item.json.Name.last }}",
            "Email": "={{ $('Switch').item.json['E-mail'] }}",
            "Summary": "={{ $('Summarize Suggestions').item.json.output.text }}",
            "Suggestions": "={{ $('Switch').item.json['Describe Your Feedback:'] }}",
            "Created Date": "={{ DateTime.now().format('yyyy-MM-dd') }}"
          },
          "schema": [
            {
              "id": "Created Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created Date",
              "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": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Suggestions",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Suggestions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2139811359,
          "cachedResultUrl": "REDACTED",
          "cachedResultName": "suggestions"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "REDACTED"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "4a67e4c3-13c7-497c-9ed4-bdf81123e0d2",
      "name": "In Kommentar-Tabelle speichern",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1072,
        -448
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "={{ $json.Name.first }} {{ $json.Name.last }}",
            "Email": "={{ $json['E-mail'] }}",
            "Comments": "={{ $json['Describe Your Feedback:'] }}",
            "Sentiment": "={{ $json.sentimentAnalysis.category }}",
            "Created Date": "={{ DateTime.now().format('yyyy-MM-dd') }}"
          },
          "schema": [
            {
              "id": "Created Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created Date",
              "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": "Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Comments",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Comments",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": false
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 903321638,
          "cachedResultUrl": "REDACTED",
          "cachedResultName": "comments"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "REDACTED",
          "cachedResultUrl": "REDACTED",
          "cachedResultName": "database"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "REDACTED",
          "name": "REDACTED"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "ab563cfb-ecef-4221-8496-dc5a2b8698ef",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        -560
      ],
      "parameters": {
        "width": 624,
        "height": 368,
        "content": "## Jotform feedback triage & auto-reply system\n\nThis workflow turns Jotform submissions into an automated triage pipeline:\n\nClassifies feedback (comment / question / suggestion) and runs sentiment.\n\n🚨 Urgent/angry messages → instant Telegram alert to support.\n\n❓ Questions → an LLM Q&A agent pulls answers from a Google Sheets knowledge base, then Gmail sends a friendly HTML reply.\n\n💡 Suggestions → auto-summary, Telegram heads-up, and logging into a Suggestions sheet.\n\n🗒️ Comments → appended to a Comments sheet for reporting.\nSetup tips: Rename nodes, keep credentials in node creds (not hard-coded), and store user-config variables in one Set node. Remove any personal IDs before sharing."
      },
      "typeVersion": 1
    },
    {
      "id": "5b8aa98c-defd-400b-925d-9e4fef08d4fc",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 368,
        "height": 208,
        "content": "## New submission from Jotform\n\nStarts when a new Jotform entry arrives (Name, E-mail, “Describe Your Feedback”). Map these form fields in your trigger node so they’re available to all branches."
      },
      "typeVersion": 1
    },
    {
      "id": "cfcb0f6c-8465-4669-8d87-d8aafd110312",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1312,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 544,
        "height": 320,
        "content": "## Answer with Q&A agent + email reply\n\nRead Database (Google Sheets Tool) loads your Q&A table (FAQ) for grounding. Point documentId + sheetName to your knowledge base. \n\nQnA Agent (LangChain) generates a paraphrased, user-friendly answer using the sheet as context. \n\nReply Customer (Gmail) sends a styled HTML email with the answer and the original question snippet. Replace the branding/text as needed. "
      },
      "typeVersion": 1
    },
    {
      "id": "7a738f93-72bd-4293-a412-63d55c8f1fa3",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        496
      ],
      "parameters": {
        "color": 7,
        "width": 544,
        "height": 320,
        "content": "## Summarize + alert + log\n\nSummarize Suggestions condenses the idea into an executive summary. \n\nTelegram heads-up posts the summary + full text to your product/channel chat. \n\nAppend to Suggestions (Google Sheets) writes Summary, Suggestion, Email, Name, Created Date. Update the sheet URL/ID and column mapping if your schema differs. \n"
      },
      "typeVersion": 1
    },
    {
      "id": "64d78b26-1e32-481f-ab8b-7639f296f2a6",
      "name": "Haftnotiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -704
      ],
      "parameters": {
        "color": 7,
        "width": 512,
        "height": 144,
        "content": "## Log for reporting\n\nAppends general comments to your Comments sheet with Name, Email, Sentiment, and the raw message. Use this for dashboards or periodic reviews."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8fce1e13-e7cb-4e2e-9d50-9e4c0fb8e927",
  "connections": {
    "9ebab0dd-5bac-443a-98ab-d30eff4b458a": {
      "main": [
        [
          {
            "node": "631e6076-06f9-44c7-b2d3-2b9ed406cc5f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5607dc4f-d50f-4425-824e-2462bf09ce20",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5162281b-fe6d-454d-88a4-7667b3b8d5c8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5607dc4f-d50f-4425-824e-2462bf09ce20": {
      "main": [
        [
          {
            "node": "a0399c2f-8d4a-4ac5-ac55-7c086fd74f7b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "723d81fc-924b-46d2-b146-3544470daaa0": {
      "ai_tool": [
        [
          {
            "node": "5607dc4f-d50f-4425-824e-2462bf09ce20",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "db688133-4596-47b2-9d63-5e91bc73753f": {
      "main": [
        [
          {
            "node": "9ebab0dd-5bac-443a-98ab-d30eff4b458a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "631e6076-06f9-44c7-b2d3-2b9ed406cc5f": {
      "main": [
        [
          {
            "node": "4a67e4c3-13c7-497c-9ed4-bdf81123e0d2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "4a67e4c3-13c7-497c-9ed4-bdf81123e0d2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "6b25a8c3-85c3-422b-8128-416afe44b98a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "97913d99-2fe8-4afa-97b6-39627337f11a": {
      "main": [
        [
          {
            "node": "43158b87-1336-417d-bbd0-6245f6adaa8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6b25a8c3-85c3-422b-8128-416afe44b98a": {
      "main": [
        [
          {
            "node": "4a67e4c3-13c7-497c-9ed4-bdf81123e0d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5162281b-fe6d-454d-88a4-7667b3b8d5c8": {
      "main": [
        [
          {
            "node": "97913d99-2fe8-4afa-97b6-39627337f11a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4a67e4c3-13c7-497c-9ed4-bdf81123e0d2": {
      "main": [
        []
      ]
    },
    "efa026b3-0b2e-4ee7-8074-493902a91265": {
      "ai_languageModel": [
        [
          {
            "node": "631e6076-06f9-44c7-b2d3-2b9ed406cc5f",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "75bd3135-b303-4fed-95e4-50c2f8950f1a": {
      "ai_languageModel": [
        [
          {
            "node": "5607dc4f-d50f-4425-824e-2462bf09ce20",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "5162281b-fe6d-454d-88a4-7667b3b8d5c8",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes18
Kategorie-
Node-Typen11
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Rully Saputra

Rully Saputra

@rullysaputra15

Specializing in software engineering with over 5 years of hands-on experience. In addition to my expertise in web development, I also have experience in creating Hybrid mobile apps.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34