Gestión dinámica de datos con control de permisos
El sistema recibe mensajes vía webhook de Telegram, extrae el chat ID y consulta Airtable para verificar permisos. Con esta información, genera un *prompt* que incluye el permiso de escritura, el nombre del usuario y su consulta. El agente responde según
🧩 Descripción general
El flujo automatiza la interacción entre un usuario de Telegram y una base de datos de Airtable.
Recibe mensajes por webhook, identifica al remitente, comprueba sus permisos de escritura y, según la intención del mensaje, lee, crea, actualiza o elimina registros en Airtable, devolviendo la respuesta a través de Telegram.
⚙️ Funcionalidades principales
- Recepción y parsing de mensajes de Telegram mediante un webhook.
- Obtención de la identificación del chat y de los permisos del usuario en Airtable.
- Generación de un prompt dinámico que incluye permiso, nombre de usuario y el contenido del mensaje.
- Ejecutar acciones de lectura, escritura o borrado en Airtable según los permisos y la intención del usuario.
- Respuesta de la IA mediante un modelo de lenguaje (Gemini) y envío del texto resultante a Telegram.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Telegram Webhook | Recibe el mensaje entrante y crea la estructura de datos | bot_token, data (JSON del webhook) |
message, build_data |
| Parsear datos (chatid) | Extrae el chatid para la búsqueda de permisos | data (JSON del webhook) |
text (chatid) |
| Leer usuarios (Airtable) | Consulta Airtable con el chatid para obtener permisos | filter_by_formula (chatid), Operation: Read |
result (datos del usuario) |
| Parsear datos (permiso) | Obtiene el campo “Permisos de administrador” | result (datos del usuario) |
text (permiso) |
| Parsear datos (usuario) | Obtiene el nombre de usuario | result (datos del usuario) |
text (usuario) |
| Parsear datos (mensaje) | Extrae el texto del mensaje original | message |
text (mensaje) |
| Prompt | Construye el prompt con permiso, usuario y mensaje | permiso, usuario, mensaje |
prompt (texto de entrada) |
| Agente avanzado | Procesa el prompt con Gemini y los tools de Airtable | prompt (texto de entrada), llm (Gemini), tools (Airtable) |
response (texto de salida) |
| Mensaje Telegram | Envía la respuesta al chat | response (texto de salida) |
Telegram Response |
🧠 Notas
- El componente Telegram Webhook almacena el mensaje recibido en la historia si
should_store_messageestá activo. - Los components Airtable están configurados con operaciones “Read”, “Create”, “Update” y “Delete”; el agente decide cuál usar según el permiso del usuario.
- El modelo de lenguaje (Gemini) se ejecuta con un pensamiento limitado (pensamiento de 0 tokens) y no muestra pensamientos en la salida.
- Los prompts se construyen con variables
{permiso},{usuario}y{mensaje}, garantizando que la IA conozca los permisos y la identidad del remitente antes de decidir la acción. - El flujo garantiza que los usuarios sin permiso de escritura solo puedan realizar consultas de lectura; cualquier intento de escritura se ignora.
- El componente Telegram Message está configurado en modo “Basic”, utilizando el
chat_idproveniente del webhook. - El flujo no incluye IDs ni parámetros internos; los nombres de los componentes se presentan de forma legible y coherente en español.