मुख्य सामग्री पर जाएं

परिचय

भुगतान घटनाओं के होने पर Windmill में कस्टम वर्कफ़्लो और स्क्रिप्ट निष्पादित करें। डेटाबेस संचालन करें, सूचनाएँ भेजें, डेटा संसाधित करें, और Windmill के शक्तिशाली वर्कफ़्लो इंजन के साथ जटिल व्यावसायिक तर्कों को स्वचालित करें।
यह एकीकरण आपके workflow कॉन्फ़िगरेशन से आपका Windmill webhook URL मांगता है।

प्रारंभ करना

1

Open the Webhook Section

अपने Dodo Payments डैशबोर्ड में, Webhooks → + Add Endpoint पर जाएँ और integrations ड्रॉपडाउन को विस्तारित करें।
एंडपॉइंट जोड़ें और integrations ड्रॉपडाउन
2

Select Windmill

Windmill एकीकरण कार्ड चुनें।
3

Create Windmill Workflow

Windmill में, एक नया workflow बनाएं और trigger configuration से webhook URL कॉपी करें।
4

Paste Webhook URL

Windmill webhook URL को endpoint configuration में पेस्ट करें।
5

Configure Transformation

Transformation code को संपादित करें ताकि आपके Windmill workflow के लिए इवेंट्स सही ढंग से फॉर्मेट हों।
6

Test & Create

नमूना payloads के साथ परीक्षण करें और एकीकरण सक्रिय करने के लिए Create पर क्लिक करें।
7

Done!

🎉 भुगतान घटनाएँ अब स्वचालित रूप से आपके Windmill workflows को ट्रिगर करेंगी।

रूपांतरण कोड उदाहरण

बुनियादी वर्कफ़्लो पेलोड

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;
}

सदस्यता वर्कफ़्लो हैंडलर

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;
}

विवाद वर्कफ़्लो हैंडलर

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;
}

सामान्य Windmill उपयोग के मामले

  • PostgreSQL/MySQL में ग्राहक रिकॉर्ड अपडेट करें
  • भुगतान घटनाओं को डेटा वेयरहाउस में लॉग करें
  • बाहरी सिस्टम्स के साथ डेटा सिंक करें
  • इन्वेंटरी स्तर अपडेट करें
  • एनालिटिक्स मेट्रिक्स को ट्रैक करें
  • राजस्व मेट्रिक्स की गणना करें
  • रिफंड और समायोजन प्रोसेस करें
  • सब्सक्रिप्शन लाइफसाइकल को हैंडल करें
  • रिपोर्ट और एक्सपोर्ट जनरेट करें
  • भुगतान डेटा को मान्य करें
  • डेटा को एनालिटिक्स प्लेटफॉर्म्स को भेजें
  • CRM सिस्टम्स को अपडेट करें
  • ईमेल अभियान ट्रिगर करें
  • कैलेंडर इवेंट्स बनाएं
  • SMS सूचनाएँ भेजें

सुझाव

  • वर्कफ़्लो प्रसंस्करण के लिए पेलोड डेटा को संरचना करें
  • व्यावसायिक तर्क के लिए सभी प्रासंगिक मेटाडेटा शामिल करें
  • घटनाओं के बीच लगातार फ़ील्ड नामकरण का उपयोग करें
  • वर्कफ़्लो समय के लिए टाइमस्टैम्प शामिल करें
  • Windmill की अंतर्निहित त्रुटि हैंडलिंग का लाभ उठाएँ

समस्या निवारण

  • सुनिश्चित करें कि webhook URL सही और सक्रिय है
  • जांचें कि Windmill workflow प्रकाशित और सक्रिय है
  • सुनिश्चित करें कि payload संरचना workflow की अपेक्षाओं से मेल खाती है
  • त्रुटियों के लिए Windmill निष्पादन लॉग की समीक्षा करें
  • workflow इनपुट पैरामीटर मैपिंग की जांच करें
  • सुनिश्चित करें कि डेटा प्रकार अपेक्षित प्रारूपों से मेल खाते हैं
  • नमूना डेटा के साथ workflow का परीक्षण करें
  • Windmill स्क्रिप्ट निष्पादन लॉग की समीक्षा करें