WindevExpert

Vidéo 43 • Connectivité & API

Webhooks :
Ouvrir votre SaaS

Apprenez à notifier les outils tiers (Zapier, Make, Slack) dès qu'un événement survient dans votre écosystème.

Sortir de la "Prison de Données"

Logiciel Isolé

Le client vend un article. La donnée reste dans votre base.

S'il veut envoyer un SMS de remerciement ou mettre à jour son Shopify, il doit le faire manuellement.

SaaS Connecté

Une vente est faite ? Votre serveur crie l'info à l'URL choisie par le client.

Automatisation : "Dès qu'une vente > 100€ arrive, envoie une alerte sur mon Slack".

Laboratoire : Push Événementiel

Votre Cloud
Envoi du Webhook...
Zapier / Make
URL : https://hooks.zapier.com/...
> Monitoring des événements sortants prêt...

La Résilience des Envois

Ne jamais envoyer en "Direct"

Si le serveur du client (Zapier) est en panne, votre application va ramer ou planter.

L'expert utilise la File d'Attente (Outbox) :
1. On enregistre le webhook en base.
2. Un Worker séparé tente l'envoi.
3. En cas d'échec, on réessaie plus tard (Retry logic).

Table F_Webhook_Queue
STATUS: PENDING

Implémentation du "Sender"

// 1. On prépare le paquet pour l'URL du client
clReq est une httpRequête
clReq.URL = pclMonClient.WebhookURL
clReq.Méthode = httpPost
clReq.Contenu = VariantVersJSON(stMonEvenementVente)

// 2. Envoi asynchrone (pour ne pas bloquer le Cloud)
ThreadExécute("PushWebhook", threadNormal, Procedure_Envoi, clReq)

PROCÉDURE INTERNE Procedure_Envoi(clMaReq)
    clRep est une httpRéponse = HTTPEvoie(clMaReq)
    SI clRep.CodeEtat <> 200 ALORS
        // On replanifie l'envoi dans 5 minutes
        ReplanifierEchec(clMaReq)
    FIN