# Chatbot con IA para reservas en línea

Los servicios de Mavibot son una de las secciones relacionadas con el sistema CRM que te permite automatizar el llenado de los horarios de los empleados con reservas en línea a través de un bot.

<div data-with-frame="true"><figure><img src="/files/eed38f89e340f30d24a01c3b87d18ca757ff283f" alt="" width="375"><figcaption></figcaption></figure></div>

Para trabajar con una reserva en línea y un chatbot de inteligencia artificial, necesitamos:

1. Una sucursal personalizada con categorías y los propios servicios, así como un horario del personal completado.

{% hint style="warning" %}
¡Atención! \
¡No olvides asignar un puesto a los empleados en la configuración del Servicio, de lo contrario la función de lectura de servicios no funcionará!
{% endhint %}

2. Hay dos bloques en el constructor del embudo;
3. Asistente de IA.&#x20;

## Constructor de flujos de trabajo

Paso 1. Ve al constructor del embudo y crea el bloque "Start":

<div data-with-frame="true"><figure><img src="/files/e996da30d84f62067a9d5da4c879eb12fc655919" alt=""><figcaption></figcaption></figure></div>

El bloque debe crearse antes de la configuración del asistente, porque lo usaremos para añadir una variable con información sobre los servicios y el tiempo de los empleados a la configuración del proyecto.

Además, la información de la variable estará disponible para todos tus clientes.

Para ello, escribe project antes de la variable declarada, luego el nombre de la variable service\_info, y después asígnale el valor de la función para leer los servicios disponibles en la rama get\_info\_for\_booking.

<div data-with-frame="true"><figure><img src="/files/828484e84ab85845a1c5360431304c8579ad844d" alt="" width="563"><figcaption></figcaption></figure></div>

En total, obtenemos: project.service\_info = get\_info\_for\_booking().

Para entender que el bloque ha comenzado, añade cualquier mensaje del sistema y, además, para mostrar los valores almacenados en una variable, muéstralos usando la construcción #{}:

<div data-with-frame="true"><figure><img src="/files/64cd0af014e16d2512e637f47fd8c2e460489e16" alt="" width="563"><figcaption></figcaption></figure></div>

A continuación, ve a la ventana de prueba del bot y ejecuta el bloque para almacenar en caché la variable en la configuración del proyecto:

<div data-with-frame="true"><figure><img src="/files/a95fda19b4149e80a399d12ea73566fd1dff1741" alt="" width="375"><figcaption></figcaption></figure></div>

Si has hecho todo correctamente, recibirás una respuesta del bot en forma de mensaje que hayas especificado en este bloque (en nuestro ejemplo, "Variable actualizada") y el valor contenido en la variable.

{% hint style="success" %}
¡Atención!

Después de configurar el chatbot de IA y la reserva en línea, no elimines el bloque "Start"

Lo necesitarás si actualizas tu catálogo de servicios o añades nuevos empleados.

Para actualizar la variable service\_info en el proyecto, simplemente ejecuta este bloque en la ventana de prueba; entonces los datos actualizados se incluirán en el valor de la variable.
{% endhint %}

Paso 2. Crea un segundo bloque — “Chat”, donde necesitas registrar:

1. Una función para crear reservas

&#x20;La función create\_booking\_by\_name (service\_name, date, date\_time, company\_id) crea una reserva basada en los datos transmitidos por el asistente de IA al sistema.

La función toma tres parámetros obligatorios para generar la reserva:

<table><thead><tr><th width="297">parámetros</th><th>description</th></tr></thead><tbody><tr><td><mark style="color:$danger;"><strong>!</strong></mark> service_name</td><td>parámetro obligatorio, nombre del servicio</td></tr><tr><td><mark style="color:$danger;"><strong>!</strong></mark> date</td><td>fecha en el formato dd.mm.yyyy</td></tr><tr><td><mark style="color:$danger;"><strong>!</strong></mark> date_time</td><td>hora del servicio en formato hh:mm</td></tr><tr><td>company_id</td><td>ID de la rama, opcional<br>Si se especifica, se creará un registro para el servicio con el nombre indicado, que pertenece a esta sucursal en particular.<br>Este parámetro puede ser necesario si varias sucursales tienen servicios con el mismo nombre.</td></tr></tbody></table>

2. project.service\_info = get\_info\_for\_booking() - es para configurar y realizar una reserva en el sistema CRM; estos servicios gratuitos se proporcionaron a los usuarios debido a la disponibilidad de información adicional del servicio.

<div data-with-frame="true"><figure><img src="/files/5531a9aa57a8769f359d53ca5838a68358abca44" alt=""><figcaption></figcaption></figure></div>

En el campo del bloque de mensaje, escribe la respuesta necesaria del bot después de que el cliente seleccione el servicio y la hora.

## Cómo trabajar como asistente de IA

A continuación, ve al asistente de IA, donde necesitas configurar los ajustes para la reserva en línea.

Elijamos el rol del asistente: debe ser una reserva en línea:

<div data-with-frame="true"><figure><img src="/files/ec4117c29ef9774ab13aada4c86553bc8b77899b" alt="" width="330"><figcaption></figcaption></figure></div>

Los ajustes preparados se pueden seleccionar a tu discreción:

<div data-with-frame="true"><figure><img src="/files/1b76e1594efff0e37cf8b63c7b314746a5dcb1cf" alt="" width="563"><figcaption></figcaption></figure></div>

¿De qué depende la elección de nuestros ajustes?:

1. Minimizar fantasías: es una opción necesaria para que el bot sea menos creativo y asesore al cliente solo con los datos disponibles.
2. Entrada de datos paso a paso: deberás introducir los datos paso a paso para la formación de la solicitud y las variables.
3. No aprender de los mensajes: para limitar la influencia de terceros sobre el bot y evitar que sea corrompido por intrusos.
4. Botones: para que el cliente no introduzca por su cuenta la fecha, la hora y el servicio durante el proceso de realizar una solicitud en el bot.

A continuación, ve a la configuración del bot, donde describiremos sus tareas principales:

<div data-with-frame="true"><figure><img src="/files/aa917e788c32118bccb90f76e98aa24165984b77" alt=""><figcaption></figcaption></figure></div>

#### **Nota importante de configuración**

Este rol ha sido preconfigurado por los desarrolladores de MaviBot con funcionalidad básica. En la configuración, solo necesitas especificar **comandos clave adicionales** que están fuera de la base de conocimientos presumida del bot.

**Pauta:**

No es necesario instruir al bot sobre su propósito principal: ya es plenamente capaz de asesorar a los clientes sobre tus servicios. En su lugar, céntrate en flujos de trabajo únicos, detalles específicos del producto o escenarios excepcionales.

<div data-with-frame="true"><figure><img src="/files/705f8e73317a77c359073e430a67e91f90ba62cb" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="success" %}

## **Tenga en cuenta**

**Selección de servicio mediante botones**

Con la configuración preestablecida **"Botón"** el asistente de IA presenta los servicios disponibles como botones interactivos.

**Ventaja clave:** los clientes ya no necesitan escribir manualmente los nombres de los servicios: simplemente pueden hacer clic en el botón correspondiente para una selección instantánea.
{% endhint %}

Después de que el cliente haga clic en el botón, la IA le asesorará sobre el coste y el propio servicio:

<div data-with-frame="true"><figure><img src="/files/f95d213b9736c79a9311761b58f6209e80403321" alt="" width="375"><figcaption></figcaption></figure></div>

b) A continuación, el bot mostrará de forma independiente los días y la hora disponibles para el servicio seleccionado por el cliente, ya que esto también está configurado en los ajustes del bot.

<div data-with-frame="true"><figure><img src="/files/4534cd5ac0a40380f75fc82a36450fddd61888fc" alt="" width="375"><figcaption></figcaption></figure></div>

2. Ten en cuenta el siguiente comando en la configuración del bot:

**Escribir sin cambiar start\_block\_from\_ai N**

Este comando garantiza que el asistente de IA responda sin alterar la lógica inicial definida en el `start_block_from_ai` función.

<div data-with-frame="true"><figure><img src="/files/3cbd61f260798cfabbc31a0a604b23353bd606b3" alt=""><figcaption></figcaption></figure></div>

"Luego ejecuta el comando “start\_block\_from\_ai <mark style="color:verde;">**11916**</mark>" - en lugar de los números marcados en verde, escribe el ID del bloque "Chat", que se creó anteriormente en el constructor del embudo. Contiene la función necesaria para generar una reserva en el sistema de reservas:

<div data-with-frame="true"><figure><img src="/files/ecd64100ad2fddb7fd049d97a45507fc22f6dd98" alt=""><figcaption></figcaption></figure></div>

Copia el ID del bloque y asígnalo al comando 'Then execute command  "start\_block\_from\_ai N"', sustituyendo N por el ID.

### Otros ajustes del asistente

**Para usar una variable en caché:** Haz referencia a la variable almacenada en caché en el **"Inicio"** bloque dentro de la configuración de conocimientos del bot.

<div data-with-frame="true"><figure><img src="/files/4cc0ee45a3a054d91af4e98b184f605f635c2613" alt=""><figcaption></figcaption></figure></div>

En los conocimientos del bot, una variable debe escribirse como variable usando la construcción #{}

<div data-with-frame="true"><figure><img src="/files/c255ff19688b62a6f3ba1ed0052d50559b72d315" alt="" width="563"><figcaption></figcaption></figure></div>

En el campo "Formato de los datos transmitidos", introduce el valor y la clave:

<div data-with-frame="true"><figure><img src="/files/1f6ccabe286a7da1a501cfe3d2c2e96d171b3110" alt=""><figcaption></figcaption></figure></div>

Estas variables se transferirán al sistema después de llamar al bloque, y usando nuestra función create\_booking\_by\_name(service\_name, date, date\_time) se creará una reserva.

<div data-with-frame="true"><figure><img src="/files/297fe090221dc0fb2b860da58ffe3803bdec86c3" alt=""><figcaption></figcaption></figure></div>

En el mismo **"Chat"** bloque, volvemos a registrar la `service_info` variable. Esto garantiza que, después de que un cliente complete una reserva, la variable, rellenada por su función, se actualice automáticamente con los últimos horarios disponibles.

Ahora, probemos el asistente para verificar que el proceso de actualización funciona correctamente.

<div data-with-frame="true"><figure><img src="/files/bb371bcdf6e9a2a3f5eb7cb3a70a1aab40e99a2b" alt="" width="314"><figcaption></figcaption></figure></div>

El asistente ha funcionado correctamente.

En el ejemplo, viste que en el último mensaje enviado al cliente se muestra el resultado de la función: después de depurar el trabajo del asistente de IA con la función de reserva en línea, puedes eliminar la variable `#{result}` del mensaje en el **Chat** .

<div data-with-frame="true"><figure><img src="/files/378f9f76eca40e6b8c61723ecd82622864d5ffd4" alt="" width="375"><figcaption></figcaption></figure></div>

Después de probar y depurar el asistente de IA con la reserva en línea, puedes eliminar la `#{result}` construcción del mensaje en el bloque Chat del constructor del chatbot.

<div data-with-frame="true"><figure><img src="/files/b9350d142d5669cf26ff2bbd4fcce48e7e5d82f1" alt=""><figcaption></figcaption></figure></div>

Ahora veamos el calendario en la sección "Booking":

<div data-with-frame="true"><figure><img src="/files/1ac0a537191ca569b3deb63cbe367fee4a87e933" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/bc9fce6eaab8f13d9be54f6984f174a9f02e0716" alt=""><figcaption></figcaption></figure></div>

Se crea automáticamente una entrada correspondiente en el Calendario, teniendo en cuenta la duración requerida para el servicio reservado.

{% hint style="success" %}

#### **Resumen**

Con este enfoque, puedes **crear ramas de servicios diferenciadas** y **automatizar completamente el registro de clientes** usando tu bot de IA.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/es/chatbot/ai/online-booking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
