7DaysAutomatisation des process
Cas d’usage · Documents et données

Transférer des données entre deux logiciels automatiquement

La double saisie n’est pas seulement lente. Elle garantit qu’au bout de quelques mois, vos deux outils ne disent plus la même chose.

Une passerelle entre deux logiciels lit les données d’un côté, les met au format attendu de l’autre, et écrit — en gérant les cas que personne n’anticipe : le doublon, le champ absent, la panne temporaire. Elle supprime la double saisie et, surtout, l’écart silencieux entre deux bases qui divergent. C’est possible même quand les logiciels n’ont pas d’API, au prix d’un peu plus de travail.

DéclencheurUn fichier est déposé
L’automateExtrait, vérifié, rangé
VousVous validez les cas douteux

Aujourd’hui, à la main

5 à 15 minutes par enregistrement recopié, et des écarts entre outils qu’on découvre au pire moment.

Une fois automatisé

Zéro saisie, et un écart impossible par construction : une seule source fait foi.

À savoir

Le vrai bénéfice n’est pas le temps : c’est d’arrêter de se demander lequel des deux outils a raison.

Le coût caché de la double saisie

On compte le temps de recopie. C’est la partie visible, et la moins chère.

La partie coûteuse arrive plus tard. Une adresse mise à jour dans le CRM mais pas dans la facturation. Un client marqué inactif d’un côté, relancé de l’autre. Un stock à jour dans l’outil de gestion, faux sur le site. Chaque écart est individuellement mineur ; leur accumulation produit un état où plus personne ne sait quel outil a raison, et où la réponse devient « je vais vérifier », c’est-à-dire ouvrir les deux.

À partir de ce moment, les deux outils coûtent plus cher qu’ils ne rapportent, et l’équipe se met à tenir un troisième fichier — un tableur — qui est censé arbitrer. C’est le symptôme classique.

Ce qu’on automatise

La désignation d’une source de vérité. Pour chaque donnée, un seul outil fait foi. C’est une décision d’organisation, pas de technique, et c’est la première chose qu’on écrit.

La traduction. La table de correspondance entre les champs des deux systèmes, y compris les listes de valeurs et les unités.

Le transfert. En continu quand les outils le permettent, ou par lots réguliers. Les deux sont légitimes ; le temps réel n’est pas toujours utile et coûte plus cher.

La déduplication. Reconnaître qu’un client existe déjà, même avec une orthographe différente, avant de le créer une deuxième fois.

La reprise après panne. File d’attente, réessais, alerte si la situation dure.

Le journal. Quel enregistrement a été transféré, quand, avec quelles valeurs. Indispensable le jour où quelqu’un demande pourquoi un montant a changé.

Comment ça marche techniquement — pour qui veut le détail

Les modes de lecture. Par ordre de préférence. Webhook quand la source sait notifier — c’est immédiat et économe. Interrogation incrémentale sinon : on ne redemande pas tout, on demande ce qui a changé depuis le dernier curseur (updated_after), et on stocke ce curseur. Export planifié quand le logiciel ne propose que ça : un CSV déposé chaque nuit sur un partage, récupéré par un systemd path unit qui réagit au dépôt du fichier. Lecture directe en base quand l’éditeur l’autorise, via un compte en lecture seule et, idéalement, une vue dédiée plutôt que les tables brutes. Automatisation d’interface avec Playwright en dernier recours, avec sélecteurs stables et capture d’écran systématique en cas d’échec, pour diagnostiquer les changements de l’éditeur.

L’idempotence. Chaque transfert porte une clé stable — identifiant source, ou empreinte du contenu métier. Avant d’écrire, on vérifie. C’est ce qui permet de rejouer un lot entier sans créer de doublons, et donc de réparer sereinement après un incident. Une passerelle non idempotente est une passerelle qu’on n’ose pas relancer.

La file et les réessais. Une table de tâches en PostgreSQL avec SELECT … FOR UPDATE SKIP LOCKED suffit à tenir une file fiable sans ajouter un courtier de messages : plusieurs travailleurs peuvent consommer en parallèle sans se marcher dessus, et l’état survit à un redémarrage. Réessais à délai exponentiel avec un peu d’aléa, plafond de tentatives, puis mise en file morte avec le message d’erreur brut conservé. Redis intervient pour le cache et la limitation de débit, pas pour la durabilité.

Le rapprochement des enregistrements. Correspondance exacte d’abord sur un identifiant fort — SIREN, e-mail normalisé, référence client. Correspondance approchée ensuite sur le nom, après normalisation (minuscules, accents retirés, formes juridiques supprimées, espaces réduits), avec une mesure de type trigrammes (pg_trgm en PostgreSQL) ou distance de Levenshtein. Au-dessus d’un seuil : rapprochement automatique. Entre deux seuils : file de validation humaine. En dessous : création d’un nouvel enregistrement. Les seuils se règlent sur vos données réelles, pas sur une valeur par défaut.

Les limites de débit. Les API commerciales plafonnent les appels. On respecte le plafond par un seau à jetons côté client, on lit les en-têtes Retry-After et X-RateLimit-Remaining, et on regroupe les écritures quand l’API accepte les lots. Ignorer ce point mène au blocage du compte, ce qui est un incident plus ennuyeux qu’une lenteur.

Les transactions et la cohérence. Deux systèmes distincts n’offrent pas de transaction commune. On écrit donc dans un ordre pensé, on rend chaque étape rejouable, et on accepte une cohérence différée plutôt que de prétendre à une atomicité qui n’existe pas. Le journal des opérations est ce qui rend cette cohérence différée vérifiable.

La surveillance. Un battement régulier : si aucun transfert n’a eu lieu depuis N heures alors qu’il aurait dû y en avoir, alerte. Uptime Kuma sur un point de contrôle suffit. Une passerelle qui tombe en silence est le pire scénario, parce qu’on la découvre par l’écart, des semaines plus tard.

Questions fréquentes

Et si notre logiciel métier n’a pas d’API ?
C’est fréquent, et ce n’est pas bloquant. Trois voies existent : l’export automatisé — beaucoup de logiciels savent déposer un fichier chaque nuit, c’est la voie la plus propre ; l’accès direct à la base de données quand l’éditeur l’autorise, en lecture seule ; ou, en dernier recours, un robot qui utilise l’interface comme le ferait une personne. Cette troisième voie fonctionne, mais elle est fragile : une mise à jour de l’éditeur peut la casser, et nous le disons avant de la mettre en place, pas après.
Dans quel sens circulent les données ?
La plupart du temps dans un seul, et c’est une bonne nouvelle. Un sens unique avec une source de vérité désignée est simple, prévisible et sans conflit. Le double sens est possible mais il impose de trancher une question à laquelle il faut une réponse écrite : si les deux côtés modifient le même enregistrement, lequel gagne ? Tant que cette question n’a pas de réponse, le double sens fabrique des problèmes.
Que se passe-t-il si un des deux outils est en panne ?
Rien ne se perd. Les transferts qui échouent sont mis en file d’attente et réessayés avec des délais croissants. Si l’indisponibilité dure, une alerte part. Quand le service revient, le retard se résorbe tout seul dans l’ordre. C’est exactement ce qu’un opérateur humain ne fait pas : il passe à autre chose et oublie.
Combien de temps pour mettre ça en place ?
Une passerelle simple entre deux outils avec API — quelques centaines d’enregistrements, correspondance de champs évidente — se construit et se teste en quelques jours. Une passerelle sur un logiciel métier sans API, avec de l’historique à reprendre et des règles de correspondance à négocier, demande plutôt deux à quatre semaines. L’écart vient presque toujours de la qualité des données existantes, pas de la technique.
Et si les deux outils n’ont pas les mêmes champs ?
C’est le cas général. Le travail réel d’une passerelle n’est pas de transporter, il est de traduire : ce que l’un appelle « raison sociale » et l’autre « nom », les listes de valeurs qui ne coïncident pas, un champ obligatoire d’un côté et absent de l’autre. Cette table de correspondance s’écrit une fois, elle vous appartient, et elle est souvent le document le plus utile produit par le projet.
Combien coûte un transfert automatisé entre deux logiciels ?
Entre 2 000 et 6 000 €, avec un écart qui tient entièrement à l’accessibilité des deux outils. Deux logiciels modernes exposant chacun une interface se relient en quelques jours ; un logiciel ancien sans interface demande des contournements, et parfois l’intervention payante de son éditeur. L’audit vérifie ce point avant de chiffrer.
Que se passe-t-il si les deux systèmes divergent ?
Le flux enregistre ce qu’il a transféré et détecte les écarts plutôt que de les corriger en silence. C’est une règle de conception que nous n’abandonnons jamais : une synchronisation qui écrase automatiquement une valeur différente finit tôt ou tard par détruire une donnée que quelqu’un avait corrigée à la main. L’écart est signalé, et une personne tranche.

Pour aller plus loin

Ce process, chez vous

Les chiffres de cette page sont des ordres de grandeur observés. Les vôtres seront différents — et c’est précisément ce que l’audit mesure.

Parlons-en

Ce process, chez vous

Celui qui vous agace le plus, ou celui qui coûte le plus. Dites-nous en deux phrases qui le fait, combien de fois par semaine, et avec quels outils. Nous vous dirons franchement s’il mérite d’être automatisé — y compris quand la réponse est non.

  • Réponse garantie sous 24 heures
  • Un premier échange d’une demi-heure, sans engagement
  • Aucun formulaire tiers : votre message part par votre messagerie

Ou directement : nicolas@oli-via-net.fr· 06 89 96 40 79

Le message s’ouvrira dans votre messagerie, prêt à partir.