# Voicebot

> El agente que contesta el teléfono

Este artículo cierra la serie de Chatbot. El primero, **[Chatbot](https://docs.audara.io/chatbots/)**, explica el módulo, el lienzo, los flujos, publicar y probar. El segundo, **[Chatbot: los pasos del flujo](https://docs.audara.io/chatbot-pasos/)**, es el catálogo de todos los pasos. El tercero, **[Smart Agent](https://docs.audara.io/smart-agent/)**, explica el paso que conversa con inteligencia artificial. Todo eso vale igual para un voicebot, así que aquí solo está **lo que cambia cuando la conversación es una llamada**.

## Qué es un voicebot

Un voicebot es un agente que atiende llamadas. Contesta, escucha lo que dice quien llamó, responde con una voz sintetizada y hace lo mismo que hace un chatbot: consultar sistemas, capturar datos, resolver con inteligencia artificial o pasar la llamada a un asesor.

Se arma en el mismo editor que un chatbot, con el mismo lienzo y casi los mismos pasos. Las diferencias vienen todas del canal:

- No hay pantalla. No existen los botones ni las listas desplegables: el cliente contesta hablando.
- Lo que el bot escribe se convierte en voz, así que el texto se redacta para el oído.
- El silencio es información. Un chat puede quedarse quieto media hora; una llamada callada hay que atenderla.
- La llamada llega por un **[IVR](https://docs.audara.io/ivr/)**, no por un canal de mensajería.

## Crear un voicebot

Entra a **Agentes IA** en el menú principal y presiona el botón **(+)**. La ventana de tipo de agente te deja elegir entre Chatbot, Voicebot y Automatización. Elige **Voicebot**.

![El tipo se elige al crear el agente y no se puede cambiar después](https://docs.audara.io/voicebots/imagenes/vb-tipo.jpg)

*El tipo se elige al crear el agente y no se puede cambiar después*

> **Importante**
> El tipo de agente se define una sola vez, al crearlo. Si te equivocaste, crea otro: no hay forma de convertir un chatbot en voicebot ni al revés.

De ahí en adelante el editor es el mismo del artículo **Chatbot**: el nombre arriba a la izquierda, el engranaje de configuración, el selector de flujo, el menú de más opciones (⋮), y los botones **Probar**, **Guardar borrador** y **Publicar**. El ícono de ondas de sonido al lado del nombre es lo que te dice, de un vistazo, que estás en un voicebot.

## Configuración general

El engranaje abre la **Configuración General**. En un voicebot esta ventana trae cuatro bloques propios: **Tiempos**, **Síntesis de voz (TTS)**, **Inteligencia artificial** y **Límite**.

### Tiempos y horario

![Los tiempos gobiernan qué hace el bot cuando nadie habla](https://docs.audara.io/voicebots/imagenes/vb-config-tiempos.jpg)

*Los tiempos gobiernan qué hace el bot cuando nadie habla*

- ****1.** Tiempo de inactividad**: Cuántos segundos de silencio espera antes de dar la llamada por inactiva y entrar al flujo de inactividad. Se elige entre 15, 30, 45 y 60 segundos. Por defecto son 45.
- ****2.** Tiempo de repetición***: Cuántos segundos de silencio espera antes de volver a decir lo último que dijo. Se elige entre 15, 20, 25 y 30 segundos, o **Sin repetición**. Tiene que ser **menor** que el tiempo de inactividad, o el guardado se bloquea con un aviso.
- ****3.** Mensaje de repetición**: Una frase corta que dice antes de repetir, del estilo *¿Sigues ahí?*. Es opcional y el campo se deshabilita si elegiste Sin repetición.
- ****4.** Permitir interrupción**: Deja que quien llamó hable encima del bot y lo corte. Con **Sí** la conversación se siente más natural; con **No** el bot termina siempre su frase. Por defecto viene en No.
- ****5.** Condición horaria**: El horario en el que este bot atiende, tomado de **Configuración > Agentes IA > Horarios**. Fuera de ese horario la llamada entra al flujo **Fuera de horario** en vez del principal. Si lo dejas vacío, el bot atiende siempre.

### Voz e inteligencia artificial

![Con qué voz habla el bot y con qué modelo piensa](https://docs.audara.io/voicebots/imagenes/vb-config-voz.jpg)

*Con qué voz habla el bot y con qué modelo piensa*

- ****1.** Proveedor de Voz (TTS)**: El proveedor que convierte el texto en audio. Cada uno trae su propio catálogo de voces, así que al cambiarlo se recarga la lista de abajo. Los proveedores disponibles dependen de lo que tenga habilitado tu operación.
- ****2.** Tipo de Voz (TTS)**: La voz con la que habla el bot, agrupada por idioma. Al elegir una, si el catálogo trae la información, aparece debajo una tarjeta con su acento y una descripción corta del estilo.
- ****3.** Selección LLM**: La integración de inteligencia artificial que usa este bot, de las que estén configuradas en **Configuración > Integraciones**. La necesitas si el flujo tiene pasos Smart Agent o ChatGPT.
- ****4.** Modelo**: Qué modelo de esa integración usar. Con **Predeterminado** se usa el que traiga configurada la integración.

> **Nota**
> La voz es del bot completo, no de cada mensaje. Si necesitas dos voces distintas, son dos voicebots.

### Límite de voicebots simultáneos

Tu operación tiene un tope de llamadas que los voicebots pueden atender al mismo tiempo. Cuando una llamada llega y el tope ya está ocupado, el bot no la atiende, y este bloque decide qué escucha esa persona.

![Qué pasa con una llamada que llega cuando ya no hay cupo](https://docs.audara.io/voicebots/imagenes/vb-config-limite.jpg)

*Qué pasa con una llamada que llega cuando ya no hay cupo*

- ****1.** Mensaje de límite de Voicebots simultáneos**: Lo que se reproduce antes de sacar la llamada. Trae un texto por defecto. **Déjalo vacío y no se reproduce nada**, que es distinto de borrarlo y dejar el texto de fábrica.
- ****2.** Destino**: A dónde se transfiere la llamada después del mensaje: una extensión, un buzón, una conferencia, otro IVR o una campaña entrante. Es opcional.
- ****3.** El segundo campo**: Cambia según el destino que elegiste, y ahí se escoge cuál en concreto. Si dejas el destino vacío, la llamada se termina después del mensaje.

> **Importante**
> Estos dos campos se leen de la versión **publicada** del bot. Si los cambias en un bot que ya está en producción, tienes que volver a publicarlo para que empiecen a aplicar.

## Qué cambia en los pasos del flujo

El menú del conector **(+)** de un voicebot es casi el mismo de un chatbot. Lo que cambia es lo que no tiene sentido sin pantalla.

![El menú de pasos de un voicebot](https://docs.audara.io/voicebots/imagenes/vb-menu.jpg)

*El menú de pasos de un voicebot*

**Agregar mensaje** es una sola opción, sin submenú: en un voicebot todos los mensajes son de texto hablado. No existen el mensaje con archivo ni el mensaje con botón de enlace.

Dentro de **Agregar interacción** quedan el **Menú de opciones**, la **Respuesta libre** y la **Invalidez**. Desaparecen el **Botón de menú** y la **Opción desplegable**, que son controles de chat.

![Debajo de un Menú, un voicebot solo admite Respuesta libre e Invalidez](https://docs.audara.io/voicebots/imagenes/vb-menu-hijos.jpg)

*Debajo de un Menú, un voicebot solo admite Respuesta libre e Invalidez*

Dentro de **Agregar captura** está la **Captura dato** de siempre y una opción que solo existe en voicebots, la **Captura variables**, explicada más abajo. No están la captura de archivo ni el Flow de WhatsApp.

![Captura variables es exclusiva de los voicebots](https://docs.audara.io/voicebots/imagenes/vb-menu-captura.jpg)

*Captura variables es exclusiva de los voicebots*

En el paso **Captura dato**, el **Tipo de captura** solo ofrece *Respuesta abierta* y *Opciones*. La tercera, *Botones*, no aparece.

Todo lo demás está igual: acciones, integraciones REST y MCP, Get, Post, ChatGPT, el trío del Smart Agent, condiciones, variables, iteración y encuesta. El catálogo completo está en **Chatbot: los pasos del flujo**.

## Cómo elige el que llama

Esta es la diferencia que más confunde al empezar. En un chatbot, un **Menú** reparte sus caminos con **Botones** u **Opciones desplegables**: el cliente toca uno y el flujo sabe cuál. En un voicebot no hay nada que tocar, así que **los caminos de un Menú son pasos de Respuesta libre**, y cada uno lleva las palabras que lo activan.

![Un camino del menú, con las palabras que lo disparan](https://docs.audara.io/voicebots/imagenes/vb-respuesta-libre.jpg)

*Un camino del menú, con las palabras que lo disparan*

- **Título**: El nombre que se ve en el lienzo. Ponle el nombre de la intención, no el de la palabra.
- ****1.** Palabras clave**: Escribe una y presiona Enter para convertirla en etiqueta. El bot compara lo que dijo la persona contra estas palabras: primero busca una coincidencia exacta y después una que esté contenida en la frase. Las tildes y las mayúsculas no importan.

Si nadie coincide, el bot busca las **palabras clave del flujo** (las del menú ⋮, que valen en cualquier punto de la conversación). Si tampoco, entra por la **Invalidez** si el menú tiene una colgada; si no hay ninguna, reproduce el **Mensaje invalidez** del propio menú y vuelve a preguntar.

> **Buenas prácticas**
> Pon varias palabras por camino y en el lenguaje del cliente, no en el tuyo: *pedido*, *orden*, *compra*. Y evita que dos caminos compartan una palabra, porque gana el primero que aparezca en el flujo.

> **Nota**
> Cuando las opciones son muchas o la gente las dice de mil formas distintas, un **Smart Agent** resuelve mejor que un menú de palabras clave: entiende la frase completa en vez de buscar coincidencias. El artículo **Smart Agent** lo explica.

## Cómo suena: escribir para el oído

Todo lo que el bot dice pasa por el motor de voz. El editor de mensajes de un voicebot está preparado para eso.

![Un mensaje de voicebot, con la variable y la etiqueta resaltadas](https://docs.audara.io/voicebots/imagenes/vb-mensaje.jpg)

*Un mensaje de voicebot, con la variable y la etiqueta resaltadas*

- ****1.** Mensaje: Opción 1, 2 y 3**: Puedes escribir hasta tres redacciones del mismo mensaje. El bot **elige una al azar** cada vez que pasa por el paso, y así la llamada no suena grabada. Con llenar una basta.
- ****2.** El ícono **</>****: Abre la lista de variables para insertarlas en el texto. En un voicebot no hay ícono de emojis: un emoji no se puede pronunciar.

### Etiquetas

El editor resalta en color lo que va entre **< >** para que veas de una que ahí hay una etiqueta y no texto que se vaya a leer en voz alta. Hay dos clases:

- **Etiquetas SSML**: Las etiquetas estándar de síntesis de voz, para pausas, énfasis y entonación. Tienen su propio artículo publicado, **[Etiquetas SSML](https://docs.audara.io/etiquetas-ssml/)**, y lo abres desde el menú (⋮) del editor con la opción **Etiquetas SSML**.
- **`<saychars>`**: Una etiqueta propia de Audara: lee el contenido carácter por carácter. `<saychars>1234</saychars>` se escucha *uno, dos, tres, cuatro* en vez de *mil doscientos treinta y cuatro*. Sirve para documentos, placas, códigos y números de pedido, y funciona con cualquier proveedor de voz.

![La ayuda de etiquetas SSML solo aparece en los voicebots](https://docs.audara.io/voicebots/imagenes/vb-menu-ssml.jpg)

*La ayuda de etiquetas SSML solo aparece en los voicebots*

> **Importante**
> No todos los proveedores de voz interpretan SSML. Con **Google** las etiquetas se aplican; con otros proveedores pueden ignorarse o eliminarse antes de hablar, y el mensaje se escucha igual pero plano. `<saychars>` es la excepción: se resuelve antes de mandar el texto al proveedor, así que funciona siempre. Si vas a usar SSML, pruébalo con una llamada real antes de publicarlo.

> **Buenas prácticas**
> Frases cortas y una idea por frase. Nada de listas numeradas ni de paréntesis: se escuchan raro. Escribe las cifras como se dicen, y usa `<saychars>` para todo lo que sea un código y no una cantidad. Si el flujo tiene un Smart Agent, dile en el prompt que responda en una o dos frases, porque el modelo por defecto escribe para leer, no para escuchar.

## Las variables del voicebot

La lista de variables se abre desde el menú (⋮) del editor, en **Lista variables**, y en un voicebot tiene tres bloques.

![Las variables que puedes insertar en cualquier mensaje del bot](https://docs.audara.io/voicebots/imagenes/vb-variables.jpg)

*Las variables que puedes insertar en cualquier mensaje del bot*

- ****1.** Variables generales**: `{{CALLERID}}` es el número desde el que llamaron y `{{INTERACTION_ID}}` el identificador de la interacción, el mismo que sale en los reportes. Las demás son de fecha y hora, y se resuelven en el momento.
- ****2.** Captura variables**: Las que el bot recibe del IVR al arrancar la llamada. Salen aquí solo si el flujo tiene un paso Captura variables.
- ****3.** Variables capturadas**: Las que va llenando el flujo: capturas, consultas, integraciones y funciones.

### El paso Captura variables

Este paso no le pregunta nada a nadie: **declara** qué datos le va a entregar el IVR al bot cuando la llamada entre. Sirve, por ejemplo, para que el bot ya sepa el documento que la persona digitó en el menú anterior, o a qué línea llamó.

![Cada fila es un dato que el bot espera recibir](https://docs.audara.io/voicebots/imagenes/vb-captura-variables.jpg)

*Cada fila es un dato que el bot espera recibir*

- ****1.** Título**: El nombre que se ve en el lienzo.
- ****2.** Variables que recibe el bot***: Una fila por dato. En **Variable** va el nombre, que se escribe solo en mayúsculas y sin espacios ni tildes. En **Descripción o ejemplo**, para qué es: ese texto es el que ve después quien arma el IVR, así que escríbelo pensando en esa persona. Caben hasta quince.

> **Nota**
> Solo puede haber **un paso Captura variables por bot**, y va colgado directamente del **Inicio del flujo principal**. El menú no te deja ponerlo en otra parte. Los valores ya están ahí antes del primer paso, así que ese sitio es el que hace obvio de dónde salen.

## Pasar la llamada a otro destino

La acción que entrega la llamada se llama **Goto** y solo existe en los voicebots. Se agrega con **Agregar acción** y se elige en el campo Acción.

![La acción que saca la llamada del bot y la lleva a otro lado](https://docs.audara.io/voicebots/imagenes/vb-accion-goto.jpg)

*La acción que saca la llamada del bot y la lleva a otro lado*

- ****1.** Acción**: Elige **Goto**. En la misma lista están **Flujo** (saltar a otro paso del mismo bot), **Agente IA** (entregar la conversación a otro agente), los envíos de correo, WhatsApp y Telegram, la autenticación OTP y **Finalizar**. La acción *Campaña de chat*, que entrega el chat a una cola de agentes, no existe en voicebots: para pasar a un humano por teléfono se usa Goto.
- ****2.** Mensaje final***: Lo último que dice el bot antes de soltar la llamada. Es obligatorio, y vale la pena que avise lo que va a pasar para que nadie cuelgue creyendo que se cortó.
- ****3.** Destino**: Qué clase de destino: una extensión, un buzón, una conferencia, otro IVR o una campaña entrante.
- ****4.** El segundo campo**: Cambia según el destino elegido, y ahí escoges cuál en concreto.

> **Nota**
> Después de un Goto la conversación con el bot se termina: la llamada queda en manos de la central. Cualquier paso que cuelgues debajo no se ejecuta.

## Silencio, repetición e inactividad

Cuando el bot termina de hablar y espera respuesta, arranca dos relojes con los tiempos de la configuración general.

### El reloj corto: repetir

Al cumplirse el **tiempo de repetición** sin que nadie hable, el bot dice el **mensaje de repetición** si lo configuraste, y **vuelve a decir lo último que dijo, tal cual**. No es un mensaje nuevo: es la misma pregunta otra vez, precedida de un *¿Sigues ahí?*. Por eso el mensaje de repetición se escribe corto y como enlace, no como frase completa.

### El reloj largo: inactividad

Al cumplirse el **tiempo de inactividad**, el bot deja de esperar y se va al **flujo de inactividad**, que armas desde el selector de flujos igual que el principal. De fábrica ese flujo trae una acción que termina la llamada.

Adentro tienes una acción que no existe en ningún otro flujo:

![La acción que devuelve la llamada al punto donde se quedó](https://docs.audara.io/voicebots/imagenes/vb-inactividad-checkpoint.jpg)

*La acción que devuelve la llamada al punto donde se quedó*

- ****1.** Acción: Ir a checkpoint (inactividad)**: Devuelve la conversación al paso exacto en el que estaba antes del silencio. Con esto el flujo de inactividad se vuelve un rescate en vez de una despedida: el bot avisa que sigue ahí y retoma la pregunta que había dejado colgada.
- ****2.** Texto que aparecerá**: Lo que dice antes de volver.

> **Importante**
> El bot no se queda en ese ciclo para siempre. Después de **tres inactividades seguidas** sin que la persona diga nada, la llamada se termina sola. El contador se reinicia apenas alguien habla.

## Conectar el voicebot a un número

Un voicebot publicado todavía no atiende nada. La llamada le llega por un **IVR**, que es lo que tiene extensión y a lo que apuntan las rutas de entrada.

Entra a **Configuración > IVR** y crea uno nuevo con el botón **(+)**, o abre uno que ya exista. En **Tipo** elige **Voicebot**: eso cambia la lista de aplicaciones que puedes usar en los pasos.

![Las aplicaciones de un IVR de tipo Voicebot](https://docs.audara.io/voicebots/imagenes/vb-ivr-apps.jpg)

*Las aplicaciones de un IVR de tipo Voicebot*

Un IVR de voicebot suele ser corto: **Answer** para contestar la llamada y **Voicebot** para entregársela al bot. **Set** sirve para dejar un valor en una variable antes de entrar, y **Playback**, **Goto**, **Hangup** y **WebService** para lo que haga falta alrededor.

Agrega un paso con el **(+)**, elige **Voicebot** y ábrelo con **Editar** desde el menú de tres puntos del paso.

![El paso que entrega la llamada al bot y le pasa los datos que ya tienes](https://docs.audara.io/voicebots/imagenes/vb-ivr-voicebot.jpg)

*El paso que entrega la llamada al bot y le pasa los datos que ya tienes*

- ****1.** Voicebot***: Cuál de tus voicebots atiende. La lista trae todos los agentes de tipo Voicebot.
- ****2.** Variables para el voicebot**: Aparece solo si el bot elegido declara variables con un paso Captura variables. Cada fila conecta una **variable del IVR**, a la izquierda, con una **variable del bot**, a la derecha. Debajo de la que elijas se lee la descripción que escribió quien armó el bot, para que sepas qué se espera ahí.

Si el bot no declara nada, en lugar de las filas verás un aviso que te dice justamente eso: agrega el paso **Captura variables** en el flujo principal del bot y vuelve.

> **Nota**
> A la izquierda va el **nombre de la variable del IVR**, sin llaves ni signos de dólar: el sistema los pone solos. Y ojo que ahí las mayúsculas sí importan, porque son variables de la central.

### Saber a qué número responde un bot

Desde el editor del voicebot, en el menú (⋮), la opción **Ver asignaciones** te dice en qué IVR está montado y con qué número se marca.

![Dónde está montado el bot y a qué número llamar para probarlo](https://docs.audara.io/voicebots/imagenes/vb-asignaciones.jpg)

*Dónde está montado el bot y a qué número llamar para probarlo*

El **1.** distintivo con el ícono de teléfono es el número. Si tienes el softphone del navegador encendido, al hacerle clic marca esa extensión y te comunica con el bot.

## Probar y publicar

Publicar un voicebot funciona igual que publicar un chatbot: **Guardar borrador** guarda tus cambios sin que salgan al aire, y **Publicar** los pone a atender llamadas. El artículo **Chatbot** explica el par borrador/publicado, el historial de cambios y cómo revertir.

El botón **Probar** abre un panel de conversación escrita que corre el flujo que estás viendo, sin publicar nada.

![La prueba te dice a dónde transferiría la llamada, en vez de quedarse callada](https://docs.audara.io/voicebots/imagenes/vb-probar.jpg)

*La prueba te dice a dónde transferiría la llamada, en vez de quedarse callada*

Como es una prueba escrita y no una llamada, hay tres cosas que se ven distinto de lo que va a pasar de verdad, y conviene tenerlas claras:

- **No hay voz.** Lees el texto tal como se lo vas a entregar al motor, con sus etiquetas a la vista. Si escribiste `<saychars>` o SSML, aquí los ves escritos; en la llamada se convierten en sonido.
- **No hay IVR**, así que las variables de Captura variables llegan vacías. Los pasos que dependan de ellas hay que probarlos con una llamada real.
- **Un Goto no transfiere.** En su lugar el panel escribe a qué destino transferiría en una llamada real y termina la prueba ahí.

> **Buenas prácticas**
> Usa el panel para verificar los caminos, las palabras clave y las consultas, y deja para una llamada de verdad todo lo que tenga que ver con la voz: cómo suenan los números, si las pausas quedaron bien y si los tiempos de silencio son cómodos.

## Buenas prácticas

![Un voicebot sencillo, de principio a fin](https://docs.audara.io/voicebots/imagenes/vb-flujo-ejemplo.jpg)

*Un voicebot sencillo, de principio a fin*

El flujo de arriba se lee así: el bot recibe del IVR los datos que ya tenía la central, saluda, pregunta qué necesita, y de ahí salen dos caminos. Quien dice *pedido* pasa a un Smart Agent que resuelve la consulta; quien dice *asesor* pasa a una acción que transfiere la llamada. Es la forma más común de armar un voicebot: un menú corto arriba y, colgando de cada camino, o inteligencia artificial o una transferencia.

- **Léelo en voz alta antes de publicar**: Es la prueba más barata que hay. Si a ti te cuesta decirlo, al cliente le va a costar escucharlo.
- **Empieza siempre por saber quién llama**: Si el IVR ya tiene el documento o el número marcado, pásaselo al bot con Captura variables. Volver a preguntar lo que la central ya sabe es lo que más molesta en una llamada.
- **Tiempos cómodos**: Repetición baja, entre 15 y 20 segundos, e inactividad más holgada. Hablar toma más tiempo que escribir, y una persona buscando un número en la cartera se demora.
- **El flujo de inactividad rescata, no despide**: Con la acción **Ir a checkpoint (inactividad)** el bot retoma donde iba en vez de colgar. Colgar de una en el primer silencio es la queja más frecuente.
- **Siempre una salida a un humano**: Un camino de Respuesta libre con palabras como *asesor*, *persona* o *humano*, y debajo un Goto. Que nadie quede atrapado hablándole a un bot.
- **Prueba la voz, no solo el flujo**: Marca al número del IVR desde **Ver asignaciones** y escucha una llamada completa. Los errores de un voicebot se oyen, no se leen.
