API Chatbot TALKR.ai v4.2
Intégrez un chatbot conversationnel TALKR sur votre site web, application mobile ou serveur téléphonique. Un seul endpoint, deux canaux : web et téléphonie.
Vue d'ensemble
L'API Chatbot TALKR permet de piloter un agent conversationnel par requêtes HTTP. Elle est utilisée aussi bien par le widget web que par les serveurs de téléphonie (SIP/VoIP). Le principe est simple :
- Vous envoyez un POST pour initier la conversation
- Le bot retourne un message d'accueil + un identifiant de session
- Vous renvoyez les messages de l'utilisateur avec la session et le tracking
- Le bot traite l'intention et retourne sa réponse
URL de base
🔒 URL fournie sur demande
L'URL de base de l'API est communiquée lors de la création de votre compte TALKR. Contactez-nous pour obtenir vos identifiants d'accès (company, bot_id, endpoint).
Paramètres de l'URL
| Variable | Description |
|---|---|
| {company} | Nom de votre espace TALKR (fourni à l'inscription) |
| {bot_id} | Identifiant numérique de votre bot (visible dans la plateforme) |
| {channel} | Canal de communication : web ou telephony |
Authentification
L'API est ouverte (pas de clé API requise pour les appels conversationnels). L'identification se fait via le couple company + bot_id dans l'URL.
Pour le canal web, ajoutez le header :
Quickstart — 3 minutes pour intégrer
Voici comment lancer une conversation en 2 appels :
Etape 1 — Initier la conversation
Vous recevez un JSON avec :
session— identifiant unique de la conversation (a conserver)data.messages[0].content— message d'accueil du botdata.responses[0].tracking— identifiant du bloc courant
Etape 2 — Envoyer un message utilisateur
Le bot analyse l'intention et retourne sa réponse dans variables.bot_answer et data.messages.
Flux conversationnel
Chaque conversation suit ce cycle :
Champs importants a transmettre a chaque tour
| Champ | Provenance | Role |
|---|---|---|
| session | Reponse du step 1 | Identifie la conversation en cours — a conserver tout au long de l'échange |
| tracking | data.responses[0].tracking |
Indique le bloc de l'arbre conversationnel. Permet au bot de savoir ou il en est |
| variables.userresponse | Texte saisi par l'utilisateur | Contient la réponse de l'utilisateur pour le traitement NLU/IA |
Canal Web (chat)
Endpoint pour les intégrations chat web (widget, site, app mobile).
Headers requis
| Header | Valeur | Obligatoire |
|---|---|---|
| Content-Type | application/json |
requis |
| X-Talkr-Query | 1 |
requis |
Canal Téléphonie (SIP/VoIP)
Endpoint pour les intégrations téléphonie (SIP, VoIP, IVR). Meme format de requête/réponse que le canal web, avec des données supplémentaires pour la synthèse vocale (TTS) et la reconnaissance vocale (STT).
Données supplémentaires en réponse
| Champ | Description |
|---|---|
| data.speech_synthesis | Configuration TTS (vendor, voix, options ElevenLabs/Google/Azure) |
| data.speech_recognizer | Configuration STT (vendor, langue, timeouts de reconnaissance) |
| data.hangup_no_response | Raccrocher automatiquement si pas de réponse (0 ou 1) |
| data.retries | Nombre de relances avant abandon |
Paramètres de requête (body JSON)
Appel initial (démarrer une conversation)
Appels suivants (envoyer un message)
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| message | string | requis | Texte du message de l'utilisateur |
| session | string | requis | Identifiant de session retourné par l'appel initial |
| tracking | string | requis | Identifiant du bloc conversationnel (data.responses[0].tracking) |
| variables | object | requis | Objet contenant userresponse (le texte de l'utilisateur) |
| variables.userresponse | string | requis | Réponse de l'utilisateur — utilisée par le moteur NLU/IA pour traiter l'intention |
| currentUrl | string | optionnel | URL de la page ou se trouve l'utilisateur (contexte) |
Structure de la réponse
200 Succès — la réponse contient les données du bot.
Champs importants de la réponse
| Champ | Description |
|---|---|
| session | Identifiant de session a conserver pour toute la conversation |
| variables.bot_answer | Réponse finale du bot (apres traitement NLU/IA). C'est le message principal a afficher |
| data.messages | Messages affichés par le bot. Peut etre un message intermédiaire ("patientez...") avant la réponse finale |
| data.responses[0].tracking | Identifiant du bloc conversationnel courant. A renvoyer dans le prochain appel |
| data.has_background_text | 1 si le bot effectue un traitement en arriere-plan. Afficher data.messages comme message d'attente, puis variables.bot_answer comme réponse finale |
Exemples de code
Tester l'API
Essayez en direct — envoyez un message au bot
Codes d'erreur
| Code | Signification | Action |
|---|---|---|
| 200 | Succès | Traiter la réponse normalement |
| 400 | Requête invalide | Vérifier le format JSON et les champs requis |
| 404 | Bot non trouvé | Vérifier company et bot_id dans l'URL |
| 500 | Erreur serveur | Réessayer apres quelques secondes |
Le champ variables.error dans la réponse peut contenir des détails sur les erreurs internes du bot (ex: variable manquante dans l'arbre conversationnel).
FAQ
Quelle est la différence entre le canal web et le canal téléphonie ?
Le format de requête et le flux conversationnel sont identiques. La réponse du canal téléphonie inclut en plus les configurations TTS (synthèse vocale) et STT (reconnaissance vocale) pour les serveurs SIP/VoIP.
Combien de temps dure une session ?
Une session reste active tant qu'il y a des échanges. Apres un certain temps d'inactivité (configurable par bot), la session expire et un nouvel appel initial est nécessaire.
Le bot affiche "patientez" puis la vraie réponse — comment gérer ?
Quand data.has_background_text = 1, le bot effectue un traitement IA en arriere-plan. Affichez d'abord data.messages[0].content (message d'attente), puis variables.bot_answer (réponse finale) avec un léger délai entre les deux.
Ai-je besoin d'une clé API ?
Non, l'API conversationnelle est ouverte. L'identification se fait via le couple company/bot_id dans l'URL. Pour la gestion des bots (création, configuration), une API d'administration avec authentification est disponible séparément.
Puis-je utiliser cette API depuis un backend Node.js, Python, PHP... ?
Oui, l'API est un simple endpoint REST (POST + JSON). Elle fonctionne avec n'importe quel langage capable de faire des requêtes HTTP. Voir les exemples dans la section "Exemples de code".