Collecte et analyse de données avec la plateforme ElevenAgents dans Next.js
Collecte et analyse de données avec la plateforme ElevenAgents dans Next.js
Collectez et analysez des données dans des webhooks post-appel avec la plateforme ElevenAgents et Next.js.
Tutoriel · Suppose que vous avez suivi le guide de démarrage rapide d’ElevenAgents et configuré un projet Next.js.
Introduction
Dans ce tutoriel, vous apprendrez à créer un agent vocal qui collecte des informations auprès de l’utilisateur au fil de la conversation, puis analyse et extrait les données de manière structurée avant de les envoyer à votre application via le webhook post-appel.
Prérequis
- Un compte ElevenLabs avec une clé API.
- Node.js v18 ou une version ultérieure installé sur votre machine.
Configuration
Créer un projet Next.js
Nous vous recommandons d’utiliser notre modèle de plateforme ElevenAgents v0.dev comme point de départ pour votre application. Ce modèle est une application Next.js prête pour la production, avec l’agent ElevenLabs déjà intégré.
Configurer la plateforme ElevenAgents
Suivez notre guide Next.js pour les étapes d’installation et de configuration. Revenez ensuite ici pour créer les fonctionnalités avancées.
Configuration de l’agent
Définir le premier message
Définissez le premier message et indiquez la variable dynamique de la plateforme.
Définir le prompt système
Définissez le prompt système. Vous pouvez également y inclure des variables dynamiques.
Configurer les outils client
Configurez l’outil client suivant pour naviguer entre les étapes :
- Nom :
set_ui_state- Description : Utilisez cet outil côté client pour naviguer entre les différents états de l’interface utilisateur.
- Attendre la réponse :
true - Délai d’expiration de la réponse (secondes) : 1
- Paramètres :
- Type de données : string
- Identifiant : step
- Obligatoire : true
- Type de valeur : LLM Prompt
- Description : Étape vers laquelle naviguer dans l’interface utilisateur. Utilisez uniquement les étapes définies dans le prompt système.
Définir la voix de votre agent
Accédez à l’onglet Voice et définissez la voix de votre agent. Vous trouverez une liste de voix recommandées pour la plateforme ElevenAgents dans la documentation de conception de voix conversationnelles.
Définir les critères d’évaluation
Accédez à l’onglet Analysis et ajoutez un critère d’évaluation.
- Nom :
all_data_provided- Prompt : Évaluez si l’utilisateur a fourni une description de l’agent qu’il souhaite générer, ainsi qu’une description de la voix que cet agent doit avoir.
Configurer la collecte de données
Vous pouvez utiliser l’analyse post-appel pour extraire des données de la conversation. Dans l’onglet Analysis, sous Data Collection, ajoutez les éléments suivants :
- Identifiant :
voice_descriptiondata-type:String- Description : À partir de la description de la voix souhaitée par l’utilisateur pour l’agent, générez une description concise de la voix incluant l’âge, l’accent, le ton et le caractère, si ces informations sont disponibles.
- Identifiant :
agent_descriptiondata-type:String- Description : À partir de la description de l’agent que l’utilisateur souhaite concevoir, générez un prompt pouvant servir à entraîner un modèle à agir comme cet agent.
Configurer le webhook post-appel
Les webhooks post-appel vous avertissent lorsqu’un appel se termine et que les étapes d’analyse et d’extraction de données sont terminées.
Dans cet exemple, le webhook post-appel effectue notamment les étapes suivantes :
- Créer une conception de voix personnalisée à partir de
voice_description. - Créer un agent ElevenLabs pour les utilisateurs à partir de la valeur
agent_descriptionqu’ils ont fournie. - Récupérer les documents de la base de connaissances depuis l’état de la conversation stocké dans Redis et associer la base de connaissances à l’agent.
- Envoyer un email à l’utilisateur pour l’informer que son agent ElevenLabs personnalisé est prêt à converser.
Lors d’une exécution locale, vous aurez besoin d’un outil tel que ngrok pour exposer votre serveur local à Internet.
Accédez aux paramètres de la plateforme ElevenAgents, puis sous Post-Call Webhook, créez un webhook et collez votre URL ngrok : https://<your-url>.ngrok-free.app/api/convai-webhook.
Après avoir enregistré le webhook, vous recevrez un secret de webhook. Conservez-le de manière sécurisée, car vous devrez ensuite le définir dans votre fichier .env.
Intégrer les fonctionnalités avancées
Configurer une base de données Redis pour stocker l’état de la conversation
Dans cet exemple, nous utilisons Redis pour stocker l’état de la conversation. Cela nous permet de récupérer les documents de la base de connaissances à partir de l’état de la conversation une fois l’appel terminé.
Si vous déployez sur Vercel, vous pouvez configurer l’intégration Upstash for Redis. Vous pouvez aussi créer un compte Upstash gratuit et une base de données.
Configurer Resend pour l’envoi des emails post-appel
Dans cet exemple, nous utilisons Resend pour envoyer l’email post-appel à l’utilisateur. Pour cela, créez un compte Resend gratuit et configurez une clé API.
Définir les variables d’environnement
À la racine de votre projet, créez un fichier .env et ajoutez les variables suivantes :
Configurer la sécurité et l’authentification
Pour sécuriser votre agent ElevenLabs, vous devez activer l’authentification dans l’onglet Security de la configuration de l’agent.
Une fois l’authentification activée, vous devrez créer une URL signée dans un environnement serveur sécurisé afin de lancer une conversation avec l’agent. Dans Next.js, vous pouvez le faire en configurant une nouvelle route API.
Démarrer la session de conversation
Pour démarrer la conversation, appelez d’abord votre route API afin d’obtenir l’URL signée, puis utilisez le hook useConversation pour configurer la session de conversation.
Outil client et variables dynamiques
Lors de la configuration de l’agent, vous avez enregistré l’outil client set_ui_state afin de permettre à l’agent de naviguer entre les différents états de l’interface utilisateur. Pour tout relier, vous devez transmettre l’implémentation de l’outil client aux options de conversation.startSession.
C’est également ici que vous pouvez transmettre les variables dynamiques à la conversation.
Importer des documents dans la base de connaissances
À l’étape Training, l’agent demandera à l’utilisateur d’importer des documents ou de soumettre des URL de sites web publics contenant des informations qui devront être accessibles à son agent. Vous pouvez ici tirer parti de la nouvelle fonction after de Next.js 15 pour autoriser l’importation de documents en arrière-plan.
Créez une nouvelle action serveur upload afin de gérer la création de la base de connaissances lors de la soumission du formulaire. Une fois tous les documents de la base de connaissances créés, stockez l’ID de conversation et les ID de la base de connaissances dans la base de données Redis.
Gérer le webhook post-appel
Le webhook post-appel est déclenché lorsqu’un appel se termine et que les étapes d’analyse et d’extraction de données sont terminées.
Voici les différentes étapes effectuées :
- Vérifier le secret du webhook et construire la charge utile du webhook.
- Créer une conception de voix personnalisée à partir de
voice_description. - Créer un agent ElevenLabs pour les utilisateurs à partir de la valeur
agent_descriptionqu’ils ont fournie. - Récupérer les documents de la base de connaissances depuis l’état de la conversation stocké dans Redis et associer la base de connaissances à l’agent.
- Envoyer un email à l’utilisateur pour l’informer que son agent ElevenLabs personnalisé est prêt à converser.
Examinons chaque étape en détail.
Vérifier le secret du webhook et construire la charge utile du webhook
Lorsque la requête webhook est reçue, nous vérifions d’abord le secret du webhook et construisons la charge utile du webhook.
Créer une conception de voix personnalisée à partir de voice_description
À l’aide de la valeur voice_description de la charge utile du webhook, nous créons une conception de voix personnalisée.
Récupérer les documents de la base de connaissances depuis l’état de la conversation stocké dans Redis
L’importation des documents peut prendre plus de temps que l’analyse des données du webhook. Nous devons donc interroger l’état de la conversation dans Redis jusqu’à ce que les documents soient importés.
Créer un agent ElevenLabs pour les utilisateurs à partir de la valeur agent_description qu’ils ont fournie
Créez l’agent ElevenLabs pour l’utilisateur à partir de la valeur agent_description qu’il a fournie, puis associez à l’agent la conception de voix et la base de connaissances nouvellement créées.
Envoyer un email à l’utilisateur pour l’informer que son agent ElevenLabs personnalisé est prêt à converser
Une fois l’agent créé, vous pouvez envoyer un email à l’utilisateur pour l’informer que son agent ElevenLabs personnalisé est prêt à converser.
Vous pouvez utiliser new.email, un outil pratique de l’équipe Resend, pour concevoir vos modèles d’email de façon intuitive. Lorsque le modèle vous convient, créez un composant et ajoutez l’ID de l’agent en tant que prop.
Exécuter l’application
Pour exécuter l’application localement de bout en bout, démarrez d’abord le serveur de développement Next.js, puis exécutez le tunnel ngrok dans un terminal distinct afin d’exposer le gestionnaire de webhook à Internet.
- Terminal 1 :
- Exécutez
pnpm devpour démarrer le serveur de développement Next.js.
- Exécutez
- Terminal 2 :
- Exécutez
ngrok http 3000pour exposer le gestionnaire de webhook à Internet.
- Exécutez
Ouvrez maintenant http://localhost:3000 et commencez à concevoir votre agent ElevenLabs personnalisé, avec votre propre voix.