Skip to main content

Introduction

Exécutez un script ou un flow Windmill chaque fois qu’un événement Dodo Payments se produit. Utilisez-le pour mettre à jour une base de données, synchroniser des enregistrements avec un autre système, envoyer des notifications ou exécuter votre propre logique métier dans le code.
Le connecteur Windmill envoie chaque événement à l’URL webhook d’un script ou d’un flow Windmill. Vous devez disposer d’un script ou d’un flow déployé, d’un token Windmill capable de l’exécuter et d’un accès à Developer → Webhooks dans le dashboard Dodo Payments.

Prise en main

1

Open the Webhook Section

Dans le tableau de bord Dodo Payments, accédez à Developer → Webhooks et cliquez sur Add endpoint.
Add endpoint dialog with Windmill selected in the Integration dropdown and the How to connect Windmill steps
2

Select Windmill

Dans Integration, sélectionnez Windmill. Le dashboard charge le code de transformation Windmill et affiche les étapes de configuration dans le panneau How to connect Windmill.
3

Copy the Windmill Webhook URL

Dans Windmill, ouvrez le script ou le flow qui doit gérer les événements. Dans son onglet Triggers, ouvrez Webhooks et copiez l’URL webhook asynchrone (UUID/Async). Créez ensuite un token spécifique au webhook pour le script ou le flow, puis copiez-le. Ce token ne peut exécuter que ce script ou ce flow.
4

Paste Webhook URL

Collez l’URL webhook Windmill dans Endpoint URL. L’URL doit utiliser HTTPS ; une instance Windmill auto-hébergée a donc besoin d’une adresse HTTPS publique. Le connecteur Windmill ne comporte pas de champ de clé API ; vous ajoutez donc le token après avoir créé l’endpoint.
5

Select Events

Subscribed events répertorie les événements pris en charge par le connecteur Windmill. Conservez uniquement les événements gérés par votre script ou votre flow.
6

Configure Transformation

Dans Transformation code, modifiez le handler afin que les clés de premier niveau du payload correspondent aux entrées de votre script ou de votre flow. Commencez par les exemples.
7

Test & Create

Dans Test this code, sélectionnez un type d’événement et cliquez sur Simulate pour prévisualiser le payload. Cliquez ensuite sur Create endpoint.
8

Add the Windmill Token

Juste après avoir créé l’endpoint, ouvrez son onglet Advanced. Dans Custom headers, cliquez sur Add header. Saisissez Authorization comme nom, puis Bearer, un espace et votre token comme valeur. Cliquez ensuite sur Save. Tant que vous n’avez pas enregistré l’en-tête, Windmill rejette les livraisons et Dodo Payments les retente selon le calendrier des tentatives.Windmill accepte également le token dans un paramètre de requête token à la fin de l’URL. Windmill recommande l’en-tête, car toute personne pouvant voir une URL contenant un token peut utiliser ce token.
9

Done

Les événements abonnés déclenchent désormais les runs de votre script ou de votre flow. Pour envoyer un événement de test, ouvrez l’onglet Testing de l’endpoint, sélectionnez un type d’événement et cliquez sur Send example. Dans Windmill, le run apparaît sur la page Runs avec le trigger Webhook.

Exemples de code de transformation

Chaque handler remplace webhook.payload par un objet plat et conserve webhook.url, votre URL webhook Windmill. Windmill transmet chaque clé de premier niveau à l’entrée du script ou du flow portant le même nom. Ainsi, un script correspondant au premier exemple déclare des entrées telles que event_type, payment_id et amount. Les montants Dodo Payments sont exprimés dans la plus petite unité monétaire ; les exemples les divisent donc par 100 et envoient le résultat sous forme de chaîne, comme "25.00". Pour les devises sans décimales, telles que JPY et KRW, utilisez le montant tel quel.

Payload de workflow de base

Envoyez les détails d’un paiement réussi :
basic_workflow.js

Handler de workflow d’abonnement

Envoyez un événement subscription_started ou subscription_cancelled lorsqu’un abonnement devient actif ou est annulé :
subscription_workflow.js

Handler de workflow de litige

Envoyez chaque événement de litige, avec urgent défini sur true lorsqu’un litige est ouvert :
dispute_workflow.js

Cas d’utilisation courants de Windmill

  • Mettre à jour les fiches clients dans PostgreSQL ou MySQL
  • Enregistrer les événements de paiement dans un data warehouse
  • Synchroniser les données avec des systèmes externes
  • Mettre à jour les niveaux de stock
  • Suivre les métriques analytiques
  • Calculer les métriques de revenus
  • Traiter les remboursements et les ajustements
  • Gérer les changements du cycle de vie des abonnements
  • Générer des rapports et des exports
  • Valider les données de paiement
  • Envoyer des données aux plateformes analytiques
  • Mettre à jour les systèmes CRM
  • Démarrer des campagnes e-mail
  • Créer des événements de calendrier
  • Envoyer des notifications SMS

Conseils

  • Nommez les clés du payload d’après les entrées de votre script ou de votre flow, car Windmill associe chaque clé de premier niveau à l’entrée portant le même nom.
  • Utilisez les mêmes noms de champs pour tous les événements afin qu’un seul script puisse gérer plusieurs types d’événements.
  • Incluez le type d’événement et timestamp. Les événements peuvent arriver dans le désordre, et timestamp permet à votre script de les ordonner.
  • Utilisez l’URL webhook asynchrone. L’URL synchrone attend la fin du run ; un run qui dépasse le délai d’expiration de la livraison est considéré comme une livraison ayant échoué, que Dodo Payments retente.
  • Faites en sorte que votre script puisse être exécuté deux fois pour le même événement sans effet indésirable, car les tentatives peuvent livrer un événement plusieurs fois.
  • Pour ignorer un événement dans le code, définissez webhook.cancel = true avant de retourner le webhook. Les logs enregistrent une livraison ignorée comme réussie.
  • Utilisez les gestionnaires d’erreurs de Windmill pour être averti lorsqu’un run échoue.

Dépannage

  • Vérifiez que Endpoint URL est l’URL webhook de votre script ou de votre flow et que l’endpoint est activé.
  • Vérifiez que l’en-tête Authorization contient Bearer ainsi qu’un token valide. Un token spécifique au webhook n’exécute que son propre script ou flow.
  • Vérifiez que le script ou le flow est déployé. Le webhook exécute la dernière version déployée, et non un brouillon.
  • Ouvrez l’onglet Logs dans Developer → Webhooks pour voir la réponse de Windmill à chaque livraison.
  • Vérifiez que les clés de premier niveau du payload correspondent aux entrées du script ou du flow par leur nom.
  • Vérifiez que chaque valeur correspond au type de son entrée. Les exemples envoient les montants sous forme de chaînes.
  • Vérifiez le run sur la page Runs de Windmill, filtrée par le trigger Webhook. L’URL asynchrone répond dès que Windmill met le run en file d’attente ; les logs Dodo Payments indiquent donc une livraison réussie même lorsque le run échoue.
  • Exécutez le script ou le flow dans Windmill avec un payload provenant de Simulate.
Dernière modification le 26 septembre 2026