# Listas y tablas

Los bloques de este grupo trabajan con datos que se guardan aparte del contacto: un catálogo de productos, un horario, solicitudes, códigos promocionales. El bot puede mostrar esos datos a una persona, añadir un registro nuevo, comprobar si existe o eliminarlo.

Los datos se guardan en uno de estos tres sitios:

- **Listas**: la sección «Listas» del proyecto. Una lista tiene campos con nombre y tipo: texto, número, fecha, dinero, imagen, archivo y otros. El bot puede hacer de todo con ellas: leer, añadir, actualizar, comprobar y eliminar registros. Para los datos que el propio flujo escribe y lee, es la opción más sencilla.
- **Tablas**: la sección «Tablas» del proyecto. Es una hoja de cálculo con hojas, filas y columnas A, B, C… El bot solo puede leer sus filas.
- **Google Sheets**: una hoja de cálculo en tu cuenta de Google. El bot lee, añade, actualiza y elimina filas, pero antes hay que conectar una cuenta de Google al bot. Conviene cuando los datos también se trabajan fuera de la plataforma.

Cómo añadir bloques y conectar sus salidas se explica en la [introducción de la sección](https://support.jetbot24.ru/es/chatbots/blocks).

## Configuración común de los bloques de listas

Esta configuración se repite en los bloques de listas. Las páginas de cada bloque solo describen las diferencias.

### Lista

En el campo «Lista», elige con qué lista trabaja el bloque. Las listas pertenecen al proyecto y están disponibles para cualquiera de sus bots. Si hay muchas listas, primero van las «Creadas en este bot» y después «Otras listas del proyecto», con una nota que indica dónde se creó la lista.

El botón «Abrir listas» junto al campo abre la ventana de listas: ahí puedes crear una lista, cambiar sus campos y ver los registros sin salir del esquema.

![La ventana de listas abierta desde un bloque: registros de la lista «Ramos»](https://support.jetbot24.ru/_media/es/01-chatbots/03-blocks/07-lists/_images/lists-window.webp?v=1792562451)

El resto de la configuración aparece cuando eliges una lista. En los bloques de lectura, elegir otra lista restablece los filtros, la ordenación y las plantillas.

### Filtros

Un filtro selecciona registros según los valores de sus campos. Cada condición tiene cuatro partes:

- **«Y» / «O»**: cómo se une la condición con las anteriores.
- **Campo**: un campo de la lista. Además de los campos propios de la lista, están disponibles «Fecha de creación del registro» y «Fecha de actualización del registro».
- **Comparación**: `=`, `>`, `<`, `>=`, `<=`, `!=`.
- **«Valor»**: con qué comparar, hasta 64 caracteres.

En el valor funcionan las [plantillas](https://support.jetbot24.ru/es/chatbots/templates). Así se encuentra un registro por los datos del contacto: por ejemplo, el campo «Teléfono» `=` `{{ phone }}` o el campo «Cliente» `=` `{{ id }}`.

El valor se convierte al tipo del campo: a número en un campo numérico, a importe en un campo de dinero, a fecha en un campo de fecha. Escribe las fechas como `2026-10-02` o `2026-10-02 14:30`. En un campo que guarda un contacto o un bot, escribe su número de ID.

Una condición nueva se añade con el botón «Añadir campo».

![Filtro de un bloque de lectura: el campo «Precio» es menor o igual que la variable «budget»](https://support.jetbot24.ru/_media/es/01-chatbots/03-blocks/07-lists/_images/lists-filters.webp?v=1792562451)

> [!WARNING]
> En los bloques de lectura, una condición con el valor vacío se omite como si no existiera. Una variable que el contacto no tiene cuenta como vacía; `0` no. Si todas las condiciones se descartan así, el bloque muestra la lista entera. El bloque «Eliminar registros de la lista» no elimina nada cuando una condición está vacía.

### Búsqueda por la frase del contacto

En los bloques «Leer registros de la lista», «Leer registro de la lista» y «Eliminar registro de la lista», un registro se puede buscar por el texto que envió la persona:

- **«Campo de búsqueda»**: el campo de la lista en el que buscar. El bot busca el texto con el que la persona llegó al bloque: por la salida «Cualquier otra frase» del bloque anterior o desde el bloque «Bot inline de Telegram».
- **«Tipo de búsqueda»**: cómo comparar el texto del campo con la frase: «La frase buscada está en el texto», «La frase buscada coincide con el texto», «El texto empieza por la frase buscada», «El texto termina en la frase buscada».

![Búsqueda por la frase del contacto: el campo «Nombre», «La frase buscada está en el texto»](https://support.jetbot24.ru/_media/es/01-chatbots/03-blocks/07-lists/_images/lists-search.webp?v=1792562451)

### Plantilla de la cadena de mensajes

Los bloques de lectura no guardan el registro en variables. Lo envían directamente a la persona, con la forma indicada en la sección «Plantilla de la cadena de mensajes». La plantilla se compone de partes, y por cada registro el bot las envía en orden:

- **«Plantilla»**: el texto del mensaje. Bajo el campo están los botones «ID» y «Fecha de creación» y botones con los nombres de los campos de la lista. Un botón inserta en el texto el marcador del campo, por ejemplo `{{ title }}`. Al enviar el mensaje, en su lugar aparece el valor del registro.
- **«Foto»**: una imagen de un campo de la lista que guarda imágenes.
- **«Archivo»**: un archivo de un campo de la lista que guarda archivos.

Las partes se pueden reordenar arrastrándolas. Si el texto va justo después de una foto, se convierte en el pie de la imagen. Si un registro no tiene foto o archivo, esa parte se omite.

![Plantilla de la cadena de mensajes: texto con marcadores de campos y botones «Plantilla», «Foto», «Archivo»](https://support.jetbot24.ru/_media/es/01-chatbots/03-blocks/07-lists/_images/lists-template.webp?v=1792562451)

Un campo de dinero se inserta ya con formato, con separadores y el símbolo de la moneda, así que no hace falta escribir el símbolo al lado. Para mostrar el importe en otra moneda, pon su código después de una barra vertical: `{{ price | USD }}`.

En el texto de la plantilla también funcionan las [plantillas](https://support.jetbot24.ru/es/chatbots/templates) habituales, por ejemplo `{{ first_name }}`.

> [!TIP]
> Un registro de una lista también se puede mostrar en cualquier otro mensaje del bot, con las funciones `getListRow` y `getListRows`. Se describen en la [referencia de funciones](https://support.jetbot24.ru/es/chatbots/templates/functions#listas).

### Ordenar

En la sección «Ordenar», elige un campo (o «ID») y el orden: «Asc» o «Desc». Puedes indicar hasta tres campos.

![Ordenación: por precio y después por nombre, ascendente](https://support.jetbot24.ru/_media/es/01-chatbots/03-blocks/07-lists/_images/lists-sort.webp?v=1792562451)

## Configuración común de los bloques de Google Sheets

### Conectar una cuenta de Google

Los bloques acceden a la hoja de cálculo en nombre de la cuenta de Google conectada al bot. Conéctala una vez:

1. Abre la configuración del bot y ve a la pestaña «Integraciones».
2. Elige «Google Sheets»: se abre la ventana «Integración con Google Sheets».
3. Haz clic en el botón de inicio de sesión con Google y permite el acceso.
4. Elige la cuenta vinculada en el campo «Cuenta» y guarda.

La hoja de cálculo debe ser accesible para esa cuenta. Sin la conexión, el bloque envía a la persona «Añade la integración con Google Sheets en la sección Integraciones.» y se detiene.

### Hoja de cálculo y hoja

- **«Enlace a la tabla»**: la dirección de la hoja de cálculo copiada del navegador, del tipo `https://docs.google.com/spreadsheets/d/...`.
- **«Hoja»**: una hoja de la hoja de cálculo. La lista de hojas se carga después de pegar el enlace.

> [!IMPORTANT]
> Solo sirven hojas de cálculo en formato Google Sheets. Los archivos de Microsoft Excel (`.xlsx`) abiertos en Google no son compatibles.

### Rango de filas a procesar

Los campos «De» y «a» indican desde qué fila y hasta qué fila de la hoja lee datos el bloque. Por defecto, de la fila 2 a la 100000: la primera fila se considera el encabezado. Cuanto menor sea el rango, más rápido trabaja el bloque. Los filtros y la ordenación solo se aplican dentro del rango.

### Filtros por columnas

Una condición consta de una columna (una letra: A, B, C…), una comparación y un valor. El valor se añade con uno de estos botones:

- «Añadir variable»: una variable del contacto;
- «Añadir constante»: datos del contacto: «ID», «ID en el canal», «Bot ID», «Username», «Nombre», «Teléfono», «Email», «Dirección», «Fecha de creación», «Referrer ID»;
- «Añadir variable global»: una variable global del bot;
- «Añadir texto»: texto libre; en él funcionan las [plantillas](https://support.jetbot24.ru/es/chatbots/templates) con funciones simples.

Comparaciones:

| Comparación | Cuándo coincide una fila |
|---|---|
| `=` | La celda es igual al valor |
| `!=` | La celda no es igual al valor |
| `>`, `>=`, `<`, `<=` | La celda es mayor o menor que el valor. Una celda vacía nunca coincide |
| `in` | La celda contiene el valor |
| `not in` | La celda no contiene el valor |

Una fila debe cumplir todas las condiciones a la vez. En `=`, `!=`, `in` y `not in` no se distinguen mayúsculas y minúsculas. Los números se comparan como números, tanto con punto como con coma.

### Límites

- El número de llamadas a Google por minuto está limitado. Cuando hay muchos contactos, el bloque espera su turno y el bot responde con retraso.
- Si Google devuelve un error, el bot envía a la persona un mensaje de error y no sigue. Los detalles están en el «Registro de ejecución» del bloque.
