API Connector
Le node API Connector envoie des requêtes HTTP vers n'importe quelle API externe et expose la réponse pour que la suite du workflow puisse l'exploiter.
À quoi sert le node API Connector ?
Le node API Connector exécute une requête HTTP vers n’importe quelle URL (GET, POST, PUT, PATCH, DELETE) et expose la réponse complète (body, headers, code de statut) aux nodes suivants. C’est l’échappatoire universelle quand aucun node d’intégration dédié n’existe pour le service que vous voulez appeler.
Cas d’usage typiques :
- Récupérer des données depuis une API REST tierce sans node natif (CRM, microservice interne, jeu de données public).
- Envoyer la sortie d’un workflow vers un webhook (Slack, Zapier, listener sur-mesure) à la fin d’une étape LLM.
- Déclencher des actions côté serveur sur votre propre backend avec un payload modélisé qui dépend des nodes précédents.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node API Connector dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), naviguez dans Tools > Advanced, puis glissez-déposez le node API Connector sur votre espace de travail.
Définir la méthode et l’URL
Dans les paramètres du node, choisissez la Method HTTP (GET, POST, PUT, PATCH, DELETE) et renseignez le champ Url avec l’endpoint cible. L’URL accepte les modèles {{variable}} qui font référence aux entrées connectées.
Ajouter l’authorization et les headers
Si l’endpoint requiert une authentification, ajoutez des paires clé/valeur dans le bloc Authorization (stockées en confidentiel et fusionnées dans les headers à l’exécution). Ajoutez tout header statique supplémentaire dans Headers.
Définir les paramètres du body
Choisissez un Content Type (JSON, Form Data, Raw, None) et remplissez la liste clé/valeur Parameters avec le payload. Les valeurs ressemblant à du JSON valide sont automatiquement parsées en objets.
Connecter la sortie
Reliez le port de sortie au node suivant et créez une variable (par exemple api_response) sur ce node. La réponse HTTP complète y sera injectée.
Paramètres de configuration
Champs requis
Name string required default: API Connector Nom du node — Important pour identifier rapidement le rôle de ce node (ex: “Push lead vers CRM”) lors de l’exécution et du débogage du workflow.
Description string required default: Execute HTTP Request to any api Description du node — Courte phrase décrivant ce que fait la requête.
Method string required default: GET Méthode HTTP — Une parmi GET, POST, PUT, PATCH, DELETE. Détermine le verbe envoyé au serveur.
Url string required URL cible — L’endpoint complet à appeler (ex: https://api.example.com/v1/users). Supporte le templating {{variable}} avec les valeurs de toute entrée connectée. Le node échoue avec Missing url on HTTPRequest Tool si ce champ est vide.
Champs optionnels
Authorization key/value list default: Vide Headers d’authentification — Paires clé/valeur fusionnées dans les headers de la requête à l’exécution (ex: clé Authorization, valeur Bearer {{token}}). Stockées en confidentiel : la valeur est masquée dans l’UI et n’apparaît pas dans les logs.
Headers key/value list default: Vide Headers personnalisés — Headers HTTP supplémentaires ajoutés à la requête (ex: X-Api-Key, Accept-Language). Templatés avec les valeurs des entrées.
Content Type string default: JSON Encodage du body — Une valeur parmi JSON, Form Data, Raw, None. JSON positionne Content-Type: application/json ; Raw positionne Content-Type: text/plain. Un Content-Type explicite dans Headers prend le dessus sur ce paramètre.
Parameters key/value list default: Vide Body de la requête / paramètres de query — Paires clé/valeur envoyées comme body (POST/PUT/PATCH) ou comme query string. Chaque valeur est templatée puis parsée : si c’est une chaîne JSON valide, elle devient l’objet/tableau correspondant ; sinon elle reste une chaîne.
Utilisez {{nom_variable}} dans Url, Headers, Authorization ou Parameters pour injecter des valeurs produites par les nodes en amont. C’est ainsi que vous chaînez les appels d’API — par exemple, un premier appel renvoie un id, un second appel attaque /items/{{id}}.
Que renvoie le node ?
Le node renvoie la réponse HTTP brute en JSON. Reliez le port de sortie au node suivant et créez-y une variable pour la récupérer.
body string | object | blob Contenu de la réponse de l’API. Objet JSON parsé si le serveur renvoie application/json, chaîne brute pour les réponses textuelles, blob pour les payloads binaires.
headers object Headers de la réponse sous forme d’objet clé/valeur (ex: Content-Type, X-RateLimit-Remaining).
status_code number Code de statut HTTP renvoyé par le serveur (ex: 200, 404, 500). Pratique pour brancher un node Conditional dessus.
Exemples d’utilisation
Cas 1 : Requête GET avec bearer token
Récupérer une fiche utilisateur depuis une API REST privée.
Configuration :
Method:GETUrl:https://api.example.com/v1/users/{{user_id}}Authorization: cléAuthorization, valeurBearer {{api_token}}Content Type:JSONParameters: (vide)
Output (dans api_response) :
{
"body": { "id": "u_42", "email": "alice@example.com", "plan": "pro" },
"headers": { "content-type": "application/json" },
"status_code": 200
}
Cas 2 : POST d’un payload JSON vers un webhook
Envoyer un résumé structuré produit par un LLM en amont vers un webhook entrant Slack.
Configuration :
Method:POSTUrl:https://hooks.slack.com/services/T000/B000/XXXHeaders: (vide)Content Type:JSONParameters:- clé
text, valeur{{summary}} - clé
channel, valeur#alerts
- clé
Le runner sérialise les paramètres en {"text": "...", "channel": "#alerts"} et les poste. Slack répond status_code: 200 avec un body ok.
Problèmes courants
Le node échoue avec `Missing url on HTTPRequest Tool`
Cause : Le champ Url est vide, ou son template référence une variable qui s’est résolue en chaîne vide.
Solution : Renseignez Url avec une URL littérale ou vérifiez que chaque {{variable}} qu’il utilise provient d’un node connecté en amont produisant une valeur non vide.
Le serveur renvoie 401 / 403 alors que le token marche dans Postman
Cause : La valeur d’Authorization n’a pas le préfixe Bearer , ou la variable contenant le token contient des espaces parasites, ou vous avez mis le token dans Headers avec une mauvaise clé.
Solution : Mettez le credential dans le bloc Authorization avec la clé Authorization et la valeur Bearer {{token}}. Nettoyez le token à la source. Inspectez l’exécution pour confirmer que le header fusionné atteint le serveur.
Mon body JSON arrive comme une chaîne entre guillemets au lieu d'un objet
Cause : La valeur dans Parameters ressemble à du JSON mais contient une erreur de syntaxe (apostrophes, virgule traînante), donc le runner retombe sur l’envoi en tant que chaîne.
Solution : Validez le JSON en amont (un node LLM produit souvent du JSON malformé — nettoyez-le avec un Find and Replace ou un JSON Path Extractor avant). Les clés et valeurs doivent être encadrées par des guillemets doubles.
Status code 200 mais le node suivant voit un body vide
Cause : Le serveur a renvoyé un body non-JSON (page HTML d’erreur, texte brut) et le node aval attend un objet.
Solution : Lisez d’abord status_code et headers.content-type avec un node Conditional, puis branchez en conséquence. Pour les réponses textuelles, consommez body comme une chaîne.
Bonnes pratiques et pièges à éviter
Stockez toujours les secrets (tokens d’API, clés) dans le bloc Authorization plutôt que dans Headers ou Url. Les valeurs d’Authorization sont marquées confidentielles, masquées dans l’UI, et exclues des logs.
Attention aux rate limits et aux retries. Le node ne réessaie pas automatiquement sur 429 ou 5xx. Ajoutez une branche Conditional sur status_code si vous devez réessayer, faire du back-off ou faire échouer le workflow proprement — boucler silencieusement un appel raté consomme votre quota.
Comment s’intègre-t-il dans un workflow ?
L’API Connector se place typiquement à la frontière du workflow — soit pour faire entrer de la donnée au début, soit pour pousser les résultats à la fin.
graph LR
Input[Input Texte] --> LLM[Node LLM génère le payload]
LLM --> API[API Connector
<br/>POST /webhook]
API --> Cond[Conditional sur status_code]
Cond --> Done[Fin]
Nodes complémentaires
Extrayez un champ précis du body après que l’API Connector a renvoyé une réponse JSON.
Branchez sur status_code pour gérer le succès, les erreurs réessayables et les échecs durs séparément.
Générez le payload JSON envoyé dans Parameters, ou résumez le body de réponse renvoyé par l’API Connector.
Nettoyez la sortie d’un LLM (backticks parasites, préfixes) avant de l’injecter comme {{variable}} dans le body de la requête.