Automatisation & workflows
Vos tâches répétitives confiées à des workflows fiables, avec de l'IA là où il faut du jugement, et des alertes quand quelque chose coince.
Tout ne mérite pas un agent. Une grande partie du back-office se règle avec un workflow bien conçu: je connecte vos outils, j'automatise les enchaînements répétitifs (tri, saisie, relances, reporting) et je n'ajoute l'IA que là où elle apporte du jugement. Le tout supervisé: un workflow qui échoue doit prévenir, pas continuer en silence.
Repères
0
ressaisie manuelle sur les process automatisés
7 j
pour un premier workflow utile en production
100 %
des échecs visibles: alertes, journaux, statuts
Automatisation & workflows
Ce que je construis
Automatisation de process métier
Tri et dispatch d'e-mails, saisie, relances, reporting: les enchaînements répétitifs exécutés par des workflows branchés sur vos outils.
n8n · Workflows · Back-office
Workflows augmentés par l'IA
L'IA insérée au bon endroit du workflow pour classer, extraire, résumer ou rédiger un brouillon. Le reste reste déterministe, donc prévisible.
LLM · Classification · Extraction
Intégrations sur mesure
CRM, ERP, e-mails, tableurs, outils internes: je les relie par API et webhooks, y compris quand le connecteur tout fait n'existe pas.
API · Webhooks · CRM · ERP
La promesse
Le travail répétitif tourne tout seul, sous contrôle.
Démonstration
Une facture fournisseur arrêtée avant la saisie comptable
Un bureau d'études en bâtiment reçoit ses factures fournisseurs par e-mail, dans autant de formats qu'il a de fournisseurs, puis les ressaisit à la main dans l'outil comptable. Le contrôle du bon de commande se fait de tête, et une ligne facturée en trop finit payée.
Cas inventéCe cas n'est pas une mission. Il est inventé de bout en bout, et le code plus bas est le vrai code qui le ferait tourner.
HumainLa demande du matin
Les factures fournisseurs arrivées ce matin sont dans la boîte comptabilité. Je veux les montants sortis, comparés au bon de commande, et seulement ce qui coince sur mon bureau.
Appel d'outilExtraction du document
{ "outil": "extraction.document", "source": { "canal": "email", "boite": "comptabilite", "message_id": "AAMkAGI3f21b4c9a", "piece_jointe": "facture-aout.pdf", "recu_le": "2026-09-03T07:41:12+02:00" }, "champs_attendus": [ "numero_facture", "date", "devise", "montant_ht", "montant_ttc", "reference_commande", "lignes" ], "score_minimum_par_champ": 0.85 }Aucun gabarit par fournisseur. Le format du document n'est pas une hypothèse du système, c'est une donnée qu'il subit.
Retour de l'outilChamps extraits
{ "statut": "extrait", "fournisseur_metier": "fabricant de menuiseries aluminium", "numero_facture": "F-2026-3184", "date": "2026-08-28", "devise": "EUR", "montant_ht": 4968.40, "montant_ttc": 5962.08, "reference_commande": "BC-2026-0771", "lignes": [ { "libelle": "Chassis aluminium serie 60", "quantite": 12, "pu_ht": 386.20, "total_ht": 4634.40 }, { "libelle": "Frais de livraison chantier", "quantite": 1, "pu_ht": 334.00, "total_ht": 334.00 } ], "scores": { "numero_facture": 0.98, "montant_ht": 0.97, "reference_commande": 0.93 }, "champs_sous_le_seuil": [] }L'agentLecture de l'écart
La facture porte la référence du bon de commande, lue au-dessus du score exigé. Je lis donc la commande dans l'ERP par cette référence, plutôt que de la chercher par le fournisseur. Elle contient les douze châssis, pas les frais de livraison facturés en plus. Je ne tranche pas cet écart moi-même : je passe les deux montants à la fonction de rapprochement, qui applique une tolérance écrite et testée.
Appel d'outilAppel du rapprochement
{ "outil": "rapprochement.executer", "facture": { "numero": "F-2026-3184", "devise": "EUR", "montant_ht": 4968.40 }, "bon_de_commande": { "reference": "BC-2026-0771", "lu_par": "erp.commandes.lire", "statut": "ouvert", "devise": "EUR", "montant_ht": 4634.40 } }Le modèle n'évalue pas l'écart et ne transmet pas le seuil. Il appelle une fonction déterministe, dont la tolérance ne dépend pas de la formulation de la facture.
Réponse rendueRetour à la comptabilité
La facture F-2026-3184 n'est pas saisie. Elle part en revue humaine : l'écart avec le bon de commande BC-2026-0771 est de 334,00 EUR, pour une tolérance retenue de 15,00 EUR. La ligne en cause est nommée : des frais de livraison chantier absents de la commande. La personne qui ouvre la tâche voit les deux montants, la ligne fautive, et deux issues : accepter l'écart et intégrer, ou renvoyer la facture au fournisseur.
La séquence s'arrête sur une facture non intégrée. C'est le comportement attendu : l'automate sait ce qu'il ne sait pas trancher.
La règle de rapprochement
"""Rapprochement d'une facture fournisseur avec son bon de commande."""
from dataclasses import dataclass
from decimal import Decimal
TOLERANCE_ABSOLUE = Decimal("15.00")
TOLERANCE_RELATIVE = Decimal("0.01")
SEUIL_REJET_RELATIF = Decimal("0.25")
INTEGRATION = "integration"
REVUE_HUMAINE = "revue_humaine"
REJET = "rejet"
@dataclass(frozen=True)
class Decision:
statut: str
ecart: Decimal
tolerance: Decimal
motif: str
def _montant(source, champ):
valeur = source.get(champ)
if valeur is None:
raise ValueError("montant absent : " + champ)
return Decimal(str(valeur))
def rapprocher(facture, bon_de_commande):
if facture.get("devise") != bon_de_commande.get("devise"):
return Decision(REJET, Decimal("0"), Decimal("0"), "devises différentes")
montant_facture = _montant(facture, "montant_ht")
montant_commande = _montant(bon_de_commande, "montant_ht")
ecart = abs(montant_facture - montant_commande)
# La plus stricte des deux tolérances gagne, sinon un gros bon de commande
# achète le droit à un gros écart.
tolerance = min(TOLERANCE_ABSOLUE, montant_commande * TOLERANCE_RELATIVE)
if ecart > montant_commande * SEUIL_REJET_RELATIF:
return Decision(REJET, ecart, tolerance, "écart hors d'une erreur de saisie")
if ecart > tolerance:
return Decision(REVUE_HUMAINE, ecart, tolerance, "écart au-dessus de la tolérance")
return Decision(INTEGRATION, ecart, tolerance, "écart dans la tolérance")
Un automate qui n'a pas le droit de s'arrêter ne supprime pas la ressaisie : il la déplace vers la correction d'écritures, plus tard et plus cher.
Automatisation & workflows
Avant, après
Les mêmes tâches ressaisies à la main chaque jour
Un workflow qui trie, traite et classe tout seul
Une automatisation qui plante en silence
Des échecs visibles, alertés et repris
Automatisation & workflows
La stack
n8n
Make
Zapier
Python
TypeScript
API
Webhooks
Claude
Automatisation & workflows
Questions franches
Quels processus automatiser en premier ?
Les tâches répétitives à fort volume et à faible jugement: tri d'e-mails, saisie, relances, reporting, synchronisation entre outils. Un audit rapide identifie celles qui rapportent le plus, souvent en quelques jours.
n8n, Make, Zapier ou code sur mesure ?
n8n pour la plupart des cas: auto-hébergeable, versionnable, extensible en code. Make et Zapier pour les besoins simples et rapides. Du code sur mesure quand la logique dépasse ce qu'un outil visuel maintient proprement. Je choisis selon votre cas, pas selon mes habitudes.
Que se passe-t-il quand un workflow échoue ?
Il prévient. Alertes, journaux, statut de chaque exécution, reprise possible: je conçois d'abord la façon dont ça échoue. Un workflow qui plante en silence coûte plus cher que la tâche manuelle qu'il remplace.
Faut-il de l'IA dans mes automatisations ?
Pas toujours. Si la règle est claire, un workflow déterministe suffit et coûte moins cher. L'IA entre en jeu quand il faut du jugement: classer un e-mail ambigu, extraire des données d'un document, rédiger un brouillon.
À lire sur ce sujet
Contact
Prêt à passer de la démo à la production ?
Réponse sous 24 h · premier échange gratuit et sans engagement.