Jotform

上級

これは自動化ワークフローで、18個のノードを含みます。主にGmail, Switch, Telegram, GoogleSheets, JotFormTriggerなどのノードを使用。 自動回答客先フィードバックトリアージ(Gemini、Jotform、Google Sheets、Gmailを使用)

前提条件
  • Googleアカウント + Gmail API認証情報
  • Telegram Bot Token
  • Google Sheets API認証情報
  • Google Gemini API Key

カテゴリー

-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "REDACTED",
  "meta": {
    "instanceId": "REDACTED",
    "templateCredsSetupCompleted": true
  },
  "name": "Jotform",
  "tags": [],
  "nodes": [
    {
      "id": "db688133-4596-47b2-9d63-5e91bc73753f",
      "name": "JotFormトリガー",
      "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": "分岐",
      "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 チャットモデル",
      "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 チャットモデル1",
      "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": "感情分析",
      "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": "サポートグループへ送信",
      "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": "顧客へ返信",
      "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": "データベース読み取り",
      "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エージェント",
      "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": "提案を要約",
      "type": "@n8n/n8n-nodes-langchain.chainSummarization",
      "position": [
        288,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "97913d99-2fe8-4afa-97b6-39627337f11a",
      "name": "テキストメッセージ送信",
      "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": "提案バックログに追加",
      "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": "コメントシートに保存",
      "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": "付箋",
      "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": "付箋1",
      "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": "付箋2",
      "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": "付箋3",
      "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": "付箋4",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数18
カテゴリー-
ノードタイプ11
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
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.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34