castomFLOW
Ouvrir castomFLOW

Connecter n'importe quoi

HTTP en entrée, HTTP en sortie, les parties pénibles gérées

Chaque outil d'automatisation met en avant un nombre d'intégrations. Ce nombre est toujours élevé et c'est toujours la mauvaise question, car le système dont vous avez réellement besoin est celui développé en interne en 2014 par quelqu'un qui est parti. Ce qui compte, c'est la qualité avec laquelle l'outil parle le protocole qui se cache sous toutes ces intégrations.

Les connexions prêtes à l'emploi

Les applications sur lesquelles fonctionnent la plupart des entreprises proposent des étapes préparées : boutiques et places de marché, comptabilité et facturation, tableurs et bases de données, agendas et messagerie, stockage et communication, CRM et helpdesks, prestataires de paiement et transporteurs. Vous autorisez le compte une seule fois et les champs sont nommés dans le langage de l'application, pas dans celui de son JSON.

Lorsqu'une application présente une particularité du marché polonais — un système de facturation qui doit être compatible KSeF, un transporteur dont les étiquettes sont une norme nationale —, l'étape préparée le prend en compte, car la famille vend sur ce marché et a dû l'apprendre.

Et puis le cas général

Tout le reste est une étape HTTP, et une étape HTTP ici n'est pas un lot de consolation. C'est la même mécanique sur laquelle reposent les connexions préparées, avec la même prise en charge des parties fastidieuses à écrire soi-même.

Les parties fastidieuses

Gérées, pour que vous ne les réécriviez pas

Authentification

Clés d'API, jetons bearer, authentification basique, OAuth 2 avec rafraîchissement, signature de requêtes HMAC, TLS mutuel. Un identifiant est stocké une seule fois, référencé par son nom, et jamais affiché dans un journal ou un enregistrement d'exécution.

Pagination

Curseurs, numéros de page, décalages, en-têtes Link, et l'API qui signale la fin en renvoyant un tableau vide. Indiquez le format et l'étape parcourt l'ensemble complet.

Limites de débit

Un plafond par connexion, respecté dans tous les workflows qui l'utilisent. Lorsqu'un fournisseur répond 429 avec un Retry-After, l'étape attend ce délai plutôt que d'insister.

Nouvelles tentatives et backoff

Les échecs transitoires sont retentés avec un intervalle croissant et un plafond. Une étape est une fonction pure de ses entrées, donc une nouvelle tentative relance l'étape plutôt que l'exécution entière.

Charges utiles délicates

JSON, encodage de formulaire, XML, texte brut, envois multipart. Les réponses sont analysées en champs que vous pouvez référencer par leur nom, y compris ceux imbriqués à quatre niveaux.

Délais d'attente

Une limite par étape, pour qu'une dépendance lente ne puisse pas bloquer un worker pendant que tout ce qui suit s'accumule dans la file. Ce qui se passe lorsque la limite est atteinte est votre décision, étape par étape.

S'il parle HTTP, la conversation a déjà commencé.

Webhooks entrants, pris au sérieux

Chaque workflow peut avoir une URL qui le déclenche. Cette URL vérifie les signatures — HMAC sous les formes utilisées par les fournisseurs courants, et un secret partagé là où c'est tout ce que l'expéditeur peut offrir. Une requête non signée adressée à un workflow qui attend une signature est rejetée et consignée, pas traitée discrètement.

La déduplication repose sur l'identifiant propre de la charge utile, de sorte qu'un expéditeur qui retente parce qu'il n'a pas vu votre 200 à temps obtient une seule exécution plutôt que trois. Les charges utiles malformées sont conservées, avec la raison de leur rejet, car la cause la plus fréquente d'un écart mystérieux dans une automatisation est un expéditeur qui a changé d'avis sur un champ.

Les systèmes qui ne parlent que CSV

Ils existent. Un fichier apparaît sur un serveur SFTP à quatre heures du matin, ou arrive en pièce jointe, ou est déposé dans un dossier partagé. Un workflow peut le surveiller, le lire et traiter chaque ligne comme un enregistrement — y compris le fichier avec un marqueur d'ordre des octets, des séparateurs points-virgules et une ligne d'en-têtes en polonais, car c'est ce que l'exportation donne réellement.

L'inverse fonctionne aussi : un workflow peut assembler un fichier et le déposer là où l'autre système s'attend à le trouver, ce qui est souvent la seule interface dont dispose un logiciel de 2006.

Flux fournisseur nocturneSFTP → HTTP
  • ⚡DéclencheurNouveau fichier sur le SFTP du fournisseur : stock-2026-09-09.csv.
  • 2AnalysePoints-virgules, marqueur d'ordre des octets, en-têtes polonais. 4 118 lignes.
  • 3NormalisationCodes de devise vérifiés par rapport aux données de référence ; deux rejetés comme invalides.
  • 4PousserHTTP PATCH par lots de 200, limite de débit respectée.
  • !ExceptionsDeux lignes classées pour une personne, avec le numéro de ligne et la raison. Les 4 116 autres sont passées.

Étapes ayant fait appel à un modèle : 0Coût de cette exécution : rien

Où vivent les identifiants

Chiffrés, désignés par leur nom, limités à l'espace de travail qui les possède, et jamais affichés dans un journal d'exécution, un message d'erreur ou une conversation avec le support. Un enregistrement d'exécution montre qu'une étape s'est authentifiée en tant que supplier-sftp ; il ne montre pas ce qu'est supplier-sftp.

Une agence qui exécute un même workflow pour trente clients donne à chaque client son propre jeu d'identifiants, et le workflow fait référence au jeu plutôt qu'au secret. La rotation d'une clé se fait en une seule modification à un seul endroit — c'est d'ailleurs la principale raison pour laquelle les agences viennent ici.

La limite à connaître : un système dépourvu de toute interface — ni API, ni webhook, ni dépôt de fichiers, rien d'autre qu'une personne qui clique dans un navigateur — ne peut être automatisé ni par cet outil ni par aucun autre qui se respecte. Il n'y a pas ici de navigateur headless prétendant être un utilisateur, car cela casse dès que l'autre partie déplace un bouton, et cela casse en silence.