Aller au contenu principal

Gestion d'une demande de retour produit

Ce workflow traite une demande de retour : il la valide selon la politique (30 jours), génère le bon de retour auprès du transporteur et informe les équipes internes chargées de la relation client.

Chargement du diagramme…

Le besoin​

Chaque demande de retour doit être validée selon la politique de retour (30 jours). Si elle est acceptée, un bon de retour doit être généré auprès du transporteur ; sinon, le refus doit être notifié. Dans tous les cas, les équipes internes chargées de la relation client (service clients, équipe technique) doivent être informées — le flux n'adresse jamais le client final.

Ce que fait le flux​

  1. Retour demandé — le déclencheur capture l'événement return.requested. La référence de commande, le motif et le client arrivent dans data.
  2. Retour accepté ? — la condition vérifie que le délai de 30 jours (daysSinceDelivery) est respecté.
  3. Créer le bon de retour — si accepté, le nœud Requête HTTP appelle l'API du transporteur pour générer le bon de retour.
  4. Transmettre l'étiquette au service clients — le nœud Envoi e-mail adresse l'étiquette au service clients (équipe interne), reprise depuis la réponse de l'API via {{ context.lastResponse.data.labelUrl }}.
  5. Notifier le refus au service clients — si le délai est dépassé, un e-mail informe le service clients, qui relaie le refus au client.
  6. Gérer l'échec transporteur — en cas d'erreur du nœud Requête HTTP, le nœud On Error prend le relais puis Alerter l'équipe technique envoie un e-mail aux équipes internes.

Ce dont vous avez besoin​

Construction​

Copiez la définition du workflow et collez-la dans l'éditeur (le nœud Déclencheur est recréé automatiquement, il n'est pas dans le snippet) :

[
{
"id": "cond-106",
"name": "Retour accepté ?",
"config": {
"type": "CONDITION",
"conditionCode": "return data.daysSinceDelivery <= 30;",
"conditions": [
{
"value": true,
"next": "http-106"
},
{
"value": false,
"next": "refus-106"
}
]
},
"parents": [
"trigger"
],
"position": {
"x": 0,
"y": 200
}
},
{
"id": "http-106",
"name": "Créer le bon de retour",
"config": {
"type": "HTTP_REQUEST",
"method": "POST",
"url": "https://api.transporteur.fr/v1/labels",
"bodyMode": "RAW",
"body": "{\"order\": \"{{ data.orderRef }}\", \"reason\": \"{{ data.reason }}\"}"
},
"parents": [
"cond-106"
],
"position": {
"x": 0,
"y": 400
},
"next": "label-106"
},
{
"id": "label-106",
"name": "Transmettre l'étiquette au service clients",
"config": {
"type": "SEND_EMAIL",
"to": [
"service-clients@boutique-france.fr"
],
"subject": "Étiquette de retour : {{ data.orderRef }}",
"content": "Étiquette disponible pour le client {{ data.customerEmail }} : {{ context.lastResponse.data.labelUrl }}",
"sendAsHtml": true
},
"parents": [
"http-106"
],
"position": {
"x": 0,
"y": 600
}
},
{
"id": "refus-106",
"name": "Notifier le refus au service clients",
"config": {
"type": "SEND_EMAIL",
"to": [
"service-clients@boutique-france.fr"
],
"subject": "Retour refusé : {{ data.orderRef }}",
"content": "Le retour de la commande {{ data.orderRef }} est refusé (délai dépassé), à communiquer au client {{ data.customerEmail }}.",
"sendAsHtml": true
},
"parents": [
"cond-106"
],
"position": {
"x": 800,
"y": 400
}
},
{
"id": "error-106",
"name": "Gérer l'échec transporteur",
"config": {
"type": "ON_ERROR",
"enabledEnvironments": []
},
"parents": [],
"position": {
"x": -800,
"y": 0
},
"next": "error-email-106"
},
{
"id": "error-email-106",
"name": "Alerter l'équipe technique",
"config": {
"type": "SEND_EMAIL",
"to": [
"ops@boutique-france.fr"
],
"subject": "Échec transporteur : {{ data.orderRef }}",
"content": "La création du bon de retour {{ data.orderRef }} a échoué auprès du transporteur.",
"sendAsHtml": true
},
"parents": [
"error-106"
],
"position": {
"x": -800,
"y": 200
}
}
]

Vérifier que ça marche​

L'URL de l'étiquette est reprise depuis la sortie du nœud HTTP via {{ context.lastResponse… }} ; vérifiez le chemin exact de la réponse avant de référencer le champ. Déployez le flux, déclenchez une exécution et consultez les traces pour vérifier la génération du bon de retour auprès du transporteur et les notifications aux équipes internes.

Variantes​

  • Politique de retour : la fenêtre de 30 jours est codée dans la condition ; déplacez-la dans un dictionnaire pour pouvoir la modifier sans toucher au flux.
  • E-mails internes : les nœuds Envoi e-mail ciblent le service clients et l'équipe technique — le flux n'adresse jamais le client final ; la communication client reste à la charge de l'équipe.

Voir la référence


Voir aussi : Exemples et intégrations