Gestão dinâmica de dados com controle de permissões
O sistema recebe mensagens via webhook do Telegram, extrai o chat ID e consulta Airtable para verificar permissões. Com essas informações, gera um *prompt* que inclui a permissão de escrita, o nome do usuário e sua consulta. O agente responde de acordo com
🧩 Descrição Geral
O fluxo recebe mensagens via Webhook do Telegram, extrai o identificador do chat e verifica permissões de escrita na base Airtable. Em seguida gera um prompt contendo permissão, nome do usuário e a própria mensagem, que o agente inteligente interpreta, executa as operações permitidas (leitura, criação, atualização ou exclusão) e devolve a resposta ao chat.
⚙️ Funcionalidades Principais
- Integração em tempo real com Telegram por Webhook.
- Validação automática de permissões de escrita com base nos dados de usuários armazenados em Airtable.
- Construção dinâmica de prompts que incorporam o estado de permissões e dados de usuário.
- Processamento por agente avançado que pode usar múltiplos modelos de linguagem e ferramentas de Airtable.
- Resposta imediata ao chat em texto puro, respeitando regras de formatação e restrições de permissão.
🔄 Passos do Fluxo de Trabalho
| Nome do Componente | Papel no Fluxo | Entradas Principais | Saídas Principais |
|---|---|---|---|
| Telegram Webhook | Recebe a mensagem de entrada do usuário e gera o payload estruturado. | Dados brutos do webhook (JSON). | Mensagem parseada (message), estrutura de dados (build_data). |
| ParseData (Chat ID) | Extrai o identificador do chat do payload. | Dados de entrada do webhook (build_data). |
Texto contendo chatid. |
| Airtable (Read) | Busca permissões de escrita do usuário a partir da base “Gestão de Produtos”. | chatid (filtro por fórmula). |
Dados de resposta (result). |
| ParseData (Permiso) | Converte o campo de permissão de escrita em texto simples. | Dados de leitura da Airtable (result). |
Texto “permiso”. |
| ParseData (Usuario) | Converte o nome de usuário em texto simples. | Dados de leitura da Airtable (result). |
Texto “usuario”. |
| Prompt | Monta o prompt que será enviado ao agente, inserindo permissão, usuário e a própria mensagem. | permiso, usuario, mensaje (texto da mensagem do usuário). |
Prompt completo (prompt). |
| AdvancedAgent | Interpreta o prompt, decide quais operações de Airtable executar (leitura, criação, atualização ou exclusão) e gera a resposta final. | Prompt (arg_input), modelo de linguagem (llm), ferramentas de Airtable (tools). |
Resposta em texto (response). |
| GoogleGenerativeAIModel (Gemini) | Fornece o modelo de linguagem que o agente utiliza para gerar respostas. | Configurações do modelo (tipo, tokens, temperatura). | Instância do modelo (model_output). |
| Airtable (Create) | Cria um novo registro na tabela “Produtos” quando autorizado. | Dados de entrada do agente. | Resultado da criação (result). |
| Airtable (Update) | Atualiza campos de um registro existente na tabela “Produtos” quando autorizado. | Dados de entrada do agente. | Resultado da atualização (result). |
| Airtable (Delete) | Remove um registro da tabela “Produtos” quando autorizado. | Identificador do registro a ser removido. | Resultado da exclusão (result). |
| Telegram Message | Envia a resposta do agente de volta ao chat. | Texto da resposta (response). |
Mensagem enviada ao usuário. |
Obs.: Os componentes de criação, atualização e exclusão são usados apenas se o usuário possuir permissão de escrita; caso contrário, apenas a operação de leitura é permitida.
🧠 Notas
- O agente utiliza o modelo Gemini 2.5 Flash, configurado com temperatura 1 e sem budget de pensamento.
- As credenciais de acesso à Airtable e ao Telegram são mantidas em variáveis de ambiente (não expostas no fluxo).
- A lógica de permissão de escrita é centralizada na tabela “Usuarios” do Airtable, com campo “Permisos de administrador”.
- O prompt enviado ao agente segue um formato estruturado (
Permiso de escritura: {permiso}\n\nnombre de usuario : {usuario}\n\nmensaje : {mensaje}) para facilitar a compreensão semântica. - O agente pode executar até 35 iterações internas; o parâmetro
use_streamestá desativado, portanto a resposta é entregue de uma só vez. - Caso o modelo falhe, o agente tenta recorrer a eventuais modelos de fallback configurados na propriedade
fallback_models. - O fluxo garante que nenhum componente exiba identificadores (IDs) em sua documentação, conforme diretrizes.
- O fluxo é orientado à simplicidade de uso: qualquer nova operação na base Airtable pode ser adicionada como ferramenta seguindo o mesmo padrão.