Welcome to FlowZap, the App to diagram with Speed, Clarity and Control.

Flux de travail Intégration Webhook

business-operations

Flux de travail d'intégration webhook avec enregistrement d'extrémité, signature de charge utile, tentative de livraison, retry avec backoff et suivi du statut de livraison.

Code FlowZap complet

ExternalService { # External Service
  n1: circle label:"Start"
  n2: rectangle label:"Event occurs"
  n3: rectangle label:"Prepare webhook payload"
  n4: rectangle label:"Send HTTP POST request"
  n5: diamond label:"Response 2xx?"
  n6: rectangle label:"Log successful delivery"
  n7: circle label:"End"
  n1.handle(right) -> n2.handle(left)
  n2.handle(right) -> n3.handle(left)
  n3.handle(right) -> n4.handle(left)
  n4.handle(bottom) -> WebhookReceiver.n8.handle(top) [label="POST /webhook"]
  n5.handle(right) -> n6.handle(left) [label="Yes"]
  n5.handle(bottom) -> RetryQueue.n15.handle(top) [label="No"]
  n6.handle(right) -> n7.handle(left)
}

WebhookReceiver { # Webhook Receiver
  n8: rectangle label:"Validate signature header"
  n9: diamond label:"Signature valid?"
  n10: rectangle label:"Parse JSON payload"
  n11: rectangle label:"Acknowledge with 200 OK"
  n12: rectangle label:"Return 401 Unauthorized"
  n13: rectangle label:"Queue for async processing"
  n14: rectangle label:"Return 400 Bad Request"
  n8.handle(right) -> n9.handle(left)
  n9.handle(right) -> n10.handle(left) [label="Yes"]
  n9.handle(bottom) -> n12.handle(top) [label="No"]
  n10.handle(right) -> n11.handle(left)
  n11.handle(right) -> n13.handle(left)
  n12.handle(top) -> ExternalService.n5.handle(bottom) [label="401"]
  n13.handle(bottom) -> EventProcessor.n18.handle(top) [label="Process"]
  n14.handle(top) -> ExternalService.n5.handle(bottom) [label="400"]
}

RetryQueue { # Retry Queue
  n15: rectangle label:"Add to retry queue"
  n16: rectangle label:"Wait with backoff"
  n17: rectangle label:"Retry delivery"
  n15.handle(right) -> n16.handle(left)
  n16.handle(right) -> n17.handle(left)
  n17.handle(top) -> ExternalService.n4.handle(bottom) [label="Retry"]
  loop [retry up to 5 times] n15 n16 n17
}

EventProcessor { # Event Processor
  n18: rectangle label:"Deserialize event data"
  n19: rectangle label:"Route to handler"
  n20: rectangle label:"Execute business logic"
  n21: rectangle label:"Update local state"
  n18.handle(right) -> n19.handle(left)
  n19.handle(right) -> n20.handle(left)
  n20.handle(right) -> n21.handle(left)
  n21.handle(top) -> ExternalService.n7.handle(bottom) [label="Complete"]
}

Modèles associés

Workflow d’échec de paiement

business-operations

Workflow de récupération après échec de paiement avec planification intelligente des nouvelles tentatives, séquence d’e-mails de relance, invites de mise à jour du moyen de paiement et prévention de la résiliation involontaire.

Workflow de suppression de compte

business-operations

Workflow de suppression de compte avec saisie du motif d’annulation, proposition de rétention, résiliation de l’abonnement, nettoyage des données et email de confirmation.

Workflow de rotation de clé API

business-operations

Workflow de rotation de clé API avec génération d’une nouvelle clé, période de transition à double clé, notification aux clients, dépréciation de l’ancienne clé et journalisation pour audit.

Processus de contestation de facturation

business-operations

Processus de contestation de facturation avec enregistrement de la contestation, examen des transactions, analyse de fraude, décision de résolution et gestion de la réponse au rétrofacturation (chargeback).

Workflow d’analyse de cohortes

business-operations

Workflow d’analyse de cohortes avec segmentation des utilisateurs par date d’inscription, calcul de courbes de rétention, projection de LTV et identification de motifs comportementaux.