私のワークフロー

中級

これはAI Summarization, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にIf, Set, Gmail, SplitInBatches, Agentなどのノードを使用。 Gmailを整理する:GPT-4 を使用して非アクティブメールを分類・归档

前提条件
  • Googleアカウント + Gmail API認証情報
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "name": "My workflow",
  "nodes": [
    {
      "id": "7e91ccc0-03e5-4989-8c3f-d3635313f393",
      "name": "スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -864,
        368
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 2
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "eea7bc1f-c4a4-4c2d-bd6f-27f977948e32",
      "name": "古い受信トレイメールの一覧取得",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -640,
        368
      ],
      "webhookId": "a77f2f37-91b8-44e1-9d9e-7a58136627c0",
      "parameters": {
        "simple": false,
        "filters": {
          "q": "label:inbox older_than:45d",
          "labelIds": [
            "INBOX"
          ],
          "readStatus": "read"
        },
        "options": {},
        "operation": "getAll",
        "returnAll": true
      },
      "typeVersion": 2.1,
      "alwaysOutputData": false
    },
    {
      "id": "d88c4116-55e9-48b8-ae1f-9d89cc39bd99",
      "name": "AI処理用メール準備",
      "type": "n8n-nodes-base.set",
      "position": [
        -192,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5d3c4c5b-5f80-4340-82ca-fb584a1fc953",
              "name": "threadId",
              "type": "string",
              "value": "={{ $json.threadId }}"
            },
            {
              "id": "a33a5a8a-dc7a-4fed-9262-8c6d10434128",
              "name": "messageId",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "c982f401-ce58-4d5e-ba30-a13d03971705",
              "name": "Subject",
              "type": "string",
              "value": "={{ $json.subject }}"
            },
            {
              "id": "c18cd58e-407a-48a4-b9e1-5877a1f90df4",
              "name": "text",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "57e6c6b6-fe9a-49ff-aac6-3687bdb3b236",
      "name": "メールループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -416,
        368
      ],
      "parameters": {
        "options": {},
        "batchSize": 50
      },
      "typeVersion": 3
    },
    {
      "id": "3dab757d-460d-4935-a6bc-10e761072575",
      "name": "AIエージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        32,
        240
      ],
      "parameters": {
        "text": "=You are an assistant classifying Gmail emails. Output JSON only, no prose.\n\nOnly use these inputs:\nthreadId: {{ $json.threadId }}\nmessageId: {{ $json.messageId }}\nsubject: {{ $json.subject }}\ntext: {{ $json.text }}\n\nAssume today's date is {{ $now.toFormat('yyyy-LL-dd') }}.\n\nTasks:\n1) Extract a due date from the text if present, format YYYY-MM-DD. If none, use null.\n2) Decide if the email requires action. Action means at least one of:\n   - It is an invoice or bill that expects payment\n   - It explicitly requests a reply or a decision\n   - It clearly contains a task or meeting to schedule\n3) Set trashable = true if any of these are true:\n   - due_date is null\n   - due_date is earlier than today\n   - requires_action is false\n   Otherwise trashable = false.\n\nReturn JSON with this exact structure:\n{\n  \"threadId\": \"<string>\",\n  \"messageId\": \"<string>\",\n  \"requires_action\": true | false,\n  \"due_date\": \"YYYY-MM-DD\" | null,\n  \"trashable\": true | false,\n  \"reason\": \"<short explanation>\"\n}\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "54867a18-8d2b-4697-92ed-b01c53cb322c",
      "name": "OpenAI チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        48,
        464
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "20193ea2-1b6d-428b-9219-160ffab88242",
      "name": "構造化出力パーサー",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        176,
        464
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"title\": \"SimpleEmailTriage\",\n  \"type\": \"object\",\n  \"required\": [\"threadId\", \"messageId\", \"requires_action\", \"due_date\", \"trashable\", \"reason\"],\n  \"properties\": {\n    \"threadId\": { \"type\": \"string\" },\n    \"messageId\": { \"type\": \"string\" },\n    \"requires_action\": { \"type\": \"boolean\" },\n    \"due_date\": { \"type\": [\"string\", \"null\"], \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\" },\n    \"trashable\": { \"type\": \"boolean\" },\n    \"reason\": { \"type\": \"string\" }\n  },\n  \"additionalProperties\": false\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "2495ccbf-8a5b-4cc3-bce3-6d961616dc16",
      "name": "完了",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -192,
        48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e7a26dcc-ded8-4d74-8fff-19942a46c5cc",
      "name": "条件分岐 - アーカイブ対象?",
      "type": "n8n-nodes-base.if",
      "position": [
        384,
        368
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7426c831-e458-48fe-80ef-5b2fe11c897c",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.output.trashable }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c9824337-668f-490b-a32c-0e10c6ebe7db",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 304,
        "height": 608,
        "content": "### 🧠 AI Email Classifier\n\n• The \"AI Agent\" sends email content to OpenAI with a clear instruction set to classify the email (due date, action needed, trashable).\n• If \"trashable\" is true, the email can be archived or trashed. "
      },
      "typeVersion": 1
    },
    {
      "id": "5a40520c-0d16-442f-a9ef-d13ca97d204d",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        112
      ],
      "parameters": {
        "color": 5,
        "height": 416,
        "content": "### 📥 Gmail: List Old Emails\n\n• This Gmail node fetches all emails in the inbox that are read and older than 45 days.\n• You can modify the search filter to change which emails are targeted (e.g., change older_than:45d to a different duration)."
      },
      "typeVersion": 1
    },
    {
      "id": "0672da9a-b5bb-4709-ac87-99ddb56632cd",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        112
      ],
      "parameters": {
        "color": 5,
        "height": 416,
        "content": "### 📆 Schedule the Workflow\n\n• The \"Schedule Trigger\" by default, it's 2am everyday. \n• Modify it to your desired interval (e.g., daily, hourly) to control how often the workflow runs."
      },
      "typeVersion": 1
    },
    {
      "id": "ef9dfef6-9d58-4d49-9bc6-407bd4853b35",
      "name": "メールアーカイブ",
      "type": "n8n-nodes-base.gmail",
      "position": [
        608,
        448
      ],
      "webhookId": "eeb7c097-a237-4d0f-98bc-ae823c89822b",
      "parameters": {
        "labelIds": [
          "INBOX"
        ],
        "resource": "thread",
        "threadId": "={{ $json.output.threadId }}",
        "operation": "removeLabels"
      },
      "typeVersion": 2.1
    }
  ],
  "connections": {
    "3dab757d-460d-4935-a6bc-10e761072575": {
      "main": [
        [
          {
            "node": "e7a26dcc-ded8-4d74-8fff-19942a46c5cc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef9dfef6-9d58-4d49-9bc6-407bd4853b35": {
      "main": [
        [
          {
            "node": "57e6c6b6-fe9a-49ff-aac6-3687bdb3b236",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57e6c6b6-fe9a-49ff-aac6-3687bdb3b236": {
      "main": [
        [
          {
            "node": "2495ccbf-8a5b-4cc3-bce3-6d961616dc16",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d88c4116-55e9-48b8-ae1f-9d89cc39bd99",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7e91ccc0-03e5-4989-8c3f-d3635313f393": {
      "main": [
        [
          {
            "node": "eea7bc1f-c4a4-4c2d-bd6f-27f977948e32",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "54867a18-8d2b-4697-92ed-b01c53cb322c": {
      "ai_languageModel": [
        [
          {
            "node": "3dab757d-460d-4935-a6bc-10e761072575",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "d88c4116-55e9-48b8-ae1f-9d89cc39bd99": {
      "main": [
        [
          {
            "node": "3dab757d-460d-4935-a6bc-10e761072575",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e7a26dcc-ded8-4d74-8fff-19942a46c5cc": {
      "main": [
        [
          {
            "node": "ef9dfef6-9d58-4d49-9bc6-407bd4853b35",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "57e6c6b6-fe9a-49ff-aac6-3687bdb3b236",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eea7bc1f-c4a4-4c2d-bd6f-27f977948e32": {
      "main": [
        [
          {
            "node": "57e6c6b6-fe9a-49ff-aac6-3687bdb3b236",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "20193ea2-1b6d-428b-9219-160ffab88242": {
      "ai_outputParser": [
        [
          {
            "node": "3dab757d-460d-4935-a6bc-10e761072575",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

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

有料ですか?

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

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

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

作成者
Matt Chong | n8n Creator

Matt Chong | n8n Creator

@mattxchong

Automation nerd fueled by good coffee, deep curiosity, and clean flows.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34