Skip to main content
La voix permet de donner un vrai numéro de téléphone à votre agent IA. Les appelants parlent au même agent que sur votre site — même corpus, mêmes outils, même personnalité — mais par la parole.
Les appels vocaux utilisent exactement le même corpus, les mêmes segments, le même system prompt et les mêmes outils que le widget de chat. Il n’y a pas de configuration de contenu séparée pour la voix — toute modification de votre base de connaissances s’applique aux deux canaux instantanément.

Architecture

Animam est le cerveau, pas la couche média. Animam agit comme un Custom LLM : votre orchestrateur vocal envoie les tours de conversation en messages au format OpenAI, et Animam répond par un flux SSE. Le dur du temps réel — speech-to-text, text-to-speech, gestion des tours de parole, signalisation téléphonique/SIP — est géré par la couche voix. Cette séparation est volontaire : elle vous laisse choisir le niveau de gestion que vous voulez.

Trois façons de connecter la téléphonie

Choisissez le niveau de contrôle souhaité. Les trois utilisent le même cerveau Animam.

Niveau 1 — Managé (sans code)

Animam crée l’assistant Vapi et achète un numéro avec la clé Vapi de la plateforme. Votre tenant ne touche jamais à Vapi.

Niveau 2 — Votre propre Vapi (et votre propre SIP / opérateur)

Vous gérez votre propre compte Vapi. Importez-y votre trunk SIP ou vos numéros (Vapi gère les opérateurs BYO — Twilio, Telnyx, votre propre SIP), pointez l’URL Custom LLM de l’assistant vers https://api.animam.ai/voice/your-slug, puis liez-le à Animam :
C’est le chemin « je gère ma propre téléphonie » : votre SIP vit dans votre Vapi, Animam reste le cerveau. Il n’y a aucun endpoint SIP à configurer côté Animam — et il n’y en a pas besoin.

Niveau 3 — Votre propre plateforme vocale

L’endpoint Custom LLM est compatible OpenAI standard — il n’est pas spécifique à Vapi. Tout orchestrateur qui accepte une URL Custom LLM fonctionne : Vapi, LiveKit Agents, Pipecat, Retell, Bland, ou votre propre stack. Pointez l’URL du modèle vers https://api.animam.ai/voice/your-slug (il appelle /chat/completions, en SSE), et Animam répond avec le même corpus, les mêmes outils et la même personnalité. Vous possédez le SIP, le STT/TTS et le budget de latence ; Animam possède le raisonnement.

Réglages du tenant

Champs voiceConfig

Endpoints

POST /voice//chat/completions

Endpoint Custom LLM (compatible OpenAI). Reçoit des messages au format OpenAI et renvoie une réponse en flux SSE. Pointez l’URL Custom LLM de votre orchestrateur vers https://api.animam.ai/voice/your-slug — il appelle /chat/completions automatiquement.

POST /voice//events

Endpoint webhook pour les événements Vapi. Gère les événements de cycle de vie : Configurez cette URL dans votre dashboard Vapi sous Assistant > Server URL :

GET /voice//recordings/

Télécharge un enregistrement d’appel (si l’enregistrement est activé dans Vapi).

Outils pendant les appels vocaux

Tous les outils configurés pour votre tenant fonctionnent pendant les appels :
  • SUBMIT_FORM — l’agent collecte les infos à l’oral, soumet le formulaire en fin d’appel
  • BOOK_MEETING — l’agent vérifie les disponibilités et confirme un rendez-vous pendant l’appel
  • CHECK_AVAILABILITY — l’agent énonce les créneaux disponibles
  • ESCALATE_TO_HUMAN — l’agent propose de transférer vers un humain
L’agent adapte sa langue à la voix — il énonce les données structurées (dates, prix, adresses) dans un format parlé naturel plutôt que du texte formaté.

Vérifier votre configuration

Appelez ensuite votre numéro. Le firstMessage doit se jouer dans les 2 secondes suivant la connexion.

Limites

  • En mode managé, un numéro par tenant ; avec votre propre Vapi/plateforme vocale (niveaux 2–3), vous pouvez router autant de numéros que vous voulez
  • Animam ne termine pas le SIP lui-même — la couche téléphonie/média est toujours la responsabilité de votre orchestrateur vocal (provisioning, qualité audio, latence, fallback)
  • Le stockage des enregistrements est géré par Vapi, pas par Animam
  • Le canal voix ne supporte pas les pièces jointes
  • COLLECT_PAYMENT (Stripe) n’est pas déclenché pendant les appels — l’agent peut décrire les options de paiement mais ne peut pas générer de lien de paiement en cours d’appel