8
n8n 한국어amn8n.com

잠재 리드 후속 조치 자동화: Gmail, HubSpot 및 Slack용 GPT-4o mini 분석

중급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 If, Set, Code, Slack, Hubspot 등의 노드를 사용하며. 잠재 고객 후속 조치 자동화: Gmail, HubSpot 및 Slack용 GPT-4o mini 분석

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • HubSpot API Key
  • Google 계정 및 Gmail API 인증 정보
  • Google Sheets API 인증 정보
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "0a25db4fd0692af64b58f35e01611f2ef0b5bb9d6654c57ef3741021e7d8cc11",
    "templateId": "7680"
  },
  "nodes": [
    {
      "id": "6b10e13b-d8b0-42e2-ad8a-704a7202148f",
      "name": "OpenAI 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1168,
        800
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "Kzhpo6yW8AwY3uMm",
          "name": "OpenAI account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ae8454de-6504-4947-8571-87bd4bc0e0b0",
      "name": "Log to Google 스프레드시트",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1888,
        576
      ],
      "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": "cjPjcwa3RdiMAu79",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "b92abdcc-33b5-4785-b1c4-84c210112dcf",
      "name": "HubSpot: Create Follow-up Task",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1888,
        368
      ],
      "parameters": {
        "type": "task",
        "metadata": {
          "body": "={{ $json.message }}",
          "subject": "={{ $json.subject }}",
          "forObjectType": "CONTACT"
        },
        "resource": "engagement",
        "authentication": "appToken",
        "additionalFields": {}
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "oNTWU9KOKbjH9Ciu",
          "name": "HubSpot App Token account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "74068c78-2ea1-4447-987a-8d40088483d4",
      "name": "Slack: Notify Sales Team",
      "type": "n8n-nodes-base.slack",
      "position": [
        1888,
        768
      ],
      "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": "xjzavdu68HBdx5UN",
          "name": "Slack account 2"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "88cd5104-9389-4664-8e03-3adee0c408a5",
      "name": "Needs Follow-Up?",
      "type": "n8n-nodes-base.if",
      "position": [
        1664,
        576
      ],
      "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": "b1d38a73-0376-433a-82da-a7a04d3d5da7",
      "name": "Parse AI Analysis Results",
      "type": "n8n-nodes-base.code",
      "position": [
        1440,
        576
      ],
      "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": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
      "name": "Analyze Lead Response (AI)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1088,
        576
      ],
      "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": "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1",
      "name": "Normalize Gmail Data",
      "type": "n8n-nodes-base.set",
      "position": [
        864,
        576
      ],
      "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": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
      "name": "Check if Data Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        640,
        576
      ],
      "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": "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4",
      "name": "Gmail: New Lead Response",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        416,
        576
      ],
      "parameters": {
        "filters": {
          "labelIds": [
            "YOUR_GMAIL_LABEL_ID"
          ]
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "vdI9VLsEmuPzPxxo",
          "name": "Gmail account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "73322673-6dff-494b-b7bb-c3a5b4e25088",
      "name": "메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        352
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 140,
        "content": "## STEP 1 · Intake (Gmail)\nPolls Gmail for new lead replies (by label).\nThen checks data exists before processing.\n\nFields captured: From, Subject, snippet, internalDate."
      },
      "typeVersion": 1
    },
    {
      "id": "50d0eb7b-88f0-43fa-b3bf-823c373024b0",
      "name": "메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        368
      ],
      "parameters": {
        "color": 5,
        "width": 460,
        "height": 150,
        "content": "## STEP 2 · Normalize & Analyze (AI)\nNormalize Gmail → {leadEmail, subject, message, receivedAt}.\nOpenAI Chat Model powers the Agent.\nAgent returns JSON: sentiment, intent, urgency, nextAction, summary, priority."
      },
      "typeVersion": 1
    },
    {
      "id": "47900fd2-2242-49f4-8e02-4a10ff1724eb",
      "name": "메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        400
      ],
      "parameters": {
        "color": 6,
        "width": 460,
        "height": 140,
        "content": "## STEP 3 · Parse & Decide\nCode node parses LLM JSON (with fallback if malformed).\nAdds flags: needsFollowUp, isHighPriority, analysisDate.\nIF routes only when needsFollowUp == true."
      },
      "typeVersion": 1
    },
    {
      "id": "09a0c1eb-2987-4710-8515-5699a0d3b227",
      "name": "메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 150,
        "content": "## STEP 4 · Actions\n• HubSpot: create follow-up task\n• Slack: notify sales channel\n• Google Sheets: append analysis log\n\nTip: Map columns/types in the sheet to avoid mismatches."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "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": "Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
            "type": "ai_languageModel",
            "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
          }
        ]
      ]
    },
    "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4": {
      "main": [
        [
          {
            "node": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "74068c78-2ea1-4447-987a-8d40088483d4": {
      "main": [
        []
      ]
    },
    "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

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수14
카테고리2
노드 유형10
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
Meak

Meak

@meak

I help people build $5k+/month online by starting their own AI agency. Without BS.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34