Alertes de litiges et suivi des dossiers
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme If, Code, Slack, ClickUp, HttpRequest. Automatisation des alertes de litiges Stripe et du suivi des cas avec Slack + ClickUp
- •Token Bot Slack ou URL Webhook
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (18)
Catégorie
{
"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": "Lors du clic sur 'Exécuter le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1328,
736
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8409e177-a881-449b-8f03-384dcfa5da2b",
"name": "📋 Aperçu du workflow",
"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️⃣ Récupérer les litiges 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": "📊 Informations de vérification des données",
"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️⃣ Valider les données des litiges",
"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": "⚠️ Logique de priorité",
"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️⃣ Déterminer le niveau de priorité",
"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": "🚨 Actions urgentes",
"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️⃣ Envoyer une alerte Slack urgente",
"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️⃣ Créer une tâche ClickUp urgente",
"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": "📊 Processus standard",
"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️⃣ Envoyer une alerte Slack standard",
"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️⃣ Créer une tâche ClickUp standard",
"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": "✅ Aucune action nécessaire",
"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️⃣ Envoyer un résumé d'état",
"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": "⚙️ Instructions de configuration",
"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": "✅ Workflow terminé",
"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": "🔧 Formater les données de litige",
"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
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Création de contenu, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
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.
Partager ce workflow