# Asistente de IA con tablas de MaviBot

Usando una función dedicada desarrollada por el equipo de MaviBot, tu chatbot de IA puede leer de forma inteligente los valores de una hoja de Google y almacenarlos en una **variable del sistema dentro de la configuración de tu proyecto**. Esto crea una fuente de datos sincronizada y dinámica para tu asistente.

#### **Aplicaciones prácticas**

Esta capacidad es esencial para escenarios como:

* **Asistente de catálogo de productos:** una IA que asesora a los clientes sobre tu **gama actual de productos, precios y disponibilidad** en tiempo real.
* **Bot inteligente de promociones:** un bot que **promociona tus ofertas** destacando dinámicamente características, especificaciones o ofertas obtenidas directamente de tu hoja.

### **Cómo preparar tu tabla para la integración**

Para empezar, ve a la sección de hojas:

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

A continuación, verás el botón "Add sheet", que abre una ventana modal en la que debes introducir el nombre de la hoja:

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

Introduce el nombre de la hoja y haz clic en el botón "Done". Luego se creará una nueva hoja en el proyecto y aparecerá en la sección "Sheets":

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

### Configuración de la hoja

Después de crear la hoja, debes añadir filas y columnas. Para hacerlo, busca el botón "Go to" en la tarjeta de la hoja deseada y haz clic en él.

Ves la siguiente configuración:

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

Para añadir una columna con un nombre, haz clic en el botón "+":

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

Cuando hagas clic en el botón, se abrirá una ventana modal donde podrás introducir un nombre para la nueva columna.

Después de introducir el nombre de la columna, haz clic en el botón "Done"; entonces la nueva columna se añadirá a la hoja. Añade el número necesario de columnas y luego filas.

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

&#x20;Ahora, tu hoja se ve así.

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

Copia (recuerda) el ID de la hoja: para hacerlo, haz clic en la barra de direcciones:

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

A continuación, vamos a configurar los bloques en el constructor.

## Trabajar en el constructor del chatbot

### Función get\_records\_from\_table()

Para usar la función get\_info\_from\_table(), necesitas un bloque en el constructor del chatbot.&#x20;

Ve a la pestaña correspondiente en Mavibot y crea un bloque con un disparador (bloque de inicio o bloque Trigger):

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

Define una variable (se utilizará para el conocimiento del asistente de IA): en este ejemplo, la variable es 'record'.

Ejemplo de código de la Calculadora

<mark style="color:verde;">`project.`</mark><mark style="color:rojo;">`record`</mark>` ``=`` `<mark style="color:naranja;">`get_records_from_table`</mark>`(1)`

1. <mark style="color:verde;">`project. - es un constructor para establecer una variable en la configuración del proyecto;`</mark>
2. <mark style="color:rojo;">`record - nombre de la variable;`</mark>
3. <mark style="color:naranja;">`get_records_from_table`</mark>`(1) - función, donde el parámetro se pasa como ID de la tabla.`&#x20;

<details>

<summary>Lee más sobre la función get_record_from_table()</summary>

`get_records_from_table(table_id, start_row, count, start_col, end_col)` – para obtener registros de una tabla

| Parámetro       | Descripción                                                           | Nota                                                                                                                               |
| --------------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **!** table\_id | ID de la tabla (parámetro obligatorio)                                |                                                                                                                                    |
| start\_row      | parámetro opcional, entero. Especifica la fila inicial del rango      | acepta el número de fila desde el cual comenzar a leer los valores de la tabla, inclusive. Debe especificarse sin comillas         |
| count           | parámetro opcional, entero. Especifica el número de filas a recuperar | valor predeterminado: 1000. Máximo: 5000. Debe especificarse sin comillas                                                          |
| start\_col      | parámetro opcional, cadena. Especifica la columna inicial del rango   | acepta el nombre de la columna desde la cual comenzar a leer los valores de la tabla, inclusive. Debe especificarse entre comillas |
| end\_col        | parámetro opcional, cadena. Especifica la columna final del rango     | acepta el nombre de la columna hasta la cual leer los valores de la tabla, inclusive. Debe especificarse entre comillas            |

**Para leer todos los datos desde un cierto punto:** Especifica solo el **inicio** del rango. **Para leer todos los datos hasta un cierto punto:** Especifica solo el **fin** del rango.

</details>

En lugar de #{none}, escribiremos nuestra variable en el mensaje usando la construcción #{} para ver visualmente qué datos se han escrito en la variable del proyecto.

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

{% hint style="warning" %}

## Atención

La variable insertada en el mensaje sirve para comprobar si el bot lee correctamente la función.                                                                                                                                                            Cuando ejecutes el bloque en modo de prueba, el bot mostrará los valores que se asignarán a la variable.
{% endhint %}

{% hint style="success" %}

## Tenga en cuenta

Después de configurar la llamada del bloque en modo de prueba y guardar la variable en la configuración del proyecto, no elimines este bloque.&#x20;

Puede que lo necesites: por ejemplo, si has añadido más valores a la tabla, simplemente ejecuta el bloque en modo de prueba. Entonces los datos de la variable del proyecto se actualizarán.
{% endhint %}

{% hint style="info" %}
El nombre de la variable puede ser cualquier nombre que te guste.
{% endhint %}

### Bloque de transferencia de datos&#x20;

A continuación, crearemos un bloque "Chat" para transferir datos a la tarjeta del cliente.

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

"Este bloque también puede transmitir un mensaje de cierre del bot, como: '¡Estoy pasando la información al gerente! El gerente se pondrá en contacto en 10 minutos.'"

A continuación, copia el ID del bloque. Lo necesitarás para configurar el asistente de IA en el comando "start\_block\_from\_ai 11956" y el comando de prueba "Block call 11956", donde en lugar del <mark style="color:rojo;">ID del bloque</mark> del ejemplo, debes insertar tu ID de bloque.

{% hint style="success" %}

## Tenga en cuenta

Después de probar, reemplaza "Block call <mark style="color:rojo;">31241050</mark>" con el comando "start\_block\_from\_ai <mark style="color:rojo;">31241050"</mark>.

El comando "Block call <mark style="color:rojo;">31241050</mark>" es de depuración y ayuda a entender qué datos está registrando el bot (ver la sección "Testing").

Para lanzar el bot para los clientes, especifica el comando "start\_block\_from\_ai <mark style="color:rojo;">31241050</mark>".
{% endhint %}

### Lectura de una tabla

1. Navega al **modo de prueba del bot** .
2. Lanza el bloque que contiene el disparador para leer los datos de la tabla.

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

El bloque ha funcionado correctamente. Puedes verlo confirmado por los valores ahora almacenados en la variable correspondiente dentro de la configuración de tu proyecto.

**Para verificar manualmente:**

1. Ve a la pestaña **Configuración del proyecto** sección.
2. Localiza la variable para ver sus datos actuales.

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

En la pestaña "Variables" de la configuración del proyecto, verás tu variable con los valores añadidos desde la tabla. Así que ahora, dentro de tu proyecto, hay una variable con bienes, costo y todo lo que especificaste en la tabla.

## Trabajar en el asistente de IA

Ve a la sección "AI assistant" y inicia el chatbot con configuración de IA.

Debes elegir el rol "Sales assistant":

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

También estableceremos ajustes adicionales:

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

### &#x20;Configuración del asistente de IA

En la configuración del bot escribe los siguientes datos:

1. La posición y las instrucciones para el bot.

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

2. El comando para llamar al bloque y transferir variables al sistema se escribe de la siguiente manera:

`"Si todo es correcto, ejecuta el comando "start_block_from_ai 11956"`, donde en lugar de N se escribe el ID del bloque con el mensaje final: el bloque Chat transmite datos a la tarjeta del cliente:

<figure><img src="/files/39150c428f43ca59b941a04da3dab99add3adb18" alt=""><figcaption></figcaption></figure>

### Conocimiento del bot

En el campo "Bot Knowledge", pasa la variable que se almacenó previamente como un bloque con el disparador.

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

Conocimiento del bot.

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

De esta manera, el bot tomará la información de una variable en la configuración del proyecto y asesorará a tus clientes sobre la gama de productos disponible.

### Formato de datos

En el formato de los datos transmitidos, tú mismo especificas los datos que estás recopilando (por ejemplo, un producto), luego introduces la frase con la "key" y asignas un valor a la clave.

`el nombre del cliente con la clave client_name, el número de teléfono del cliente con la clave phone_number, la ciudad y la dirección con la clave city_address, el producto elegido con la clave product, la cantidad de producto con la clave quantity, el importe total del pedido con la clave total_amount.`

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

Así, cuando se llame al bloque, las variables se transferirán a la tarjeta del cliente: luego podrás trabajar con las variables, por ejemplo, en el constructor del chatbot:

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

En esta etapa, la configuración del asistente de IA está completa.&#x20;

Los parámetros restantes se pueden establecer a tu discreción:

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

## Prueba de un bot

"Si ya tienes bots en ejecución, especifica en la condición de inicio del asistente de IA que se inicie solo en la ventana de prueba."

Paso 1. Haz clic en el constructor de disparadores

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

Paso 2. Selecciona la pestaña con la ventana de prueba y haz clic en "Add trigger":

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

Ahora, en la condición del disparador, verás el siguiente valor:

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

{% hint style="info" %}
De esta manera, el bot se ejecutará solo en la ventana de prueba y en ningún otro lugar.

Después de depurar el bot, elimina esta condición.
{% endhint %}

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

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

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

Este mensaje se está enviando en modo de pr[ueba debido al comando "Block call <mark style="color:rojo;">**3124105**</mark>](/doc/es/chatbot/ai/assistant.md#data-transfer-format)

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

Después de probar y depurar el bot, escribe el comando en la configuración del bot "start\_block\_from\_ai <mark style="color:rojo;">**31241050**</mark>".

{% hint style="success" %}
Este enfoque te permite crear **cualquier tipo de tienda en línea** y aprovechar **cualquier valor de datos** almacenados dentro de tu tabla.

El único límite real es tu imaginación.
{% 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/tables.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.
