スマートGmailタグ:OpenAIを使用してメールのコンテンツの意図で分類する

上級

これはSupport, AI分野の自動化ワークフローで、18個のノードを含みます。主にSet, Gmail, Merge, SplitOut, Aggregateなどのノードを使用、AI技術を活用したスマート自動化を実現。 GPT-4 コンテンツ分析とラベルを使用して Gmail メッセージを自動のに分類する

前提条件
  • Googleアカウント + Gmail API認証情報
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "Yc9bgOEvpyO1En1Z",
  "meta": {
    "instanceId": "1af8a0dc0d2f537b7c08209af728c271b5a03806bdf309bedf99d668f2608ee6",
    "templateCredsSetupCompleted": true
  },
  "name": "Intelligent Gmail Labeling: Categorize Emails by Content Intent Using OpenAI",
  "tags": [],
  "nodes": [
    {
      "id": "7697a77b-7dc8-40e7-b8e2-859c724ed6d5",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2380,
        40
      ],
      "parameters": {
        "width": 452.48413953150185,
        "height": 347.0476323933831,
        "content": "### Aggregate labels and update to message\nCreate array of label IDs and add to the desired email message in Gmail."
      },
      "typeVersion": 1
    },
    {
      "id": "013c142d-eb86-4d62-bab3-9dc77fba7b3b",
      "name": "Gmail trigger",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        720,
        200
      ],
      "parameters": {
        "simple": false,
        "filters": {},
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "2pW13S2GyP5GCdoP",
          "name": "Gmail account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "78cf0980-b4ec-4ed0-9b49-014e4d5d63d3",
      "name": "メール本文取得",
      "type": "n8n-nodes-base.gmail",
      "position": [
        980,
        200
      ],
      "webhookId": "b773894c-18c6-454d-9271-6de10be1b7c4",
      "parameters": {
        "simple": false,
        "options": {},
        "messageId": "={{ $json.id }}",
        "operation": "get"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "2pW13S2GyP5GCdoP",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
      "name": "メールにラベル割り当て",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1240,
        200
      ],
      "parameters": {
        "text": "={{ $('Gmail trigger').item.json.text }}",
        "messages": {
          "messageValues": [
            {
              "message": "=As an AI Assistant, your task is to categorize the message according to the following labels\n\nQuotation - email on discussing new opportunities to work with existing / new client on a new project\nProject progress - email on discussing and confirming specifications, schedule and progress of projects\nInquiry - email about product / service support\nNotification - email that doesn't require response\n\nOne email can have more than one label. Return only label names in JSON format, nothing else. Do not make things up."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.5
    },
    {
      "id": "c0f1e702-25b5-4887-b112-7d0d1c239ea1",
      "name": "JSON Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1460,
        420
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"labels\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\"Inquiry\", \"Quotation\", \"Project progress\", \"Notification\"]\n      }\n    }\n  },\n  \"required\": [\"labels\"]\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "979aad50-8e34-471e-9016-c412e470c81b",
      "name": "ラベル値設定",
      "type": "n8n-nodes-base.set",
      "position": [
        1620,
        200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "72d11a72-6693-447c-b7ca-4ba1a3579075",
              "name": "labels",
              "type": "array",
              "value": "={{ $json.output.labels }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "48e80f97-1679-40a5-860d-124d32c82316",
      "name": "全ラベル取得",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1840,
        80
      ],
      "webhookId": "dec6f574-f47c-4b5d-86b9-2b0f6c957145",
      "parameters": {
        "resource": "label",
        "returnAll": true
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "2pW13S2GyP5GCdoP",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e29e712a-7940-4ca3-9a82-525ac7d5f7bf",
      "name": "割当ラベル分離",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1840,
        280
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "labels"
      },
      "typeVersion": 1
    },
    {
      "id": "95886e13-3412-4c27-8510-873bbaced52b",
      "name": "対応ラベル統合",
      "type": "n8n-nodes-base.merge",
      "position": [
        2180,
        140
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "mergeByFields": {
          "values": [
            {
              "field1": "name",
              "field2": "labels"
            }
          ]
        }
      },
      "typeVersion": 3.1
    },
    {
      "id": "329cf5ff-7933-4c5e-bb63-cbb77689a194",
      "name": "ラベルID集約",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2440,
        140
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "label_ids",
              "fieldToAggregate": "id"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "952aad99-6ae7-4639-8132-f51b1065468e",
      "name": "メールにラベル追加",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2640,
        140
      ],
      "webhookId": "4f345fc9-2afd-478b-be3b-d3d28f0fbc82",
      "parameters": {
        "labelIds": "={{ $json.label_ids }}",
        "messageId": "={{ $('Gmail trigger').item.json[\"id\"] }}",
        "operation": "addLabels"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "2pW13S2GyP5GCdoP",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "11244a40-d6df-475b-b900-bf8d386077d6",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -140
      ],
      "parameters": {
        "color": 4,
        "width": 580,
        "height": 1041,
        "content": "## Intelligent Gmail Labeling: Categorize Emails by Content Intent Using OpenAI\n\n## Who is this for?\n\nThis workflow is ideal for Gmail users and teams who receive a high volume of emails and want to streamline inbox management. It suits professionals seeking to organize messages automatically, including sales teams, project managers, support staff, and anyone who benefits from automated email categorization.\n\n## What problem is this workflow solving? / Use case\n\nManually labeling emails is time-consuming and can lead to inconsistent organization. This automated n8n workflow uses Gmail and OpenAI to analyze incoming messages and apply the appropriate labels, such as \"Quotation\", \"Inquiry\", \"Project progress\", and \"Notification\", based on content—improving productivity and ensuring important messages are prioritized.\n\n## What this workflow does\n\nThe workflow retrieves new Gmail messages, analyzes their content with OpenAI, and automatically assigns pre-defined Gmail labels that match the email’s intent. This ensures emails are sorted efficiently using AI-powered content analysis and Gmail’s labeling system.\n\n## Setup\n\n- Ensure Gmail labels (e.g., \"Quotation\", \"Inquiry\") are created in your Gmail account.\n- Connect your Gmail and OpenAI accounts as credentials in n8n.\n- Import the workflow into your n8n instance and update node configurations to match your Gmail label names.\n\n## How to customize this workflow to your needs\n\n- Edit or add Gmail labels both in your Gmail account and within the workflow logic.\n- Adjust the prompt or parameters sent to OpenAI to better match your categorization style.\n- Expand or refine the list of label categories to fit your team’s or business’s requirements.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1eca85f0-bfa4-431e-90e2-0ffe25844bdd",
      "name": "付箋13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        20
      ],
      "parameters": {
        "width": 238,
        "height": 349,
        "content": "### Gmail Trigger\nGet new incoming message from Gmail. \n\n⚠️ Set up the time (polling) interval based on your needs."
      },
      "typeVersion": 1
    },
    {
      "id": "a5dd9b23-0fd8-42a8-a334-2a0640750c52",
      "name": "付箋14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1400,
        400
      ],
      "parameters": {
        "width": 241.53974014153226,
        "height": 319.3323098457962,
        "content": "###\n\n\n\n\n\n\n\n\n\n\n### JSON schema\nEdit JSON schema and label names according to your needs.\n\n⚠️ **Label names in system prompt and JSON schema should be the same.**"
      },
      "typeVersion": 1
    },
    {
      "id": "c6a7af89-e307-4363-8d96-83c0f7c0e7b8",
      "name": "付箋15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2120,
        40
      ],
      "parameters": {
        "width": 226.14233872620645,
        "height": 347.0476323933831,
        "content": "### Merge labels\nCombine labels retrieved from Gmail account and assigned by AI together."
      },
      "typeVersion": 1
    },
    {
      "id": "afb1a124-f880-4d6c-987e-dabf2c3fb882",
      "name": "付箋16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        20
      ],
      "parameters": {
        "width": 238.4602598584674,
        "height": 348.5873725349161,
        "content": "### Get message content\nBased on Gmail message ID retrieve body content of the email and pass it to AI chain."
      },
      "typeVersion": 1
    },
    {
      "id": "44b4c579-538f-45fe-9cde-627ac7364013",
      "name": "付箋17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1180,
        20
      ],
      "parameters": {
        "width": 378.57661273793565,
        "height": 348.5873725349161,
        "content": "### Assign labels\nLet the AI decide which labels suit the best content of the message.\n\n⚠️ **Remember to edit system prompt** - modify label names and instructions according to your needs."
      },
      "typeVersion": 1
    },
    {
      "id": "e866b876-20a4-4a19-bd07-56c69eed82af",
      "name": "OpenAI GPT-4 Based",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1220,
        420
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4-turbo-preview",
          "cachedResultName": "gpt-4-turbo-preview"
        },
        "options": {
          "temperature": 0,
          "responseFormat": "json_object"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "8cWUJS0NExv35YHi",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "01528b99-a1ee-48df-b42f-c3717974161c",
  "connections": {
    "c0f1e702-25b5-4887-b112-7d0d1c239ea1": {
      "ai_outputParser": [
        [
          {
            "node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "013c142d-eb86-4d62-bab3-9dc77fba7b3b": {
      "main": [
        [
          {
            "node": "78cf0980-b4ec-4ed0-9b49-014e4d5d63d3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "48e80f97-1679-40a5-860d-124d32c82316": {
      "main": [
        [
          {
            "node": "95886e13-3412-4c27-8510-873bbaced52b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "979aad50-8e34-471e-9016-c412e470c81b": {
      "main": [
        [
          {
            "node": "e29e712a-7940-4ca3-9a82-525ac7d5f7bf",
            "type": "main",
            "index": 0
          },
          {
            "node": "48e80f97-1679-40a5-860d-124d32c82316",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e866b876-20a4-4a19-bd07-56c69eed82af": {
      "ai_languageModel": [
        [
          {
            "node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "329cf5ff-7933-4c5e-bb63-cbb77689a194": {
      "main": [
        [
          {
            "node": "952aad99-6ae7-4639-8132-f51b1065468e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "78cf0980-b4ec-4ed0-9b49-014e4d5d63d3": {
      "main": [
        [
          {
            "node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f07bb8a-0e12-47fd-bf4f-751befeea37c": {
      "main": [
        [
          {
            "node": "979aad50-8e34-471e-9016-c412e470c81b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e29e712a-7940-4ca3-9a82-525ac7d5f7bf": {
      "main": [
        [
          {
            "node": "95886e13-3412-4c27-8510-873bbaced52b",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "95886e13-3412-4c27-8510-873bbaced52b": {
      "main": [
        [
          {
            "node": "329cf5ff-7933-4c5e-bb63-cbb77689a194",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

上級 - サポート, 人工知能

有料ですか?

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

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

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

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34