Relances programmées — workflow n8n
Statut : expérimentation historique. Le workflow a réellement déclenché des appels pendant la période d’essai Twilio. L’essai est terminé et le canal vocal doit rester désactivé ou simulé tant que les règles d’arrêt ne sont pas corrigées.
Le workflow expérimenté
flowchart LR S[Deux contrôles planifiés] --> H[Lire l'état du Tracker] H --> I{Relance demandée ?} I -->|Non| X[Silence] I -->|Oui| G[Garde-fous] G --> C[Canal de relance]
La version testée exécutait deux contrôles quotidiens. Le nœud conditionnel faisait son travail : lorsque l’API renvoyait besoin_relance: true, la branche d’appel était utilisée. Le défaut se trouvait dans l’état trop pauvre fourni au workflow et dans l’absence de mémoire des rappels.
Résultat réel
- Les appels ont aidé à remplir les journaux pendant environ une semaine.
- Ils ont ensuite continué, parfois deux fois par jour, pendant approximativement trois semaines.
- L’expérience démontre donc à la fois la force d’un signal externe et le coût d’un automate incapable de reconnaître qu’il doit s’arrêter.
Cause confirmée
Le Tracker demandait une relance chaque fois qu’il ne trouvait pas le repère attendu dans le journal du jour. Le workflow ne conservait ni dernier appel, ni acquittement, ni date de fin. Deux contrôles quotidiens pouvaient donc produire deux appels quotidiens.
Une remise à zéro rendait également le repère introuvable et pouvait réarmer la branche de relance.
Garde-fous obligatoires
| Garde-fou | Règle |
|---|---|
| Acquittement | « Fait », « reçu », « reporter » ou « arrêter » ferme ou modifie l’épisode. |
| Plafond | Jamais plus d’une relance dans la période configurée. |
| Temporisation | Un délai minimal empêche deux actions rapprochées. |
| Expiration | Toute campagne possède une date de fin automatique. |
| Horaires calmes | Aucun canal intrusif hors de la plage consentie. |
| Quota financier | Le dépassement du crédit ou du budget bloque l’appel. |
| Interrupteur | Une commande coupe les relances sans arrêter Agent Tracker. |
| Canal de repli | Une notification non urgente remplace la voix si le fournisseur est indisponible. |
Fichier prévu dans le dépôt
workflows/02-agent-tracker-reminders.workflow.jsonL’export public utilisera un canal simulé par défaut. L’intégration Twilio sera documentée comme option historique, sans numéro, identifiant de compte, jeton ni référence de credential.
Critères d’acceptation
- Un journal complété ferme immédiatement l’épisode.
- Deux exécutions rapprochées ne produisent jamais deux relances.
- Une campagne expirée ne peut pas se réactiver seule le lendemain.
- L’arrêt manuel est prioritaire sur toute autre règle.
- La perte du fournisseur ne bloque pas le Tracker.
- Chaque décision est expliquée par un état lisible, pas seulement un booléen.