eBot Admin

Dashboard

Processos de monitoramento

Processos cadastrados na lista abaixo. O formulário técnico (SQL, templates, bloco) fica oculto até você abrir com Criar processo ou Editar em um processo.

Carregando processos...

Rascunhos (propostas da IA)

Itens criados pela IA ficam como rascunho até você aprovar. Use Testar para rodar o fluxo do bloco antes de aprovar, Editar para ajustar e Aprovar para ativar no bot.

Carregando…

Templates Meta (monitoramento)

Gerencie rascunhos de template Meta e reenvie para análise sem criar outro rascunho.

Carregando…

Ideias e implementações (IA)

Sugestões e implementações registradas pela IA. A documentação para a IA está em docs/ia/GUIA-SISTEMA-EBOT.md — a IA usa esse guia para saber como trabalhar no sistema e pode enviar ideias via POST /admin/ia/ideias.

Carregando…

Fluxo

Start (palavras-chave) → Menu → Opções (links) → Blocos em sequência. A primeira mensagem passa pelo Start antes do menu.

0. Start (palavras-chave)

Captura a primeira mensagem do usuário e redireciona conforme a regra. Use palavra-chave (contém, exato, começa com) ou Regex. Sem menu principal, o bot ainda processa palavras-chave e regex e chama o destino (bloco, menu, etc.). Ordem: a primeira regra que der match vale.

Nova regra

Quando não der nenhum match

Destino quando a mensagem do usuário não corresponder a nenhuma regra acima (ex.: menu principal, um bloco ou encerramento).

Vínculo por telefone

No primeiro contato, se não houver registro em bot_contato_vinculo, o bot cria um vínculo só com o número. Depois envia para o destino abaixo. O admin define pelos menus se quer cadastrar o contato (nome, CPF, etc.) ou não.

Sessão (retomada)

Se o usuário abandonar a conversa no meio de um bloco, após X minutos sem responder a sessão expira. Os dados (payload) são preservados. Quando ele mandar mensagem de novo, o bot envia a mensagem abaixo e retoma de onde parou. Use {bloco} na mensagem para o nome do bloco.

Desenvolvimento — menus de teste

Cadastre seu número WhatsApp para testar opções marcadas como somente desenvolvimento. Pacientes reais não veem essas opções.

Carregando…

1. Menus

Crie quantos menus precisar. Apenas um pode ser o principal (★). O envio no WhatsApp usa lista modelo (botão + itens) ou botões (até 3).

Criar novo menu

Lista: mensagem com botão que abre a lista de opções. Botões: até 3 opções como botões.

Template da lista

Como a mensagem será exibida no WhatsApp (lista ou botões).

Visualização

Construtor de Fluxos

Menu → Opção → Bloco → Etapas → Passos → Detalhes → Destinos

Fluxo 2.0

Opções

Escolha o menu acima

Bloco

Todos os blocos

Etapas

Selecione um bloco

Passos

Selecione uma etapa

Detalhes do passo

Texto, tipo de resposta e opções

Destinos

Verdadeiro / falso · próximo passo

Funções

Tabelas disponíveis para buscas e funções prontas (quase endpoints) reutilizáveis em blocos ou pelo bot.

Tabelas disponíveis

Cadastre tabelas do banco para usar em buscas ou ao criar funções.

JOINs são definidos na criação da função (Nova função), não aqui.

IDTabelaTítuloOrdem

Editar instância ativa

Funções prontas

Funções completas com busca configurada. Use em blocos (em vez de montar busca manual) ou deixe o bot chamar automaticamente (ex: usuário manda só CPF).

ChaveTítuloTabelaTrigger

Modelos de dados

Conjuntos de campos reutilizáveis para confirmações e mensagens. Ex.: modelo "paciente" com nome, CPF, data de nascimento — uma vez definido, use em qualquer etapa de confirmação com modelo_chave: "paciente" e no texto use {payload._modelo_paciente}.

Modelos

Carregando…

Campos para listas WhatsApp

Mapeamento de campos ao exibir resultado de função em lista interativa. Define qual campo usar para id, título, descrição. Se a função não estiver aqui, o sistema usa fallback padrão. Execute scripts/fluxo-lista-campos.sql se a tabela não existir.

Novo / Editar mapeamento

Título alternativos: vírgula separada. Se o campo principal estiver vazio, tenta o próximo. Ex: nomepaciente,nome,name

Mapeamentos cadastrados

Carregando…

Contatos

Defina a fonte (query, endpoint ou bloco). Em baixo, as variáveis do sistema ligam a resposta ao nome na lista de Atendimento e Fila.

1. Fonte de dados

Ordem: identificações do bot e sessão → fonte principal abaixo.

2. Variáveis do sistema

Alimentam display_name na API — nome em Atendimento e Fila.

VariávelUsoCampo
display_nameNome na lista
phoneMatch WhatsApp
busca_paciente_rawPayload do bot
…nomeSubcampos sessão

3. Testar

Filas de atendimento

Departamentos do fluxo (fila_atendente) e etiquetas na lista de conversas. id_externo é opcional (integração).

Destino fila_atendente com id da fila ou {"fila_chave":"sua_chave"}.

Nova fila

Config — horário das filas

Fora da carga horária o paciente entra na fila (próximo plantão) e recebe a mensagem configurada abaixo, em vez do texto padrão de encaminhamento.

Dias da semana (0=domingo … 6=sábado)

Horário por fila (opcional)

Marque horário próprio para substituir o horário global. Mensagem vazia usa a global.

Atendentes

Lista todos os usuários ativos do e-prontu da sua unidade. Vincule quem atende no WhatsApp (mesmo e-mail do login). A fila define o que aparece em Aguardando / Atendimento.

Fila (aguardando)

Contatos aguardando atendente. Nomes aparecem se a identificação estiver ativa em Pacientes.

Tickets

Tickets do e-bot (Meta direto). Status: aguardando, atendendo, resolvido.

Carregando…

Pré-agendamentos

DataPacienteCPFEspecialidadeMédicoData/ HoraStatus

Agendamentos

Consultas da agenda clínica (e-prontu). Use os filtros para refinar por período, status e unidade.

Resumo rápido
Carregando…
ProtocoloDataHoraPacienteProcedimento ProfissionalUnidadeStatusWhatsApp
Carregando…

Agendamentos confirmados

Consultas com status V ou confirmação registrada via WhatsApp.

ProtocoloConsultaPacienteProfissionalUnidade Confirmado emVia WhatsApp
Carregando…

Filtros da agenda

Preferências padrão ao abrir Agendamentos e Confirmados. Salvas no e-bot (não alteram o e-prontu).

P=Reservado, N=Agendado, V=Confirmado, D=Cancelado, A=Atendido

Cron / fila campanhas (Flutter)

O app Flutter enfileira em bioma.campanha_bot_*; o e-bot chama periodicamente o campanhaBotDisparo/processarFila no PHP até zerar pendentes. PM2 mantém este processo ativo.

Carregando…

Logs runtime (Node)

Terminal em tempo real do processo e-bot (equivalente ao cmd local). Atualização automática via stream; últimas ~1000 linhas em memória (reinício do serviço zera o buffer).

Aguardando…
Carregando logs…

Disparos automáticos

Fluxo avançado: 1) criar listas2) criar eventos3) configurar automações.

1) Listas de disparo

Carregando listas...
Carregando conversas...

2) Eventos (o que será enviado)

3) Automação (lista + evento + trigger)

Disparos cadastrados

Serviços automáticos

Cada card é um processo montado pela TI (fonte SQL + templates). Na pré-visualização, filtre a tabela, crie sub-serviços (manual ou automático) e ative/pause cada um na lista abaixo da SQL gerada. Ao criar um sub-serviço, templates e parâmetros do formulário são congelados naquele momento — alterar o processo pai não muda os sub-serviços já criados. Placeholders {{…}} na SQL geram campos de configuração automaticamente (só os que existem na query).

Atendimento

Ajuda e alertas (som / notificação)

Lista de contatos que interagem com o eBot. Uma conversa por número (com ou sem 9º dígito). Som e notificação só disparam para a fila do seu cadastro (tipo User em Atendentes); Admin ouve todas. Não lidas: abrir a conversa não marca como lida — use "Marcar como lida" ou "Iniciar atendimento".

CAMPANHAS VIGENTES
Carregando campanhas…
Selecione um ticket para começar a conversar

Escolha um contato na lista à esquerda.

Config API

Credenciais para integração com Meta (WhatsApp). Podem ser preenchidas aqui ou no arquivo .env. O valor salvo aqui tem prioridade.

Meta (WhatsApp Cloud API)

Dados obtidos no painel do app em developers.facebook.com → seu app → WhatsApp.

Onde: você inventa essa string. Use a mesma no Meta em WhatsApp → Configuração → Verificar token.

Onde: WhatsApp → Introdução (Gerar token de acesso) ou Configuração → Token permanente.

Onde: Configurações do app → Básico → Chave secreta do app.

Onde: WhatsApp → Introdução → Enviar e receber mensagens → número De → Identificação do número de telefone.

Onde: Business Manager → Contas do WhatsApp → ID da conta.

Meta da Prix (produção)

Conta WhatsApp da Prix (produção). Lista templates e variáveis no monitoramento com canal Prix. O envio continua pela API Prix.

Token com permissão de leitura nos templates da mesma WABA da Prix.

Phone number id do número de produção (mesmo da conexão Prix).

ID da WABA de produção, se a resolução automática falhar.

Integrações (hub)

Configure o e-bot como interlocutor central: recebe webhook da Meta, processa internamente e repassa para Prix e outros endpoints externos.

Interlocutor principal

Obs.: para evitar loop, payloads já repassados pelo hub (header X-Ebot-Hub-Forwarded: 1) não são reencaminhados novamente.

Integrações cadastradas

Logs da integração selecionada

Selecione uma integração para ver os logs.

Integração IA

Use um modelo (Llama/Ollama ou API compatível) para auxiliar o fluxo e interpretar o contexto das mensagens. A IA entra quando não houver match no menu ou conforme a opção abaixo. O sistema envia automaticamente a estrutura de menus (opções e destinos) para a IA; use os exemplos abaixo para “treinar” respostas comuns.

Ligar / Desligar IA

Com a IA desligada, ela não será usada na conversa nem na caixa "Solicitar à IA" abaixo.

Solicitar à IA

Digite o que você quer que a IA implemente. O sistema envia automaticamente o que a IA precisa (estrutura atual do bot, formato JSON aceito). A IA responde em JSON e o sistema aplica na hora (cria rascunhos). Você só vai em Rascunhos (IA) testar e aprovar.

Ex.: "Crie um menu para identificação e cadastro de paciente" → a IA gera menu, bloco e funções; tudo vira rascunho para você revisar. Para fluxos grandes, aumente Max tokens na Configuração abaixo.

Quando ativo, a IA vê as mensagens anteriores e você pode responder "sim", "crie o fluxo", etc. Use "Limpar conversa" para recomeçar.

Cada envio é um pedido independente. Se a IA perguntar algo, digite o pedido completo na próxima mensagem.

Histórico da IA

Rascunhos e ideias que a IA já criou ou registrou. Use os links para ir direto à seção de revisão.

Carregando…

Configuração

Ollama local: http://localhost:11434. API externa: URL completa do endpoint (ex.: https://api.openai.com/v1/chat/completions).

Instrução fixa que define o papel da IA (ex.: “Você auxilia o bot. Responda curto. Se identificar a opção do menu, termine com [OPCAO:valor].”).

Uma linha por exemplo: mensagem do usuário|opção. A IA usa esses exemplos para interpretar melhor. Ex.: quero agendar|1, qual meu exame|2.

Chat com IA

Converse com a IA para criar fluxos, menus, blocos, funções, ideias e regras de palavra-chave (Start). Abaixo de cada resposta, itens criados aparecem como chips clicáveis (abrem o JSON).

Config (afeta este chat)

URL Modelo

Exportar fluxo atual (banco)

Fonte de verdade = PostgreSQL. Os arquivos FLUXO_*.json no Git podem estar desatualizados. Use este export para backup e para ver exatamente o que o bot está rodando hoje (menus, blocos, etapas, passos, funções).

Importar / Aplicar JSON como rascunho

Cole aqui o JSON completo (ex.: FLUXO_BIOCLINICA_IA.json) e clique em aplicar. O sistema executará como se fosse a IA e criará tudo como rascunhos para você testar e aprovar.

(reaplicar: altera só o que já existe e coloca em rascunhos para aprovar)

Conversa

Interpretar (menu)

Quando o usuário digita algo que não bate com nenhuma opção do menu, a IA pode interpretar a intenção e mapear para uma opção. Configure aqui os toggles que afetam essa função.

Config (interpretar mensagem no menu)

Abrir Chat com IA para criar fluxos e regras.

Start (palavras-chave)

Regras aplicadas em qualquer estado: quando o usuário digitar a palavra-chave, o bot redireciona para o destino. A IA pode criar ou sugerir regras — use o Chat com IA e peça ex.: "Crie regra: palavra 'sair' → encerramento sair".

Regras atuais

Carregando…

Editar no Fluxo (árvore) ou Chat com IA para pedir criação de regras.

Logs 2.0 — Mapa de execução

Debugger visual do fluxo: cada etapa muda de cor conforme o motor passa por ela. Filtre por telefone, bloco e número da execução. Os Logs runtime e Logs WhatsApp (v1) continuam disponíveis no menu.

Verde — sucesso Vermelho — erro Azul — aguardando usuário Laranja — SQL Roxo — API Cinza — não executado

Logs

Histórico do WhatsApp: texto completo em bolhas (saída à direita, entrada à esquerda). Templates Meta mostram nome + parâmetros do corpo quando o JSON estiver no log.

DataTelefoneDireçãoMensagem