Enchaînement de tâches
Cette capacité relie plusieurs traitements du KIT en une suite ordonnée : le résultat de la première étape alimente la deuxième, et ainsi de suite jusqu’au bout. Vous décrivez la succession une fois ; ensuite, une seule commande déroule toute la chaîne. Elle sert quand un travail demande plusieurs opérations successives.
Une suite d’étapes, un seul déclenchement
Beaucoup de tâches se font en plusieurs temps : lire un document, en extraire des données, puis envoyer un message. Prises séparément, elles imposent de récupérer le résultat de l’une pour le donner à l’autre. L’enchaînement supprime ce va-et-vient : vous placez les étapes dans l’ordre, chacune reçoit automatiquement ce que la précédente a produit, et l’ensemble se déroule d’un bloc. Vous ne pilotez plus trois opérations distinctes mais un seul circuit, décrit une fois et rejouable à volonté.
Le résultat de l’une nourrit l’autre
Le cœur de l’enchaînement, c’est le passage de relais : la sortie d’une étape entre directement dans la suivante, sans transiter par vous. Un PDF converti en texte, ce texte résumé, le résumé envoyé par e-mail — trois capacités, un flux continu. Chaque étape reste une capacité du KIT à part entière, avec son rôle propre ; l’enchaînement se contente d’organiser leur ordre et le transfert des données. Si une étape échoue, la chaîne s’interrompt là, ce qui vous signale précisément où le circuit s’est arrêté.
Composer et exploiter la chaîne
Vous assemblez les étapes depuis cette page, en les ordonnant, ou via l’API pour intégrer la chaîne à votre système. Une fois définie, elle se rejoue autant de fois que nécessaire sur des données différentes. L’enchaînement se combine avec les tâches programmées pour tourner à heure fixe, ou avec la relance automatique pour encaisser un incident passager. C’est la brique qui transforme des capacités isolées en un véritable circuit de travail.
Comment se calcule le prix
Une chaîne ne coûte pas un prix à part : elle additionne le prix de chacune de ses étapes, puis applique une majoration de 20 % pour l’orchestration. Si les étapes reviennent à $0.010 au total, la chaîne coûte $0.012, en dollars US. Vous voyez ainsi exactement d’où vient chaque centime : la somme du travail réel plus le service de coordination. Le tarif est publié d’avance, sans abonnement, et une facture reste disponible pour votre comptabilité.
Cas d’usage
De la facture reçue aux données classées
Menuiserie Rousseau & Fils enchaîne la lecture d’une facture PDF, l’extraction du SIRET et du montant, puis l’envoi d’un récapitulatif à la comptable, en une seule opération.
Du texte long au message court
Studio Lumen SAS relie la conversion d’un compte rendu, son résumé et son envoi par e-mail au client, sans intervention entre les étapes.
De l’audio au billet publié
Un mémo vocal de Camille Moreau est transcrit, mis en forme, puis transformé en brouillon d’article, chaque étape passant son résultat à la suivante.
Questions fréquentes
Que se passe-t-il si une étape échoue au milieu de la chaîne ?
La chaîne s’arrête à l’étape en défaut et vous indique laquelle. Les étapes déjà réussies ont produit leur résultat ; les suivantes ne sont pas lancées. En reliant la relance automatique, vous pouvez faire retenter l’étape fautive avant d’abandonner.
Combien d’étapes puis-je enchaîner ?
Vous composez la suite qui correspond à votre besoin, de deux étapes à une séquence plus longue. Chaque étape ajoute son prix au total ; c’est donc l’utilité du circuit, plus que le nombre, qui guide sa longueur.
Pourquoi une majoration de 20 % sur la somme des étapes ?
Elle rémunère l’orchestration : le passage des données d’une étape à l’autre, l’ordre respecté, l’arrêt propre en cas d’échec. Vous payez le travail des étapes plus ce service de coordination, affiché clairement plutôt que fondu dans un forfait.
Les données circulent-elles entre les étapes sur vos serveurs ?
Oui : l’enchaînement s’exécute côté serveur, chaque résultat passant à l’étape suivante sans repasser par vous. Les données servent au circuit décrit et à rien d’autre. N’y engagez que les informations nécessaires, dans le respect du RGPD.
Puis-je réutiliser la même chaîne sur des données différentes ?
Oui. Une chaîne est décrite une fois puis rejouée autant que voulu, avec une entrée différente à chaque exécution. C’est ce qui la distingue d’une manipulation ponctuelle faite à la main.
Quelle différence avec l’exécution en parallèle ?
L’enchaînement traite les étapes l’une après l’autre parce que chacune dépend du résultat de la précédente. Quand des tâches sont indépendantes et peuvent tourner en même temps, l’exécution en parallèle est plus rapide et mieux adaptée.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/flow/chain \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/flow/chain", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/flow/chain",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/flow/chain", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/flow/chain", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "flow.chain",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |