Streitfall-Alarm und Fallverfolgung

Experte

Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden If, Code, Slack, ClickUp, HttpRequest und andere Nodes verwendet. Automatisierte Stripe-Streitigkeiten-Benachrichtigungen und Fallverfolgung mit Slack + ClickUp

Voraussetzungen
  • Slack Bot Token oder Webhook URL
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in 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": "Bei Klick auf 'Workflow ausführen'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1328,
        736
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8409e177-a881-449b-8f03-384dcfa5da2b",
      "name": "📋 Workflow-Übersicht",
      "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 Streitfälle abrufen",
      "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": "📊 Datenprüfungs-Info",
      "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️⃣ Streitfalldaten validieren",
      "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": "⚠️ Priorisierungslogik",
      "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️⃣ Prioritätsstufe bestimmen",
      "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": "🚨 Dringende Maßnahmen",
      "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️⃣ Dringenden Slack-Alarm senden",
      "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️⃣ Dringende ClickUp-Aufgabe erstellen",
      "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": "📊 Standardprozess",
      "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️⃣ Standard-Slack-Alarm senden",
      "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️⃣ Standard-ClickUp-Aufgabe erstellen",
      "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": "✅ Keine Maßnahme erforderlich",
      "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️⃣ Statuszusammenfassung senden",
      "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": "⚙️ Einrichtungsanleitung",
      "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 abgeschlossen",
      "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": "🔧 Streitfalldaten formatieren",
      "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
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Content-Erstellung, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes18
Kategorie2
Node-Typen7
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Rahul Joshi

Rahul Joshi

@rahul08

Rahul 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.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34