Zum Hauptinhalt springen

Einführung

Führen Sie benutzerdefinierte Workflows und Skripte in Windmühle aus, wenn Zahlungsevents auftreten. Führen Sie Datenbankoperationen durch, senden Sie Benachrichtigungen, verarbeiten Sie Daten und automatisieren Sie komplexe Geschäftslogik mit der leistungsstarken Workflow-Engine von Windmühle.
Diese Integration erfordert Ihre Windmill-Webhook-URL aus Ihrer Workflow-Konfiguration.

Erste Schritte

1

Open the Webhook Section

Navigieren Sie in Ihrem Dodo Payments Dashboard zu Webhooks → + Endpunkt hinzufügen und klappen Sie das Dropdown für Integrationen auf.
Endpunkt hinzufügen und Integrationen-Dropdown
2

Select Windmill

Wählen Sie die Windmill-Integrationskarte aus.
3

Create Windmill Workflow

Erstellen Sie in Windmill einen neuen Workflow und kopieren Sie die Webhook-URL aus der Trigger-Konfiguration.
4

Paste Webhook URL

Fügen Sie die Windmill-Webhook-URL in die Endpunktkonfiguration ein.
5

Configure Transformation

Bearbeiten Sie den Transformation-Code, um Ereignisse für Ihren Windmill-Workflow zu formatieren.
6

Test & Create

Testen Sie mit Beispiel-Payloads und klicken Sie auf Erstellen, um die Integration zu aktivieren.
7

Done!

🎉 Zahlungsevents lösen nun automatisch Ihre Windmill-Workflows aus.

Transformationscode-Beispiele

Basis-Workflow-Payload

basic_workflow.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      payment_id: p.payment_id,
      amount: (p.total_amount / 100).toFixed(2),
      currency: p.currency || "USD",
      customer_email: p.customer.email,
      customer_name: p.customer.name,
      payment_method: p.payment_method || "unknown",
      timestamp: webhook.payload.timestamp,
      metadata: {
        business_id: p.business_id,
        product_id: p.product_id
      }
    };
  }
  return webhook;
}

Abonnement-Workflow-Handler

subscription_workflow.js
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.payload = {
        event_type: "subscription_started",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        customer_name: s.customer.name,
        product_id: s.product_id,
        amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
        frequency: s.payment_frequency_interval,
        next_billing: s.next_billing_date,
        customer_id: s.customer.customer_id,
        timestamp: webhook.payload.timestamp
      };
      break;
    case "subscription.cancelled":
      webhook.payload = {
        event_type: "subscription_cancelled",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        cancelled_at: s.cancelled_at,
        cancel_at_next_billing: s.cancel_at_next_billing_date,
        customer_id: s.customer.customer_id,
        timestamp: webhook.payload.timestamp
      };
      break;
  }
  return webhook;
}

Streitfall-Workflow-Handler

dispute_workflow.js
function handler(webhook) {
  if (webhook.eventType.startsWith("dispute.")) {
    const d = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      dispute_id: d.dispute_id,
      payment_id: d.payment_id,
      amount: (d.amount / 100).toFixed(2),
      status: d.dispute_status,
      stage: d.dispute_stage,
      remarks: d.remarks || "",
      urgent: webhook.eventType === "dispute.opened",
      business_id: d.business_id,
      timestamp: webhook.payload.timestamp
    };
  }
  return webhook;
}

Häufige Anwendungsfälle für Windmühle

  • Aktualisieren Sie Kundendatensätze in PostgreSQL/MySQL
  • Protokollieren Sie Zahlungsevents in Data Warehouses
  • Synchronisieren Sie Daten mit externen Systemen
  • Aktualisieren Sie Lagerbestände
  • Verfolgen Sie Analysekennzahlen
  • Berechnen Sie Umsatzkennzahlen
  • Bearbeiten Sie Rückerstattungen und Anpassungen
  • Verwalten Sie den Lebenszyklus von Abonnements
  • Erstellen Sie Berichte und Exporte
  • Validieren Sie Zahlungsdaten
  • Senden Sie Daten an Analyseplattformen
  • Aktualisieren Sie CRM-Systeme
  • Lösen Sie E-Mail-Kampagnen aus
  • Erstellen Sie Kalenderereignisse
  • Senden Sie SMS-Benachrichtigungen

Tipps

  • Strukturieren Sie Payload-Daten für eine einfache Workflow-Verarbeitung
  • Fügen Sie alle relevanten Metadaten für die Geschäftslogik hinzu
  • Verwenden Sie konsistente Feldbenennungen über Ereignisse hinweg
  • Fügen Sie Zeitstempel für die Workflow-Zeitplanung hinzu
  • Nutzen Sie die integrierte Fehlerbehandlung von Windmühle

Fehlersuche

  • Überprüfen Sie, ob die Webhook-URL korrekt und aktiv ist
  • Prüfen Sie, ob der Windmill-Workflow veröffentlicht und aktiv ist
  • Stellen Sie sicher, dass die Payload-Struktur den Workflow-Erwartungen entspricht
  • Überprüfen Sie Windmill-Ausführungsprotokolle auf Fehler
  • Prüfen Sie die Abbildung der Workflow-Eingabeparameter
  • Vergewissern Sie sich, dass die Datentypen den erwarteten Formaten entsprechen
  • Testen Sie den Workflow mit Beispieldaten
  • Überprüfen Sie die Windmill-Skriptausführungsprotokolle