분쟁 알림 및 사건 추적
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 If, Code, Slack, ClickUp, HttpRequest 등의 노드를 사용하며. 사용Slack + ClickUp实现Stripe争议警报및案件跟踪자동화
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "f9zTmUYtY72kArnG",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177"
},
"name": "Dispute Alert and Case track",
"tags": [
{
"id": "BpF0Qmae1NRI1U4c",
"name": "Dispute Management",
"createdAt": "2025-09-23T11:26:26.687Z",
"updatedAt": "2025-09-23T11:26:26.687Z"
},
{
"id": "dgO0TsPr0SmRbCKq",
"name": "Stripe Automation",
"createdAt": "2025-09-23T11:26:26.712Z",
"updatedAt": "2025-09-23T11:26:26.712Z"
}
],
"nodes": [
{
"id": "58fe9cc9-46d1-4f70-8d1d-cc0c0d844e26",
"name": "워크플로 실행 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1328,
736
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8409e177-a881-449b-8f03-384dcfa5da2b",
"name": "📋 워크플로 개요",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1280,
416
],
"parameters": {
"width": 280,
"height": 304,
"content": "## 🔄 WORKFLOW START\n\n**Purpose:** This workflow automatically monitors Stripe for payment disputes and creates alerts + tasks when disputes are found.\n\n**Trigger:** Manual execution (can be scheduled)\n\n**Next Step:** Fetch disputes from Stripe API"
},
"typeVersion": 1
},
{
"id": "7d8379ef-39c1-4b8f-b78b-64a488d4eae2",
"name": "1️⃣ Stripe 분쟁 조회",
"type": "n8n-nodes-base.httpRequest",
"notes": "Retrieves all current payment disputes from your Stripe account. This includes disputes that customers have filed against payments.",
"position": [
-1056,
736
],
"parameters": {
"url": "https://api.stripe.com/v1/disputes",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "stripeApi"
},
"credentials": {
"stripeApi": {
"id": "DV4tPpxjbOUkGfAx",
"name": "Stripe account"
}
},
"typeVersion": 4.2
},
{
"id": "be8f6d05-cd3f-4ea0-a658-2ee402b92a9b",
"name": "📊 데이터 확인 정보",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
944
],
"parameters": {
"width": 260,
"height": 332,
"content": "## 🔍 DATA VALIDATION\n\n**Purpose:** Checks if any disputes were found in the API response.\n\n**Logic:**\n- ✅ TRUE: Disputes exist → Process them\n- ❌ FALSE: No disputes → Send summary notification\n\n**Why Important:** Prevents errors when no disputes exist"
},
"typeVersion": 1
},
{
"id": "53483405-3ad7-4298-b3d2-5e9fb6e88e03",
"name": "2️⃣ 분쟁 데이터 검증",
"type": "n8n-nodes-base.if",
"notes": "Checks if the Stripe API returned any disputes. If no disputes exist, workflow will notify and end gracefully.",
"position": [
-800,
736
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "condition1",
"operator": {
"type": "boolean",
"operation": "equal"
},
"leftValue": "={{ $json.data && $json.data.length > 0 }}",
"rightValue": true
}
]
}
},
"typeVersion": 2
},
{
"id": "853ffdbf-ac1a-41dd-9c29-cd9ed36e4e37",
"name": "⚠️ 우선순위 로직",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
304
],
"parameters": {
"width": 280,
"height": 316,
"content": "## ⚡ PRIORITY ASSESSMENT\n\n**Purpose:** Determines if disputes need immediate attention.\n\n**High Priority Criteria:**\n- Status = 'needs_response'\n- Evidence deadline approaching\n- Large dispute amounts\n\n**Result:** Different notification types based on urgency"
},
"typeVersion": 1
},
{
"id": "ed16b61a-4131-446e-aaa9-a5dae2d93dfb",
"name": "3️⃣ 우선순위 수준 결정",
"type": "n8n-nodes-base.if",
"notes": "Analyzes dispute urgency. High priority disputes (needs_response status) get immediate alerts, others get standard notifications.",
"position": [
-368,
640
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data[0].status }}",
"rightValue": "needs_response"
}
]
}
},
"typeVersion": 2
},
{
"id": "99b8a90e-7421-4de5-aaa8-1b207c69fc33",
"name": "🚨 긴급 조치",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
304
],
"parameters": {
"width": 280,
"height": 300,
"content": "## 🚨 HIGH PRIORITY PATH\n\n**Triggers When:** \n- Dispute status = 'needs_response'\n- Immediate action required\n\n**Actions:**\n1. Send urgent Slack alert with full details\n2. Create high-priority ClickUp task\n3. Set due date to evidence deadline"
},
"typeVersion": 1
},
{
"id": "f20b396e-13d8-4762-9378-5fe27a7b6c7a",
"name": "4a️⃣ 긴급 Slack 알림 전송",
"type": "n8n-nodes-base.slack",
"notes": "Sends immediate alert to Slack with comprehensive dispute information. Formatted for high visibility and quick action.",
"position": [
-144,
624
],
"webhookId": "7de9b2a5-9e88-4e24-b903-67fae9142120",
"parameters": {
"text": "=🚨 **HIGH PRIORITY DISPUTE ALERT** 🚨\n\n*Dispute Details:*\n• **Amount:** {{ $json.formatted_amount }}\n• **Reason:** {{ $json.reason.charAt(0).toUpperCase() + $json.reason.slice(1) }}\n• **Status:** {{ $json.status.charAt(0).toUpperCase() + $json.status.slice(1) }}\n• **Priority:** {{ $json.priority }}\n• **Customer:** {{ $json.customer_info }}\n\n*Timeline:*\n• **Created:** {{ $json.created_date }}\n• **Evidence Due:** {{ $json.evidence_deadline }}\n• **Days Remaining:** {{ $json.days_until_deadline }} days\n\n*IDs for Reference:*\n• **Dispute ID:** `{{ $json.dispute_id }}`\n• **Charge ID:** `{{ $json.charge_id }}`\n• **Payment Intent:** `{{ $json.payment_intent_id }}`\n\n⚠️ Immediate action required for High Priority disputes!",
"user": {
"__rl": true,
"mode": "list",
"value": ""
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.2
},
{
"id": "37c7b6d3-9b83-4c89-a611-eb988d8f7523",
"name": "5a️⃣ 긴급 ClickUp 작업 생성",
"type": "n8n-nodes-base.clickUp",
"notes": "Creates high-priority task in ClickUp with detailed action plan and evidence deadline as due date.",
"position": [
96,
624
],
"parameters": {
"list": "901611225384",
"name": "=🚨 URGENT: Dispute {{ $json.dispute_id }} - {{ $json.formatted_amount }}",
"team": "90161261705",
"space": "90165174252",
"folderless": true,
"additionalFields": {
"status": "Open",
"dueDate": "={{ $json.evidence_deadline }}",
"priority": "1"
}
},
"credentials": {
"clickUpApi": {
"id": "mcOAWijv7qCSnkNx",
"name": "ClickUp account-test anuj"
}
},
"typeVersion": 1
},
{
"id": "9144129c-51ac-4fc7-bcfb-63c7076a5dfb",
"name": "📊 표준 프로세스",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
1040
],
"parameters": {
"width": 280,
"height": 316,
"content": "## 📋 REGULAR PRIORITY PATH\n\n**Triggers When:** \n- Standard dispute notifications\n- Non-urgent status\n\n**Actions:**\n1. Send standard Slack notification\n2. Create normal-priority ClickUp task\n3. Track for regular follow-up"
},
"typeVersion": 1
},
{
"id": "874519fe-db61-42c9-894d-ae03fb65d1a0",
"name": "4b️⃣ 표준 Slack 알림 전송",
"type": "n8n-nodes-base.slack",
"notes": "Sends standard dispute notification to Slack for non-urgent cases. Contains essential information for tracking.",
"position": [
-176,
848
],
"webhookId": "cb14a1ec-1847-4131-b60e-195bc6e9b789",
"parameters": {
"text": "=📋 **New Dispute Notification**\n\n*Details:*\n• **Amount:** {{ $json.formatted_amount }}\n• **Reason:** {{ $json.reason.charAt(0).toUpperCase() + $json.reason.slice(1) }}\n• **Priority:** {{ $json.priority }}\n• **Evidence Due:** {{ $json.evidence_deadline }} ({{ $json.days_until_deadline }} days)\n• **Customer:** {{ $json.customer_info }}\n\n*Reference:* `{{ $json.dispute_id }}`",
"user": {
"__rl": true,
"mode": "list",
"value": "U09D7N46YLV",
"cachedResultName": "herevivekpatidar"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.2
},
{
"id": "71e0651d-577e-4c10-a685-d0ba87fc27a0",
"name": "5b️⃣ 표준 ClickUp 작업 생성",
"type": "n8n-nodes-base.clickUp",
"notes": "Creates standard priority task in ClickUp with appropriate priority level and comprehensive details.",
"position": [
112,
848
],
"parameters": {
"list": "901611225384",
"name": "=Dispute: {{ $json.dispute_id }} - {{ $json.formatted_amount }}",
"team": "90161261705",
"space": "90165174252",
"folderless": true,
"additionalFields": {
"status": "To Do",
"dueDate": "={{ $json.evidence_deadline }}",
"priority": "={{ $json.priority === 'High' ? '1' : ($json.priority === 'Medium' ? '2' : '3') }}"
}
},
"credentials": {
"clickUpApi": {
"id": "mcOAWijv7qCSnkNx",
"name": "ClickUp account-test anuj"
}
},
"typeVersion": 1
},
{
"id": "99c2b53a-5770-43d7-af23-c11e33c9a1ca",
"name": "✅ 조치 불필요",
"type": "n8n-nodes-base.stickyNote",
"position": [
-544,
976
],
"parameters": {
"width": 264,
"height": 348,
"content": "## ℹ️ NO DISPUTES FOUND\n\n**Purpose:** Handles the case when no disputes are returned from Stripe.\n\n**Action:** \n- Sends informational message\n- Confirms workflow ran successfully\n- Provides timestamp for logging\n\n**Why Useful:** Confirms monitoring is working"
},
"typeVersion": 1
},
{
"id": "d2afaf00-ef9a-4425-82b0-dc57f34f4424",
"name": "6️⃣ 상태 요약 전송",
"type": "n8n-nodes-base.slack",
"notes": "Sends confirmation message when no disputes need processing. Provides audit trail of workflow execution.",
"position": [
-496,
800
],
"webhookId": "10571d90-875c-4e22-ae06-6e120e723efd",
"parameters": {
"text": "=ℹ️ **Dispute Monitoring Summary**\n\n• **Total disputes found:** {{ $json.data.length }}\n• **Time:** {{ new Date().toLocaleString() }}\n• **Status:** No new disputes to process\n\nAll current disputes have been previously handled.\n\n✅ Monitoring system is working correctly.",
"user": {
"__rl": true,
"mode": "list",
"value": "U09D7N46YLV",
"cachedResultName": "herevivekpatidar"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "rNqvWj9TfChPVRYY",
"name": "Slack account vivek"
}
},
"typeVersion": 2.2
},
{
"id": "b1126924-f2a8-491a-b42a-b17c66a4ef96",
"name": "⚙️ 설정 안내",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1712,
592
],
"parameters": {
"width": 280,
"height": 384,
"content": "## 🚀 AUTOMATION SETUP\n\n**How to Use:**\n1. Set up Stripe API credentials\n2. Configure Slack workspace & channels \n3. Connect ClickUp workspace\n4. Test with manual trigger\n5. Set up schedule (recommended: every 4 hours)\n\n**Requirements:**\n- Stripe API access\n- Slack bot permissions\n- ClickUp API token"
},
"typeVersion": 1
},
{
"id": "3264e793-2963-4a6d-aaa7-b3401bde76e5",
"name": "✅ 워크플로 완료",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
624
],
"parameters": {
"width": 280,
"height": 368,
"content": "## 🔄 WORKFLOW COMPLETION\n\n**What Happens:**\n- Disputes are processed and tracked\n- Team is notified via Slack\n- Tasks created in ClickUp\n- Evidence deadlines set\n\n**Next Steps:**\n1. Review Slack notifications\n2. Check ClickUp tasks\n3. Respond to disputes in Stripe\n4. Monitor deadlines"
},
"typeVersion": 1
},
{
"id": "cbf7a6c5-4829-421b-89a1-dfbe1f102c85",
"name": "🔧 분쟁 데이터 형식 지정",
"type": "n8n-nodes-base.code",
"notes": "Transforms raw Stripe data into user-friendly format. Calculates priority, formats amounts, and prepares data for notifications.",
"position": [
-576,
656
],
"parameters": {
"jsCode": "// Transform raw Stripe dispute data into formatted output for notifications\nconst items = $input.all();\n\nreturn items.map(item => {\n const dispute = item.json.data[0]; // Get first dispute from array\n \n // Format amount with currency\n const amount = dispute.amount / 100; // Convert from cents\n const currency = dispute.currency.toUpperCase();\n const formatted_amount = `${currency} ${amount.toFixed(2)}`;\n \n // Calculate days until evidence deadline\n const evidenceDate = new Date(dispute.evidence_details.due_by * 1000);\n const now = new Date();\n const days_until_deadline = Math.ceil((evidenceDate - now) / (1000 * 60 * 60 * 24));\n \n // Determine priority based on days remaining and amount\n let priority = 'Low';\n if (days_until_deadline <= 3 || amount >= 500) {\n priority = 'High';\n } else if (days_until_deadline <= 7 || amount >= 100) {\n priority = 'Medium';\n }\n \n // Get customer information\n const customer_info = dispute.charge?.billing_details?.email || \n dispute.charge?.customer || \n 'Unknown customer';\n \n return {\n json: {\n ...dispute,\n formatted_amount,\n priority,\n days_until_deadline,\n evidence_deadline: evidenceDate.toLocaleDateString(),\n created_date: new Date(dispute.created * 1000).toLocaleDateString(),\n customer_info,\n dispute_id: dispute.id,\n charge_id: dispute.charge?.id || 'N/A',\n payment_intent_id: dispute.payment_intent || 'N/A'\n }\n };\n});"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "31c94be9-7bf0-4cbb-8684-a5354a504073",
"connections": {
"cbf7a6c5-4829-421b-89a1-dfbe1f102c85": {
"main": [
[
{
"node": "ed16b61a-4131-446e-aaa9-a5dae2d93dfb",
"type": "main",
"index": 0
}
]
]
},
"7d8379ef-39c1-4b8f-b78b-64a488d4eae2": {
"main": [
[
{
"node": "53483405-3ad7-4298-b3d2-5e9fb6e88e03",
"type": "main",
"index": 0
}
]
]
},
"53483405-3ad7-4298-b3d2-5e9fb6e88e03": {
"main": [
[
{
"node": "cbf7a6c5-4829-421b-89a1-dfbe1f102c85",
"type": "main",
"index": 0
}
],
[
{
"node": "d2afaf00-ef9a-4425-82b0-dc57f34f4424",
"type": "main",
"index": 0
}
]
]
},
"ed16b61a-4131-446e-aaa9-a5dae2d93dfb": {
"main": [
[
{
"node": "f20b396e-13d8-4762-9378-5fe27a7b6c7a",
"type": "main",
"index": 0
}
],
[
{
"node": "874519fe-db61-42c9-894d-ae03fb65d1a0",
"type": "main",
"index": 0
}
]
]
},
"f20b396e-13d8-4762-9378-5fe27a7b6c7a": {
"main": [
[
{
"node": "37c7b6d3-9b83-4c89-a611-eb988d8f7523",
"type": "main",
"index": 0
}
]
]
},
"874519fe-db61-42c9-894d-ae03fb65d1a0": {
"main": [
[
{
"node": "71e0651d-577e-4c10-a685-d0ba87fc27a0",
"type": "main",
"index": 0
}
]
]
},
"58fe9cc9-46d1-4f70-8d1d-cc0c0d844e26": {
"main": [
[
{
"node": "7d8379ef-39c1-4b8f-b78b-64a488d4eae2",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
면접 품질 감사
GPT-4o-mini 및 Google 시트를 통해 Slack으로 면접 피드백 검토 및 보고서 생성
If
Code
Slack
+
If
Code
Slack
23 노드Rahul Joshi
콘텐츠 제작
보류 중인 결제 자동화 - ClickUp 통합
Google Sheets, ClickUp, Gmail 및 Slack을 사용한 결제 추적 자동화
If
Gmail
Slack
+
If
Gmail
Slack
12 노드Rahul Joshi
콘텐츠 제작
첨부 파일 포함 자동화 Slack에서 Jira 이슈 생성
첨부 파일이 포함된 자동화된 Slack에서 Jira 이슈 생성
If
Code
Jira
+
If
Code
Jira
19 노드Rahul Joshi
콘텐츠 제작
고객 입사 도움 요청 (Typeform → Gmail 및 Sheets)
고객 입사 도움 요청 (Typeform에서 Gmail과 Sheets로)
If
Code
Gmail
+
If
Code
Gmail
28 노드Rahul Joshi
콘텐츠 제작
거래 단계에서 ClickUp 자동화
거래 단계 추적 자동화: HighLevel CRM, ClickUp, Slack
If
Slack
Click Up
+
If
Slack
Click Up
12 노드Rahul Joshi
콘텐츠 제작
GoHighLevel 파이프라인 속도 추적기 및 자동화 정체 거래 알림
GoHighLevel, Gmail 및 Slack을 사용하여 파이프라인 속도 분석 및 정체된 거래 알림
If
Code
Gmail
+
If
Code
Gmail
25 노드Rahul Joshi
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수18
카테고리2
노드 유형7
저자
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유