NAiOSOmni
omnichatv0.8.1Liga o WhatsApp e o Telegram ao NAiOS. Painel com KPIs e gráficos, caixa de entrada unificada, resposta automática com IA e ferramentas, agentes verticais, modo de simulação para demonstrações e multi-tenant.
Descrição
O OmniChat transforma qualquer canal de mensagens numa interface para o NAiOS. Liga o WhatsApp Pessoal (Baileys, por QR), a WhatsApp Business Platform oficial (Meta Cloud API) ou um Bot do Telegram. Inclui um painel com KPIs calculados automaticamente e gráficos (linhas, donut, heatmap), caixa de entrada unificada em tempo real (SSE), resposta automática com IA e chamada de ferramentas, 14 ferramentas (gerar/editar imagens, transcrever áudio, enviar email, consultar a KB, criar apresentações/landing pages/formulários, guardar encomendas estruturadas...), 5 modos de canal (fechado, whitelist, blacklist, cliente, gateway de aquisição), modo SIMULAÇÃO para demonstrações em que o cliente escolhe que agente testar, comandos no chat contigo mesmo (/on, /off, /pause, /ai), autoligação via /claim para que os teus clientes registados usem o seu próprio contexto NAiOS, onboarding por gateway com início de sessão por magic-link, AGENTES VERTICAIS: bots especializados (encomendas ao domicílio, leads imobiliários, reservas de restaurante, etc.) com prompt + variáveis do negócio + esquema JSON de captura, gerados por um assistente de IA, com CRM integrado, recuperação automática do worker após perda de sessão e reconexão sem voltar a vincular quando as credenciais continuam válidas.
Funcionalidades (26)
Vincula o teu número como dispositivo por QR ou código. Suporta grupos. Worker process isolado.
Ligação oficial à Meta Cloud API. Risco zero de bloqueio, modelos, webhooks com HMAC verificado.
Bot oficial via Bot API. Token do @BotFather, sem riscos, gratuito. Suporta grupos e multimédia.
Lista de conversas + conversa + compositor. Envio por SSE, multimédia visual (imagens, áudios, vídeos).
Ciclo de chamada de ferramentas: 12 ferramentas prontas (gerar/editar imagens, áudios, KB, email, apresentações...).
Indicador de escrita proporcional ao comprimento, variação aleatória, pausa após resposta manual do proprietário.
Fechado, whitelist, blacklist, cliente, gateway. Configurável visualmente.
Transforma o teu canal num funil: qualquer desconhecido convidado a criar uma conta NAiOS gratuita com magic-link.
Os utilizadores registados podem vincular o seu WhatsApp com /claim email + /code. O bot usa O SEU prompt e OS SEUS tokens.
Substituição por par: forçar ligado/desligado, prompt personalizado, pausa, tudo a partir da interface.
Editor visual por dia com intervalos horários, modo de ausência com mensagem personalizada.
Quotas por mensagem/minuto/hora/dia, deteção automática de rajadas, protege contra bloqueios.
/on /off /pause /status /test /prompt /ai /help a partir do teu próprio chat comigo mesmo.
6 modelos: restaurante, suporte, imobiliária, salão, vendas B2B, assistente pessoal.
Endpoint com totais e estatísticas por canal, erros, mensagens/dia, sessões ativas.
Cria bots especializados (encomendas, leads, reservas) descrevendo-os em linguagem natural — a IA gera o prompt, os campos e o email.
As encomendas são guardadas na BD com JSON Schema. Vista de CRM com filtros, estados, edição, notas, exportação para CSV.
Aviso por email + WhatsApp para o telefone vinculado quando chega uma encomenda nova. Confirmação automática ao cliente.
Cada novo registo dispara um POST assinado com HMAC-SHA256 para o teu URL externo (Zapier, Make, n8n, CRM). Retry exponencial + registo de entregas.
4 colunas (novo / contactado / concluído / arquivado) com arrastar e largar entre estados. Alternância tabela/Kanban memorizada.
Diagrama interativo gerado por IA a partir do prompt — mostra turnos, decisões, ferramentas e campos capturados. Zoom/deslocamento + exportação SVG.
Separador principal com KPIs, gráficos (Chart.js: linhas/donut/barras + heatmap D3), atividade recente unificada e verificação de estado com ações.
Página inicial com KPIs calculados automaticamente (mensagens, encomendas, conversão, tokens) + gráfico de linhas dos últimos 30 dias de entradas/saídas + donut de estados + heatmap hora×dia + principais canais/agentes + alertas de saúde.
Coloca um canal em modo demo: o cliente escolhe entre os agentes que habilitares. 5 textos editáveis, comandos /exit /cambiar /menu /help, registos marcados com a flag is_simulation.
Após perda de sessão do WhatsApp Web (fecho do lado do servidor, limite de 4 dispositivos, reinício do servidor), o worker volta a arrancar sozinho reutilizando o auth_blob guardado. Botão 'Reconectar' explícito se a recuperação automática falhar.
Seletor de contactos integrado: agenda sincronizada (wa-personal) ou pares já vistos. Na Caixa escolhes primeiro o canal e depois o contacto; abres a conversa vazia pronta para escrever.
Changelog
- Pontos de integração para outros módulos (contrato com Campanhas): listChannelsFor(userId) devolve os canais do utilizador (próprios + partilhados com permissão de resposta) com kind/label/phone/connected; sendFor(userId, { channelId, to, text?, template?, meta? }) envia por um canal do utilizador normalizando o destino para o par de cada driver (telefone → JID em wa-personal, dígitos em wa-cloud, chat_id@telegram) e devolve { ok, messageId, channelKind } ou { ok:false, error: bad_args|no_channel|not_connected|forbidden|needs_template|transport }. Nunca lançam exceções.
- wa-cloud: o erro 131047 (fora da janela de 24 h) é reportado como needs_template; com template { name, language, params[] } envia-se o modelo da Meta.
- O envio manual da caixa e sendFor partilham o mesmo caminho interno (_dispatchOutgoing + _attributeOutgoing): registo na conversa e atribuição sent_by_user_id idênticos; sendFor acrescenta ainda uma entrada no registo do canal (categoria send) com o módulo de origem.
- Novo teste tests/omnichat/test-send-seam.js (driver simulado).