La question cache une inquiétude
« Où en est ma commande » n’est presque jamais une demande de précision logistique. C’est une vérification : la commande existe-t-elle encore, quelqu’un s’en occupe-t-il, ai-je été oublié.
Cette inquiétude naît du silence, et elle croît avec lui. Elle produit trois effets mesurables.
Des demandes entrantes qui coûtent chacune une recherche dans deux ou trois systèmes, pour une réponse sans valeur ajoutée.
Des appels de relance de plus en plus tendus quand la première demande n’a pas reçu de réponse rapide.
Une perception dégradée, indépendante de la qualité réelle. Une commande livrée à l’heure sans aucune information laisse un souvenir plus mauvais qu’une commande livrée avec deux jours de retard annoncés à l’avance. C’est contre-intuitif et c’est très robuste.
Ce qu’on automatise
L’état réel. Consolidation depuis la gestion commerciale, la production, le transporteur, l’outil de suivi de chantier — une seule vérité, plutôt que quatre partielles.
Les messages de jalon. Aux étapes qui signifient quelque chose pour le client, pas à chaque changement de statut interne.
La détection d’écart. Étape anormalement longue au regard de vos durées habituelles.
L’annonce de retard, avec un motif et une nouvelle estimation, envoyée avant l’échéance initiale.
La page de suivi, accessible par lien signé, sans compte à créer.
La réponse aux demandes d’avancement qui arrivent malgré tout, à partir de la même source.
Les signaux internes. Ce qui bloque, combien de dossiers sont concernés, quelle étape s’allonge — l’information qui permet de corriger la cause plutôt que d’annoncer les conséquences.
Comment ça marche techniquement — pour qui veut le détail
L’état consolidé. Une table d’événements plutôt qu’un champ de statut : chaque changement est une ligne horodatée avec sa source. L’état courant est dérivé du dernier événement. Cette approche donne gratuitement l’historique complet, les durées par étape, et la possibilité de reconstituer ce qu’on savait à une date passée — impossible avec un simple champ écrasé à chaque mise à jour.
Les sources. Webhooks quand ils existent ; interrogation incrémentale par curseur updated_after sinon ; API des transporteurs pour le suivi d’expédition ; remontées terrain pour les métiers de chantier. Chaque source écrit des événements bruts, et la traduction en étapes clientes se fait dans une couche séparée — ce découpage permet de changer un transporteur sans toucher à la logique d’information.
La traduction interne vers client. Vos statuts internes sont nombreux et techniques ; les étapes clientes sont peu nombreuses et compréhensibles. Une table de correspondance explicite relie les deux, avec un indicateur « visible client » par statut. C’est ce qui évite d’envoyer « passage en statut PRP-03 » à quelqu’un qui attend une cuisine.
L’anti-bavardage. Trois garde-fous. Un délai minimal entre deux messages au même client. Un regroupement des changements rapprochés en un seul message. Et une règle d’émission liée au changement d’étape cliente, pas de statut interne. Sans ces règles, une commande qui traverse huit statuts en deux heures produit huit messages et un désabonnement.
La détection d’écart. Pour chaque étape, on calcule sur l’historique la médiane et le neuvième décile de durée, par famille de produit ou de prestation. Un dossier qui dépasse le neuvième décile est signalé. La médiane et les quantiles résistent bien mieux aux valeurs extrêmes qu’une moyenne, qui serait tirée par quelques dossiers pathologiques et ne signalerait plus rien.
La page de suivi. Lien signé par jeton HMAC avec expiration, sans compte à créer : un identifiant séquentiel dans l’URL laisserait n’importe qui parcourir les commandes des autres, ce qui est une fuite de données personnelles. La page affiche l’état, les jalons franchis et la prochaine étape, et rien d’autre — pas de marge, pas de notes internes, pas de coordonnées de fournisseur.
L’idempotence des notifications. Une clé (dossier, étape, canal) avec contrainte d’unicité empêche l’envoi en double après un réessai ou un redémarrage. Recevoir deux fois « votre commande est expédiée » donne l’impression d’un système détraqué et déclenche un appel.
Les canaux. Courriel par défaut. SMS pour les jalons courts et actionnables — livraison du jour, intervention imminente —, où il est nettement plus efficace et où son coût est justifié. Les préférences de canal du client sont respectées et modifiables depuis la page de suivi.
La délivrabilité. Les messages transactionnels partent d’un sous-domaine distinct de celui utilisé pour les envois commerciaux, avec SPF, DKIM et DMARC configurés. C’est ce qui évite qu’une campagne marketing mal reçue fasse tomber les notifications de commande en indésirables — incident classique, difficile à diagnostiquer, et coûteux.
Les indicateurs internes. Durée par étape, dossiers en écart, taux de dossiers ayant généré une demande d’avancement malgré l’information — c’est l’indicateur qui dit si les messages sont utiles —, et corrélation entre l’annonce anticipée d’un retard et le taux de réclamation.