Mensajes y botones

La acción «Enviar mensaje» ensambla la respuesta del bot a partir de bloques y la complementa con botones inline, el menú principal y pasos de diálogo. Es la acción más completa del constructor — aquí también se configuran las sustituciones y los parámetros de referencia de los botones.

Bloques del mensaje

Un mensaje es una secuencia de bloques (botón Añadir bloque):

  • Texto — texto formateado (hasta 4096 caracteres) con sustituciones y botones.
  • Foto — imagen con pie de foto.
  • Archivo — documento con pie de foto.
  • Demora — pausa en segundos antes del siguiente bloque.
  • IA — respuesta generada por el modelo según un prompt.
  • Reacción — invoca otra reacción (opcionalmente esperando que termine).

Los bloques se pueden arrastrar. El modo de visualización de bloques puede ser «En orden» o «Aleatorio» (para respuestas variadas). El menú principal del bot puede dejarse sin cambios, definirse de nuevo o ocultarse.

Opciones del bloque

Los bloques de texto y medios tienen indicadores: fijar, sin sonido, protección contra reenvío, spoiler, sin vista previa de enlaces, eliminar automáticamente en N segundos.

Botones inline

En el bloque se configuran los botones (Texto del botón + Tipo):

  • Texto (callback) — botón cuya pulsación es procesada por el bot.
  • Enlace — abre una URL.
  • Aplicación web — abre una Telegram Mini App. Ver Mini App.
  • Invocar reacción — la pulsación activa otra reacción.
  • Cobro de pago y Notificación — marcados como «próximamente».

Estilo del botón: normal, azul (Primary), verde (Success) o rojo (Danger). El indicador «De un solo uso» desactiva el botón tras la primera pulsación.

Comportamiento al pulsar

Para los botones callback se configura qué ocurre al pulsarlos: reemplazar el texto del botón, reemplazar el mensaje (con texto o con el contenido de la reacción vinculada), eliminar el mensaje, omitir answerCallbackQuery. La pulsación también puede asignar etiquetas y establecer parámetros.

Parámetros en el botón (Carry)

El bloque «Carry — instantánea de datos en la pulsación del botón» adjunta al botón un conjunto de valores fijados en el momento del envío. Al pulsar, esos valores entran en el contexto — así cada botón lleva sus propios parámetros (por invocación), incluso si hay muchos botones. Se define el tiempo de vida del payload en segundos. Es la base de los escenarios «elige un producto → tramita exactamente ese».

Botones dinámicos

El bloque «Botones dinámicos de lista» despliega un array de ctx en botones — uno por elemento. Se configura: la clave de la lista en ctx, el alias del elemento, el número de botones por fila y la plantilla del botón (admite {{alias.campo}}). Así se construyen catálogos, listas de registros y menús a partir de los datos de una colección. Más información en Botones dinámicos y parámetros.

Un bloque de texto puede esperar la respuesta del usuario — esto convierte el mensaje en un paso de diálogo y pone en pausa el escenario hasta recibir la respuesta. Varios pasos seguidos forman un formulario o asistente directamente en el chat.

Tipo de contenido esperado

El bot puede esperar un tipo concreto de respuesta: texto, elección de opciones (botones de opción), foto, vídeo, nota de vídeo, audio, documento, voz, ubicación, contacto, calendario o dado. Si el usuario envía un tipo incorrecto, el paso considera la respuesta no válida.

Validación del texto

Para la respuesta de texto se puede activar la validación de formato: teléfono, e-mail, enlace, fecha, hora o coincidencia con una fórmula (expresión regular). Una respuesta que no supere la validación se rechaza y el bot muestra un mensaje de error.

Guardar la respuesta

La respuesta del usuario se puede guardar en un parámetro — después estará disponible en las sustituciones como {{param.clave}} y en las condiciones. Así los pasos de diálogo construyen el mini-perfil del cliente.

Errores, recordatorio y tiempo de espera

  • Mensaje de error de validación — qué mostrar si la respuesta no supera la validación.
  • Recordatorio — qué enviar si el usuario no responde.
  • Cancelar la espera por tiempo de espera — cuánto tiempo esperar antes de desactivar la espera; al agotar el tiempo se puede activar una reacción (por ejemplo, finalizar el formulario con elegancia). Esa reacción aparece en los vínculos como «Tiempo de espera agotado», y la reacción a la respuesta en sí como «Respuesta esperada».

Sustituciones

El botón «Sustituciones» inserta variables: datos del remitente ({{first_name}}, {{username}}, {{user_id}}), del evento ({{text}}, {{chat_id}}, {{datetime}}) y parámetros ({{param.clave}}). Lista completa y fórmulas en Sustituciones y fórmulas.

Qué sigue