콜드 리드 종결 워크플로우
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 Code, Gmail, Slack, Filter, Hubspot 등의 노드를 사용하며. Gmail 피드백 및 Slack 알림 기반 HubSpot 콜드 리드 딜 자동 종료
- •Google 계정 및 Gmail API 인증 정보
- •Slack Bot Token 또는 Webhook URL
- •HubSpot API Key
- •대상 API의 인증 정보가 필요할 수 있음
{
"meta": {
"instanceId": "INSTANCE_ID_PLACEHOLDER",
"templateCredsSetupCompleted": false
},
"name": "Cold Deal Closure Workflow",
"tags": [],
"nodes": [
{
"id": "99a95283-6245-4d88-ae58-07aaef8ddf14",
"name": "스케줄 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-304,
-16
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.1
},
{
"id": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
"name": "HubSpot 거래 조회",
"type": "n8n-nodes-base.hubspot",
"position": [
-80,
-16
],
"parameters": {
"filters": {
"propertiesCollection": {
"propertiesValues": {
"properties": [
"dealname",
"hs_lastmodifieddate",
"notes_last_updated",
"notes_last_contacted"
],
"propertyMode": "valueOnly"
}
}
},
"resource": "deal",
"operation": "getAll",
"returnAll": true,
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2
},
{
"id": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
"name": "거래 필드 추출",
"type": "n8n-nodes-base.code",
"position": [
144,
-16
],
"parameters": {
"jsCode": "return items.map(item => {\n const props = item.json.properties || {};\n\n return {\n json: {\n dealId: item.json.dealId || '',\n dealname: props.dealname?.value || '',\n lastmodifieddate: props.hs_lastmodifieddate?.value || '',\n notes_last_updated: props.notes_last_updated?.value || '',\n notes_last_contacted: props.notes_last_contacted?.value || ''\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
"name": "콜드 리드 필터링 (21일 이상)",
"type": "n8n-nodes-base.filter",
"position": [
368,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.lastmodifieddate.toNumber() }}",
"rightValue": "={{ Date.now() - 21 * 24 * 60 * 60 * 1000 }}"
}
]
}
},
"typeVersion": 2
},
{
"id": "f3e64724-432c-4354-a115-61185fb3d23e",
"name": "거래를 '종료-실패'로 업데이트",
"type": "n8n-nodes-base.hubspot",
"position": [
592,
-16
],
"parameters": {
"dealId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.dealId }}"
},
"resource": "deal",
"operation": "update",
"updateFields": {
"stage": "closedlost"
},
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "4d51776d-1c40-435a-989f-660f4546b401",
"name": "거래 연관 데이터 조회",
"type": "n8n-nodes-base.httpRequest",
"position": [
800,
-16
],
"parameters": {
"url": "=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.dealId }}?associations=contacts",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_HUBSPOT_ACCESS_TOKEN"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2d48cf93-9066-482b-9c7d-0b317ff99406",
"name": "연락처 ID 추출",
"type": "n8n-nodes-base.code",
"position": [
1008,
-16
],
"parameters": {
"jsCode": "// Extract contact IDs from deals data\nconst dealsData = $input.all();\nconst contactIds = [];\n\ndealsData.forEach(item => {\n const deal = item.json;\n if (deal.associations && deal.associations.contacts && deal.associations.contacts.results) {\n deal.associations.contacts.results.forEach(contact => {\n contactIds.push({\n contactId: contact.id,\n dealId: deal.id,\n dealName: deal.properties.dealname\n });\n });\n }\n});\n\nreturn contactIds;"
},
"typeVersion": 2
},
{
"id": "955cad66-4b5e-45b0-9c82-78f27ed78823",
"name": "연락처 세부 정보 조회",
"type": "n8n-nodes-base.hubspot",
"position": [
1216,
-16
],
"parameters": {
"contactId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.contactId }}"
},
"operation": "get",
"authentication": "appToken",
"additionalFields": {
"propertiesCollection": {
"propertiesValues": {
"properties": [
"email",
"firstname",
"lastname",
"hs_full_name_or_email"
]
}
}
}
},
"credentials": {
"hubspotAppToken": {
"id": "YOUR_HUBSPOT_CREDENTIAL_ID",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "0ef1bd2f-8986-42eb-b09f-3e3c09ed3403",
"name": "연락처 이메일 추출",
"type": "n8n-nodes-base.code",
"position": [
1424,
-16
],
"parameters": {
"jsCode": "// Code Node (JavaScript)\n\nreturn items.map(item => {\n let email = null;\n\n // try to safely access the email field\n if (item.json?.properties?.email?.value) {\n email = item.json.properties.email.value;\n }\n\n return {\n json: {\n email\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "ea48344a-33e0-442d-9b15-24708f6376f4",
"name": "Gmail 피드백 요청 전송",
"type": "n8n-nodes-base.gmail",
"position": [
1648,
-16
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"sendTo": "=your-email@example.com",
"message": "=Hi {{ $('Get Contact Details').item.json.properties.firstname.value }},<br><br>\n\nI hope you're doing well.<br><br>\n\nThank you once again for considering [Your Company] for your project. While I understand you've decided to move in a different direction, I truly appreciate the time and effort you spent engaging with us.<br><br>\n\nWe'd Love Your Feedback<br>\nIf you're open to it, I'd be grateful for any thoughts you'd like to share about your decision—anything that could help us improve going forward.<br><br>\n\nOpen Door for the Future<br>\nShould your needs evolve in the future, I'd be happy to reconnect and support you in any way we can.<br><br>\n\nWishing you all the best with your project and continued success ahead.<br><br>\n\nWarm regards,<br><br>\n[Your Company]<br>\n",
"options": {
"appendAttribution": false
},
"subject": "=Thank You — We'd Value Your Feedback"
},
"credentials": {
"gmailOAuth2": {
"id": "YOUR_GMAIL_CREDENTIAL_ID",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "da6063b5-6c22-4312-960a-276b9a8a90dd",
"name": "Slack 알림 전송",
"type": "n8n-nodes-base.slack",
"position": [
1856,
-16
],
"webhookId": "WEBHOOK_ID_PLACEHOLDER",
"parameters": {
"text": "=Deals which are moved to Closed Lost: {{ $('Extract Contact IDs').item.json.dealId }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "general"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "YOUR_SLACK_CREDENTIAL_ID",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "00280018-e849-44a3-a90a-e4b41e3d3fb4",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-336
],
"parameters": {
"color": 4,
"width": 640,
"height": 624,
"content": "## Trigger & Deal Fetching\n\n*Schedule Trigger: Starts the workflow on a defined interval (e.g., daily, weekly).\n\nGet HubSpot Deals: Pulls all deals from HubSpot, retrieving key fields like dealname, hs_lastmodifieddate, notes_last_updated, and notes_last_contacted.\n\nExtract Deal Fields: Cleans up and restructures the deal data into a consistent format (dealId, dealname, timestamps).*"
},
"typeVersion": 1
},
{
"id": "26416831-06bb-45ef-983a-44c74160ae87",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
-336
],
"parameters": {
"color": 2,
"width": 432,
"height": 624,
"content": "## Lead Qualification (Cold Deals)\n\n*Filter Cold Leads (21+ days): Uses lastmodifieddate and compares it against Date.now() - 21 days.\n\nKeeps only deals untouched for 21+ days.\n\nUpdate Deal → Closed Lost: Automatically updates those stale deals in HubSpot, marking them as Closed Lost.*"
},
"typeVersion": 1
},
{
"id": "9bf5bb30-24d1-4f31-a07b-dd781175e066",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
-336
],
"parameters": {
"color": 6,
"width": 832,
"height": 624,
"content": "## Deal → Contact Mapping\n\n*Fetch Deal Associations: Calls HubSpot API to get contacts linked to the filtered deals.\n\nExtract Contact IDs: Parses the association response to pull out contactId, dealId, and dealName.\n\nGet Contact Details: Retrieves enriched details of each contact (e.g., email, firstname, lastname).\n\nExtract Contact Email: Simplifies the response, keeping only the email (and ensuring it's safely extracted).*"
},
"typeVersion": 1
},
{
"id": "cedf1213-f134-4ddd-a96c-764d1320193e",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
-336
],
"parameters": {
"color": 3,
"width": 384,
"height": 624,
"content": "## Follow-up & Notifications\n\n*Send Gmail Feedback Request:\n\nSends a polite follow-up email thanking the lead and asking for feedback.\n\nUses personalized fields like firstname in the message.\n\nSend Slack Notification:\n\nPosts a message to a Slack channel (e.g., #general) to alert the team of deals moved to Closed Lost.*"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "TEMPLATE_VERSION_ID",
"connections": {
"99a95283-6245-4d88-ae58-07aaef8ddf14": {
"main": [
[
{
"node": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
"type": "main",
"index": 0
}
]
]
},
"35be2b12-2b12-42ee-aa01-df7c49daf6d4": {
"main": [
[
{
"node": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
"type": "main",
"index": 0
}
]
]
},
"2d48cf93-9066-482b-9c7d-0b317ff99406": {
"main": [
[
{
"node": "955cad66-4b5e-45b0-9c82-78f27ed78823",
"type": "main",
"index": 0
}
]
]
},
"ff92028e-afa9-4ed2-b123-aa2619f612dd": {
"main": [
[
{
"node": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
"type": "main",
"index": 0
}
]
]
},
"955cad66-4b5e-45b0-9c82-78f27ed78823": {
"main": [
[
{
"node": "0ef1bd2f-8986-42eb-b09f-3e3c09ed3403",
"type": "main",
"index": 0
}
]
]
},
"0ef1bd2f-8986-42eb-b09f-3e3c09ed3403": {
"main": [
[
{
"node": "ea48344a-33e0-442d-9b15-24708f6376f4",
"type": "main",
"index": 0
}
]
]
},
"4d51776d-1c40-435a-989f-660f4546b401": {
"main": [
[
{
"node": "2d48cf93-9066-482b-9c7d-0b317ff99406",
"type": "main",
"index": 0
}
]
]
},
"f3e64724-432c-4354-a115-61185fb3d23e": {
"main": [
[
{
"node": "4d51776d-1c40-435a-989f-660f4546b401",
"type": "main",
"index": 0
}
]
]
},
"ea48344a-33e0-442d-9b15-24708f6376f4": {
"main": [
[
{
"node": "da6063b5-6c22-4312-960a-276b9a8a90dd",
"type": "main",
"index": 0
}
]
]
},
"5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce": {
"main": [
[
{
"node": "f3e64724-432c-4354-a115-61185fb3d23e",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
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.
이 워크플로우 공유