परिचय
हर बार Dodo Payments event होने पर Windmill script या flow चलाएँ। इसका उपयोग database अपडेट करने, records को किसी अन्य system से sync करने, notifications भेजने या code में अपना business logic चलाने के लिए करें।Windmill connector प्रत्येक event को Windmill script या flow के webhook URL पर भेजता है। आपको deployed script या flow, उसे चला सकने वाला Windmill token और Dodo Payments dashboard में Developer → Webhooks का access चाहिए।
प्रारंभ करना
1
Open the Webhook Section
Dodo Payments dashboard में, Developer → Webhooks पर जाएँ और Add endpoint पर क्लिक करें।

2
Select Windmill
Integration में Windmill चुनें। Dashboard Windmill transformation code लोड करता है और How to connect Windmill panel में setup steps दिखाता है।
3
Copy the Windmill Webhook URL
Windmill में वह script या flow खोलें जिसे events handle करने हैं। उसके Triggers tab में Webhooks खोलें और asynchronous (UUID/Async) webhook URL copy करें। फिर script या flow के लिए webhook-specific token बनाएँ और उसे copy करें। यह token केवल उसी script या flow को चला सकता है।
4
Paste Webhook URL
Windmill webhook URL को Endpoint URL में paste करें। URL में HTTPS का उपयोग होना चाहिए, इसलिए self-hosted Windmill instance को public HTTPS address की आवश्यकता है। Windmill connector में API key field नहीं है, इसलिए endpoint बनाने के बाद token जोड़ें।
5
Select Events
Subscribed events में वे events सूचीबद्ध होते हैं जिन्हें Windmill connector support करता है। केवल वही events रखें जिन्हें आपका script या flow handle करता है।
6
Configure Transformation
Transformation code के अंतर्गत handler को edit करें, ताकि payload की top-level keys आपके script या flow के inputs से match करें। examples से शुरुआत करें।
7
Test & Create
Test this code के अंतर्गत event type चुनें और payload का preview देखने के लिए Simulate पर click करें। फिर Create endpoint पर click करें।
8
Add the Windmill Token
Endpoint बनाने के तुरंत बाद उसका Advanced tab खोलें। Custom headers के अंतर्गत Add header पर click करें। Name के रूप में
Authorization दर्ज करें और value के रूप में Bearer, एक space और अपना token दर्ज करें। फिर Save पर click करें। Header save करने तक Windmill deliveries को reject करता है और Dodo Payments उन्हें retry schedule के अनुसार retry करता है।Windmill URL के अंत में दिए गए token query parameter में भी token स्वीकार करता है। Windmill header का उपयोग करने की सलाह देता है, क्योंकि token वाला URL देखने वाला कोई भी व्यक्ति token का उपयोग कर सकता है।9
Done
अब Subscribed events आपके script या flow के runs शुरू करते हैं। Test event भेजने के लिए endpoint का Testing tab खोलें, event type चुनें और Send example पर click करें। Windmill में run Runs page पर
Webhook trigger के साथ दिखाई देता है।Transformation Code Examples
प्रत्येक handlerwebhook.payload को एक flat object से replace करता है और webhook.url, यानी आपके Windmill webhook URL को बनाए रखता है। Windmill प्रत्येक top-level key को उसी नाम वाले script या flow input में भेजता है, इसलिए पहले example के लिए script में event_type, payment_id और amount जैसे inputs घोषित किए जाते हैं। Dodo Payments amounts सबसे छोटी currency unit में होते हैं, इसलिए examples 100 से divide करके परिणाम को string के रूप में भेजते हैं, जैसे "25.00"। JPY और KRW जैसी zero-decimal currencies के लिए amount को उसी रूप में उपयोग करें।
Basic Workflow Payload
सफल payment का विवरण भेजें:basic_workflow.js
Subscription Workflow Handler
जब subscription active हो या cancelled हो, तबsubscription_started या subscription_cancelled event भेजें:
subscription_workflow.js
Dispute Workflow Handler
हर dispute event भेजें। जब dispute open हो, तबurgent को true पर set करें:
dispute_workflow.js
Common Windmill Use Cases
Database Operations
Database Operations
- PostgreSQL या MySQL में customer records अपडेट करें
- Payment events को data warehouse में log करें
- Data को external systems से sync करें
- Inventory levels अपडेट करें
- Analytics metrics track करें
Business Logic
Business Logic
- Revenue metrics calculate करें
- Refunds और adjustments process करें
- Subscription lifecycle changes handle करें
- Reports और exports generate करें
- Payment data validate करें
External Integrations
External Integrations
- Data को analytics platforms पर भेजें
- CRM systems अपडेट करें
- Email campaigns शुरू करें
- Calendar events बनाएँ
- SMS notifications भेजें
Tips
- Payload keys के नाम अपने script या flow inputs के अनुसार रखें, क्योंकि Windmill प्रत्येक top-level key को उसी नाम वाले input से map करता है।
- Events में समान field names का उपयोग करें, ताकि एक script कई event types handle कर सके।
- Event type और
timestampशामिल करें। Events out of order आ सकते हैं औरtimestampआपके script को उन्हें order करने देता है। - Asynchronous webhook URL का उपयोग करें। Synchronous URL run पूरा होने तक wait करता है और delivery timeout से अधिक समय लेने वाला run failed delivery माना जाता है, जिसे Dodo Payments retry करता है।
- अपने script को उसी event के लिए दो बार चलाए जाने पर सुरक्षित रखें, क्योंकि retries किसी event को एक से अधिक बार deliver कर सकते हैं।
- किसी event को code में skip करने के लिए webhook return करने से पहले
webhook.cancel = trueset करें। Logs skipped delivery को successful के रूप में record करते हैं। - Run fail होने पर notification पाने के लिए Windmill के error handlers का उपयोग करें।
Troubleshooting
Workflows Not Triggering
Workflows Not Triggering
- जाँचें कि Endpoint URL आपके script या flow का webhook URL है और endpoint enabled है।
- जाँचें कि
Authorizationheader मेंBearerऔर valid token मौजूद है। Webhook-specific token केवल अपने script या flow को चलाता है। - जाँचें कि script या flow deployed है। Webhook draft नहीं, बल्कि latest deployed version चलाता है।
- प्रत्येक delivery पर Windmill की response देखने के लिए Developer → Webhooks में Logs tab खोलें।
Data Processing Issues
Data Processing Issues
- जाँचें कि payload की top-level keys नाम के अनुसार script या flow inputs से match करती हैं।
- जाँचें कि प्रत्येक value उसके input type से match करती है। Examples amounts को strings के रूप में भेजते हैं।
Webhooktrigger से filtered Windmill के Runs page पर run जाँचें। Asynchronous URL Windmill के run को queue करने के तुरंत बाद response देता है, इसलिए run fail होने पर भी Dodo Payments logs successful delivery दिखाते हैं।- Simulate से प्राप्त payload के साथ Windmill में script या flow चलाएँ।