Module 4 · Connecting systems
Les services web
GoalVous déclarez un service web et ses actions sur la page Connexions du compte, et vous testez chaque action avant de la confier à un agent.
Jusqu’ici, l’agent ne sait que ce que disent ses prompts, plus ce que l’action de démarrage de la leçon 14 lui apporte. Pour chercher une réparation, lire des créneaux ou enregistrer un message pendant l’appel, il lui faut des actions : des appels vers l’outil du client, déclarés une fois pour toutes. Cette leçon les déclare et les teste. Les trois suivantes les branchent sur le workflow.
Un service, des actions
- Le service web, c’est l’outil du client vu par Manivox : une « URL de base » et une façon de s’identifier. On le déclare une fois par compte.
- Une action, c’est une opération précise sur ce service : lire une fiche, créer une ligne. Chaque action a une méthode, un chemin, des paramètres et, si besoin, un « Mapping de réponse » vers des variables.
- Les services se déclarent dans le compte, pas dans l’éditeur : « Comptes » → votre compte de formation → onglet « Connexions » → section « Services Web ». Tous les agents du compte peuvent ensuite s’en servir.
- Déclarer une action ne fait rien tout seul. Elle sert quand un nœud Agent la reçoit comme outil (leçon 16), quand un nœud « Appel API » l’appelle (leçon 17), ou en fin d’appel (leçon 18).
Échauffement : les jours fériés
Premier service, sans clé ni compte : l’API publique des jours fériés.
- « Comptes » → votre compte de formation → onglet « Connexions ». Dans « Services Web », cliquez sur « Service web ». La fenêtre « Nouveau service web » s’ouvre.
- « Nom » :
Jours fériés. « URL de base » :https://calendrier.api.gouv.fr. « Type d’authentification » : « Sans authentification ». Cliquez sur « Créer ». - Sur la carte du service, cliquez sur « Actions (0) », puis « Ajouter une action ».
- « Nom de l’action » :
Jours fériés de l'année. « Méthode » :GET. « Chemin » :/jours-feries/metropole/2026.json(mettez l’année en cours). « Description » :Liste les jours fériés de l'année en France métropolitaine. - Cliquez sur « Enregistrer les actions ».
- Dans l’en-tête de l’action, cliquez sur le petit bouton lecture (« Tester l’action »), puis « Lancer le test ».
La « Réponse » liste les dates, du 1er janvier au 25 décembre, avec le « Statut » 200. Vous venez de déclarer et de tester une action. Gardez ce service ou supprimez-le : la suite n’en a pas besoin.
Déclarez le service de votre scénario
Votre scénario garde ses données dans la base Baserow de la leçon 14, avec le même jeton. Commencez par y importer les deux autres fichiers de votre scénario, exactement comme à la leçon 14 (une table par fichier CSV, première ligne = en-têtes, colonnes en texte).
- reparations.csv → table
reparations: les véhicules à l’atelier. - rendez_vous.csv → table
rendez_vous: vide, l’agent y écrira.
- creneaux.csv → table
creneaux: les créneaux libres. - rendez_vous.csv → table
rendez_vous: vide, l’agent y écrira les demandes, que le secrétariat confirme ensuite.
- annuaire.csv → table
annuaire: les collaborateurs et leur numéro direct. - messages.csv → table
messages: vide, l’agent y écrira.
Puis, dans Manivox :
- Dans « Services Web », cliquez sur « Service web ».
- « Nom » : celui de votre scénario, ci-dessous. « URL de base » :
https://api.baserow.io/api/database/rows/table - « Type d’authentification » : « Paramètres personnalisés ». Sous « Paramètres d’authentification », remplissez une ligne :
- « Nom du paramètre » :
Authorization· « Valeur » :Token VOTRE_JETON· emplacement : « En-tête ».
- « Nom du paramètre » :
- « Ajouter un paramètre », deuxième ligne :
- « Nom du paramètre » :
user_field_names· « Valeur » :true· emplacement : « Query ».
- « Nom du paramètre » :
- « Créer ».
« Nom » : Garage Lumière
« Nom » : Cabinet des Lilas
« Nom » : Atelier Nova
La première ligne vous identifie : Baserow attend le mot Token, un espace, puis votre jeton. La seconde est envoyée avec chaque requête du service et demande à Baserow de parler avec les noms de colonnes (statut, nom) plutôt qu’avec des numéros internes.
Notez l’identifiant de chaque table
Chaque action vise une table, par son identifiant : le nombre qui suit table/ dans l’adresse de la table ouverte, comme à la leçon 14. Dans les chemins ci-dessous, remplacez ID_… par ce nombre et gardez la barre oblique finale : /612345/, pas /612345.
Les actions de lecture
Sur la carte de votre service, « Actions (0) », puis « Ajouter une action ». Les champs « Conserver la réponse complète » et « Mapping de réponse » sont sous « Avancé ».
« Chercher une réparation »
- « Méthode » :
GET· « Chemin » :/ID_REPARATIONS/ - « Description » :
Cherche l'état d'une réparation à partir de l'immatriculation du véhicule. - « Paramètres » :
search, descriptionImmatriculation du véhicule, par exemple AB-123-CD, type « Texte », « Requis » activé. - « Avancé » → « Conserver la réponse complète » : désactivé.
- « Mapping de réponse » :
$.results[0].statut→statut_reparation;$.results[0].pret_le→date_prete.
« Chercher des créneaux »
- « Méthode » :
GET· « Chemin » :/ID_CRENEAUX/ - « Description » :
Liste les créneaux de rendez-vous encore libres au cabinet. - « Paramètres » : aucun.
- « Paramètres fixes » :
search=libre;include=date,heure,praticien,type_rdv. - « Avancé » → « Conserver la réponse complète » : désactivé.
- « Mapping de réponse » :
$.results→creneaux.
« Chercher un collaborateur »
- « Méthode » :
GET· « Chemin » :/ID_ANNUAIRE/ - « Description » :
Cherche un collaborateur du studio par son nom et donne son numéro direct. - « Paramètres » :
search, descriptionNom de la personne recherchée, type « Texte », « Requis » activé. - « Avancé » → « Conserver la réponse complète » : désactivé.
- « Mapping de réponse » :
$.results[0].telephone_direct→poste_contact;$.results[0].present→disponible.
search est le nom que Baserow attend : il cherche le texte dans toutes les colonnes. Baserow répond par une liste results ; $.results[0].statut veut dire « le champ statut de la première ligne trouvée ». Si rien n’est trouvé, la variable reste vide.
Les actions d’écriture
« Créer un rendez-vous »
- « Méthode » :
POST· « Chemin » :/ID_RENDEZ_VOUS/ - « Description » :
Enregistre une demande de rendez-vous d'entretien. À appeler une seule fois, quand le client a confirmé le récapitulatif. - « Paramètres » (tous « Texte », « Requis » activé) :
nom:Nom et prénom du clientplaque:Immatriculation du véhicule, par exemple AB-123-CDprestation:Prestation demandée : révision, vidange, pneus, freins, diagnostic ou carrosseriedate_souhaitee:Date souhaitée, au format JJ/MM/AAAAtelephone:Numéro de téléphone du client
- « Conserver la réponse complète » : désactivé. « Mapping de réponse » :
$.id→rdv_id.
« Créer un rendez-vous »
- « Méthode » :
POST· « Chemin » :/ID_RENDEZ_VOUS/ - « Description » :
Enregistre une demande de nouveau rendez-vous sur un créneau libre. À appeler une seule fois, quand le patient a confirmé le créneau. - « Paramètres » (« Texte », « Requis ») :
nom(Nom et prénom du patient),creneau(Créneau choisi : jour, heure et praticien, par exemple mardi 9 h 30 avec le Dr Martin),telephone(Numéro de téléphone du patient). - « Paramètres fixes » :
demande=nouveau. - « Conserver la réponse complète » : désactivé. « Mapping de réponse » :
$.id→rdv_id.
« Modifier un rendez-vous »
- Même « Méthode », même « Chemin ».
- « Description » :
Enregistre une demande de déplacement d'un rendez-vous existant. À appeler une seule fois, quand le patient a confirmé. - « Paramètres » :
nom,telephone(comme ci-dessus),ancien_rdv(Date et heure du rendez-vous actuel),creneau(Nouveau créneau souhaité). - « Paramètres fixes » :
demande=modification. - Même mapping :
$.id→rdv_id.
« Enregistrer un message »
- « Méthode » :
POST· « Chemin » :/ID_MESSAGES/ - « Description » :
Enregistre un message pour un collaborateur absent ou occupé. À appeler une seule fois, quand l'appelant a confirmé le message. - « Paramètres » (« Texte ») :
pour:Personne ou service à qui le message est destiné(« Requis »)appelant:Nom de la personne qui appelle(« Requis »)telephone:Numéro où rappeler l'appelant(« Requis »)objet:Objet du message, en une phrase(« Requis »)rappel_souhaite:Quand l'appelant souhaite être rappelé(« Requis » désactivé)
- « Conserver la réponse complète » : désactivé. « Mapping de réponse » :
$.id→message_id.
Le « Nom du paramètre » doit être exactement le nom de la colonne Baserow. En écriture, Baserow renvoie la ligne créée, avec son numéro id : le mapper dans une variable vous donnera une preuve que l’écriture a eu lieu.
Cliquez sur « Enregistrer les actions ».
Testez chaque action
- Sur la carte du service, vérifiez que vos actions sont enregistrées : le test utilise la version enregistrée.
- Bouton lecture de l’action (« Tester l’action »). Un champ apparaît par paramètre.
- Remplissez-les avec une valeur de vos données d’exercice, puis « Lancer le test ».
- Lisez le résultat : le « Statut » (200 ou 201 : réussi), la « Requête envoyée » et la « Réponse ».
- « Chercher une réparation » :
search=AB-123-CD. La réponse contient"statut": "en cours de réparation". - « Créer un rendez-vous » : un nom,
AB-123-CD,vidange, une date,33199000101. Une ligne apparaît dans la tablerendez_vousde Baserow.
- « Chercher des créneaux » : « Cette action n’a pas de paramètres. » La réponse liste les cinq créneaux libres.
- « Créer un rendez-vous » et « Modifier un rendez-vous » : une ligne apparaît dans la table
rendez_vous, avecnouveauoumodificationdans la colonnedemande.
- « Chercher un collaborateur » :
search=Haddad. La réponse contient"telephone_direct": "+33199000202". - « Enregistrer un message » : une ligne apparaît dans la table
messagesde Baserow.
Supprimez ensuite dans Baserow les lignes créées par vos tests.
Ce que l’IA verra de vos actions
Quand une action devient un outil d’un nœud Agent (leçon 16), le modèle de langage ne voit ni le chemin ni la méthode. Il voit :
- la « Description » de l’action : c’est elle qui lui dit quand s’en servir. Écrivez-la comme une consigne ;
- chaque paramètre, avec son type, sa description et s’il est requis : c’est ce qu’il doit obtenir de l’appelant ;
- après l’appel, la réponse : seulement les champs mappés quand « Conserver la réponse complète » est désactivé, la réponse entière sinon. Une longue réponse brute noie l’agent : mappez ce qui sert.
Vérifiez
Point d’étape
Le canevas n’a pas changé : vos actions attendent dans « Connexions », testées. Les leçons 16 et 17 les branchent sur l’agent.