15 - LeadFlow オートメーション

中級

これはAI Summarization, Multimodal AI分野の自動化ワークフローで、14個のノードを含みます。主にIf, Set, Code, Slack, Hubspotなどのノードを使用。 OpenAI GPT-4O、HubSpot、Slack、Google Sheetsを使ってGmailのリードフォローアップを自動化

前提条件
  • Slack Bot Token または Webhook URL
  • HubSpot API Key
  • Googleアカウント + Gmail API認証情報
  • Google Sheets API認証情報
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "REMOVED_FOR_PRIVACY",
  "meta": {
    "instanceId": "REMOVED_FOR_PRIVACY",
    "templateCredsSetupCompleted": true
  },
  "name": "15 - LeadFlow Automation",
  "tags": [],
  "nodes": [
    {
      "id": "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4",
      "name": "📧 Gmail: 新規リード返信",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -80,
        -160
      ],
      "parameters": {
        "filters": {
          "labelIds": [
            "YOUR_GMAIL_LABEL_ID"
          ]
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "YOUR_GMAIL_CREDENTIAL_ID",
          "name": "Gmail Account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1",
      "name": "🔧 Gmailデータの正規化",
      "type": "n8n-nodes-base.set",
      "position": [
        360,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "normalize-gmail",
              "name": "leadEmail",
              "type": "string",
              "value": "={{ $json.From }}"
            },
            {
              "id": "normalize-gmail-subject",
              "name": "subject",
              "type": "string",
              "value": "={{ $json.Subject }}"
            },
            {
              "id": "normalize-gmail-message",
              "name": "message",
              "type": "string",
              "value": "={{ $json.snippet }}"
            },
            {
              "id": "normalize-gmail-source",
              "name": "source",
              "type": "string",
              "value": "Gmail"
            },
            {
              "id": "normalize-gmail-timestamp",
              "name": "receivedAt",
              "type": "string",
              "value": "={{ $json.internalDate }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "b1d38a73-0376-433a-82da-a7a04d3d5da7",
      "name": "📋 AI分析結果の解析",
      "type": "n8n-nodes-base.code",
      "position": [
        956,
        -160
      ],
      "parameters": {
        "jsCode": "let aiResponse = $json.output;\n\n// Remove triple backticks and possible \"json\" label\naiResponse = aiResponse.replace(/```json|```/g, '').trim();\n\nlet analysis;\n\ntry {\n  analysis = JSON.parse(aiResponse);\n} catch (error) {\n  // Fallback parsing if JSON is malformed\n  analysis = {\n    sentiment: 'Neutral',\n    intent: 'Needs Info',\n    urgency: 'Medium',\n    nextAction: 'Email',\n    summary: 'Could not parse AI response',\n    priority: 'Warm'\n  };\n}\n\n// Get the original lead data from Normalize Gmail node\nconst leadData = $node['🔧 Normalize Gmail Data'].json;\n\n// Combine everything\nconst result = {\n  ...leadData,\n  ...analysis,\n  analysisDate: new Date().toISOString(),\n  needsFollowUp: analysis.nextAction !== 'No Action',\n  isHighPriority: analysis.priority === 'Hot' || analysis.urgency === 'High'\n};\n\nreturn [{ json: result }];"
      },
      "typeVersion": 2
    },
    {
      "id": "b92abdcc-33b5-4785-b1c4-84c210112dcf",
      "name": "📝 HubSpot: フォローアップタスク作成",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1396,
        -360
      ],
      "parameters": {
        "type": "task",
        "metadata": {
          "body": "={{ $json.message }}",
          "subject": "={{ $json.subject }}",
          "forObjectType": "CONTACT"
        },
        "resource": "engagement",
        "authentication": "appToken",
        "additionalFields": {}
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "YOUR_HUBSPOT_CREDENTIAL_ID",
          "name": "HubSpot Account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "74068c78-2ea1-4447-987a-8d40088483d4",
      "name": "💬 Slack: 営業チームへ通知",
      "type": "n8n-nodes-base.slack",
      "position": [
        1396,
        40
      ],
      "webhookId": "YOUR_SLACK_WEBHOOK_ID",
      "parameters": {
        "text": "=Summary: {{ $json.summary }}\nEmail: {{ $json.leadEmail }}\nPriority: {{ $json.priority }}\nUrgency: {{ $json.urgency }}\nDate: {{ $json.analysisDate }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SLACK_CHANNEL_ID",
          "cachedResultName": "general"
        },
        "otherOptions": {
          "mrkdwn": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "YOUR_SLACK_CREDENTIAL_ID",
          "name": "Slack Account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ae8454de-6504-4947-8571-87bd4bc0e0b0",
      "name": "📊 Google Sheetsへ記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1396,
        -160
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.analysisDate }}",
            "Email": "={{ $json.leadEmail }}",
            "Intent ": "={{ $json.intent }}",
            "Message": "={{ $json.message }}",
            "Subject": "={{ $json.subject }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Priority": "={{ $json.priority }}",
            "Sentiment": "={{ $json.sentiment }}",
            "nextAction": "={{ $json.nextAction }}"
          },
          "schema": [
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subject",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Intent ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Intent ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "nextAction",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "nextAction",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Priority",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "YOUR_GOOGLE_SHEETS_URL",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEETS_ID",
          "cachedResultUrl": "YOUR_GOOGLE_SHEETS_URL",
          "cachedResultName": "Follow Up"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets Account"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "6b10e13b-d8b0-42e2-ad8a-704a7202148f",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        668,
        60
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI Account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
      "name": "🔀 データ存在確認",
      "type": "n8n-nodes-base.if",
      "position": [
        140,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "condition-1",
              "operator": {
                "type": "object",
                "operation": "exists",
                "rightType": "any"
              },
              "leftValue": "={{ $node['📧 Gmail: New Lead Response'].json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "88cd5104-9389-4664-8e03-3adee0c408a5",
      "name": "🔍 フォローアップ必要?",
      "type": "n8n-nodes-base.if",
      "position": [
        1176,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b2831020-9725-454b-a3dc-0b6465587288",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.needsFollowUp }}",
              "rightValue": {}
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
      "name": "🧠 リード返信分析 (AI)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        580,
        -160
      ],
      "parameters": {
        "text": "=Analyze this lead response and provide:\n\n1. Sentiment: (Positive/Neutral/Negative)\n2. Intent: (Interested/Not Interested/Needs Info/Ready to Buy/Objection)\n3. Urgency: (High/Medium/Low)\n4. Next Action: (Call/Email/Demo/Quote/No Action)\n5. Summary: Brief 1-2 sentence summary\n6. Priority: (Hot/Warm/Cold)\n\nLead Email: {{ $json.leadEmail }}\nSubject: {{ $json.subject }}\nMessage: {{ $json.message }}\nRespond in JSON format with keys: sentiment, intent, urgency, nextAction, summary, priority",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "b970147b-c301-49e4-924d-535e7cf3a01e",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -500
      ],
      "parameters": {
        "color": 5,
        "width": 640,
        "height": 680,
        "content": "## Nodes:\n\n**📧 Gmail: New Lead Response\n\n🔀 Check if Data Exists\n\n🔧 Normalize Gmail Data**\n\n*Captures new lead responses from Gmail with a specific label every minute. Verifies the presence of data and standardizes incoming fields (email, subject, message, timestamp, etc.) for consistent processing across the workflow.*"
      },
      "typeVersion": 1
    },
    {
      "id": "885d848a-de98-48bb-8fc1-dab28cc20570",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        -500
      ],
      "parameters": {
        "color": 3,
        "width": 580,
        "height": 680,
        "content": "## Nodes:\n\n**🧠 Analyze Lead Response (AI)\n\nOpenAI Chat Model\n\n📋 Parse AI Analysis Results**\n\n*Utilizes OpenAI to analyze the lead's message for sentiment, intent, urgency, next action, and priority. The response is parsed and merged with original email data. Adds calculated flags (needsFollowUp, isHighPriority) to streamline follow-up logic.*"
      },
      "typeVersion": 1
    },
    {
      "id": "90a8e89d-42fe-498e-950e-c9e1a6eb6878",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        -500
      ],
      "parameters": {
        "width": 160,
        "height": 680,
        "content": "## Node:\n\n**🔍 Needs Follow-Up?**\n\n*Evaluates if the AI-recommended next action requires follow-up. If so, triggers all follow-up actions like CRM task creation, sales notification, and data logging.*"
      },
      "typeVersion": 1
    },
    {
      "id": "fbd6f660-c7e3-4e8e-ad7f-a8ca871b89dc",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -760
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 1000,
        "content": "## Nodes:\n\n**📝 HubSpot: Create Follow-up Task\n\n💬 Slack: Notify Sales Team\n\n📊 Log to Google Sheets**\n\n*Once a lead needs follow-up, the workflow:\n\nCreates a HubSpot task for sales tracking\n\nSends a Slack alert with lead insights\n\nLogs analysis to Google Sheets for tracking and review*"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "REMOVED_FOR_PRIVACY",
  "connections": {
    "6b10e13b-d8b0-42e2-ad8a-704a7202148f": {
      "ai_languageModel": [
        [
          {
            "node": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "88cd5104-9389-4664-8e03-3adee0c408a5": {
      "main": [
        [
          {
            "node": "b92abdcc-33b5-4785-b1c4-84c210112dcf",
            "type": "main",
            "index": 0
          },
          {
            "node": "74068c78-2ea1-4447-987a-8d40088483d4",
            "type": "main",
            "index": 0
          },
          {
            "node": "ae8454de-6504-4947-8571-87bd4bc0e0b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad3e3fb6-2e91-41c8-8082-30fe37202a71": {
      "main": [
        [
          {
            "node": "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1": {
      "main": [
        [
          {
            "node": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "74068c78-2ea1-4447-987a-8d40088483d4": {
      "main": [
        []
      ]
    },
    "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4": {
      "main": [
        [
          {
            "node": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b1d38a73-0376-433a-82da-a7a04d3d5da7": {
      "main": [
        [
          {
            "node": "88cd5104-9389-4664-8e03-3adee0c408a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2": {
      "main": [
        [
          {
            "node": "b1d38a73-0376-433a-82da-a7a04d3d5da7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b92abdcc-33b5-4785-b1c4-84c210112dcf": {
      "main": [
        []
      ]
    }
  }
}
よくある質問

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

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

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

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

有料ですか?

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

関連ワークフロー

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

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

作成者
Avkash Kakdiya

Avkash Kakdiya

@itechnotion

🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34