コールセンター transcription 感情分析 n8n

中級

これはAI Summarization, Multimodal AI分野の自動化ワークフローで、9個のノードを含みます。主にSet, GoogleSheets, SplitInBatches, Agent, ScheduleTriggerなどのノードを使用。 GPT-4o-miniとGoogle Sheetsでカスタマーセンターでの感情分析を自動化

前提条件
  • Google Sheets API認証情報
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "6kTlui6CDAIL3vNV",
  "meta": {
    "instanceId": "9272721148ea09184b6bbb7ce6219dab088562dd450e2df8280d57c2e34c7d84",
    "templateCredsSetupCompleted": true
  },
  "name": "call-center-transcription-sentiment-analysis-n8n",
  "tags": [],
  "nodes": [
    {
      "id": "eee89774-3c9b-4e26-8bf2-9f14ee1ced97",
      "name": "OpenAI チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        192,
        128
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "id",
          "value": "=gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "zHTJ5AI7kBmTnuvv",
          "name": "InfyOm"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "77912e60-0f2a-4434-b8c7-00bc53c474a9",
      "name": "ループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -256,
        32
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "d44b524d-3b67-4c48-8d52-34bba6ad16b9",
      "name": "スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -704,
        32
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 19
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3173c049-13c7-483c-a6ea-65340bf585f9",
      "name": "Get All Transcript",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -480,
        32
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU/edit?usp=drivesdk",
          "cachedResultName": "Transcript_analysis_system"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "WdaCQmtoNquNSoAA",
          "name": "Google Sheets"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "856d4c88-f8a6-41ab-b52c-639e58df2b0c",
      "name": "Send only Transcript Field",
      "type": "n8n-nodes-base.set",
      "position": [
        -32,
        -96
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "697b9e87-2767-43a8-9dfe-72c50903a5d5",
              "name": "Full Transcript",
              "type": "string",
              "value": "={{ $json[\"Full Transcript\"] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0aa10ec0-c836-44df-ad85-9a503e1d10e3",
      "name": "Analysis Transcript",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        192,
        -96
      ],
      "parameters": {
        "text": "={{ $json[\"Full Transcript\"] }}",
        "options": {
          "systemMessage": "=You are an advanced AI assistant specialized in sentiment analysis for customer service conversations.\n\nYour task is to extract structured data from a customer service chat transcript. Return values for each field listed below.\n\nRespond in JSON format using structured output tool with the following fields:\n\n\n- Topic (Topic name for discussion like 'Medical Report','shipping delay')\n- Customer Name\n- Agent Name\n- Greeting Sentiment (1 to 5, where 5 is very polite/friendly/Greeting and 1 is rude)\n- Closing Sentiment (1 to 5, where 5 is very Closing polite/friendly and 1 is rude)\n- Problem Solving (1 to 5, where 5 is excellent and 1 is poor)\n- Agent Friendliness (1 to 5, where 5 is very polite/friendly and 1 is rude)\n- Customer Sentiment (Before → After, e.g. \"Angry → Satisfied\")\n- Issue Resolved (Yes / No / Partially)"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "1c427949-04d9-4ed8-9d17-d62bf34c18e8",
      "name": "Structured Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        368,
        128
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"Topic\": \"XYZ\",\n  \"Customer Name\": \"John D\",\n  \"Agent Name\": \"Priya M\",\n  \"Greeting Sentiment\": 5,\n  \"Closing Sentiment\": 5,\n  \"Problem Solving\": 5,\n  \"Agent Friendliness\": 5,\n  \"Customer Sentiment\": \"Frustrated → Satisfied\",\n  \"Issue Resolved\": \"Yes\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "79c31b02-f5bc-4185-b83a-6ca7caa25f6c",
      "name": "Store Analysis Transcript",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        608,
        32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Done",
            "Agent Name": "={{ $json.output[\"Agent Name\"] }}",
            "Total Rating": "={{( Number($json.output[\"Greeting Sentiment\"]) + Number($json.output[\"Closing Sentiment\"]) + Number($json.output[\"Problem Solving\"]) + Number($json.output[\"Agent Friendliness\"]))/4}}\n",
            "Customer Name": "={{ $json.output[\"Customer Name\"] }}",
            "Issue Resolved": "={{ $json.output[\"Issue Resolved\"] }}",
            "Full Transcript": "={{ $('Loop Over Items').item.json['Full Transcript'] }}",
            "Problem Solving": "={{ $json.output[\"Problem Solving\"] }}",
            "Closing Sentiment": "={{ $json.output[\"Closing Sentiment\"] }}",
            "Agent Friendliness": "={{ $json.output[\"Agent Friendliness\"] }}",
            "Customer Sentiment": "={{ $json.output[\"Customer Sentiment\"] }}",
            "Greeting Sentiment": "={{ $json.output[\"Greeting Sentiment\"] }}",
            "Conversations Topics": "={{ $json.output.Topic }}"
          },
          "schema": [
            {
              "id": "Full Transcript",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Full Transcript",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Conversations Topics",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Conversations Topics",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Customer Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agent Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Agent Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Greeting Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Greeting Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Closing Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Closing Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Problem Solving",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Problem Solving",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Agent Friendliness",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Agent Friendliness",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Customer Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Customer Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Issue Resolved",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Issue Resolved",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Total Rating",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Total Rating",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Full Transcript"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU/edit?usp=drivesdk",
          "cachedResultName": "Transcript_analysis_system"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "WdaCQmtoNquNSoAA",
          "name": "Google Sheets"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "735bad42-0258-4076-a4d2-939a4a2677f6",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -176
      ],
      "parameters": {
        "width": 512,
        "height": 128,
        "content": "### Sample Google Sheet\n\nhttps://docs.google.com/spreadsheets/d/1aWU28D_73nvkDMPfTkPkaV53kHgX7cg0W4NwLzGFEGU/edit?gid=0#gid=0"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a54e879a-6738-4edb-b195-8b47945d70a7",
  "connections": {
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "856d4c88-f8a6-41ab-b52c-639e58df2b0c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "3173c049-13c7-483c-a6ea-65340bf585f9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "0aa10ec0-c836-44df-ad85-9a503e1d10e3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "1c427949-04d9-4ed8-9d17-d62bf34c18e8": {
      "ai_outputParser": [
        [
          {
            "node": "0aa10ec0-c836-44df-ad85-9a503e1d10e3",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "3173c049-13c7-483c-a6ea-65340bf585f9": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0aa10ec0-c836-44df-ad85-9a503e1d10e3": {
      "main": [
        [
          {
            "node": "79c31b02-f5bc-4185-b83a-6ca7caa25f6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "79c31b02-f5bc-4185-b83a-6ca7caa25f6c": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "856d4c88-f8a6-41ab-b52c-639e58df2b0c": {
      "main": [
        [
          {
            "node": "0aa10ec0-c836-44df-ad85-9a503e1d10e3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

中級 - AI要約, マルチモーダルAI

有料ですか?

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

ワークフロー情報
難易度
中級
ノード数9
カテゴリー2
ノードタイプ8
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
InfyOm Technologies

InfyOm Technologies

@infyom

We are an AI Automation Agency focusing on various AI Automation Services like, workflow automation, shopify automation, chatbot developerment, custom ai agent development and more.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34