Changelog
Acompanhe todas as atualizações, melhorias e correções do OmniWhats. Cada versão documenta o que mudou para que você esteja sempre por dentro.
Versão do sistema
v1.3.1
Versão que está no ar agora
|
Novidades
- Chat do app OmniTicketz agora aceita figurinha, reação, edição, exclusão, resposta citada, encaminhamento e envio de contato — está no mesmo nível do WhatsApp e do Instagram. Antes era leitura apenas
- O contato do app OmniTicketz agora fica separado do contato de WhatsApp do mesmo cliente. Historicos não se misturam mais — cada conversa mora no seu canal
- Campanhas pelo canal do app OmniTicketz: dispare envios em massa via notificação do app, sem depender de WhatsApp. Ideal para avisos que não precisam de telefone e não cobram por conversa
- Excluir uma conexão agora é reversível: a conexão fica marcada como removida da lista mas o histórico permanece; se quiser, é possível migrar todas as conversas de uma conexão pra outra (útil pra trocar QR Code por API Oficial mantendo o histórico do cliente)
- Botão "ver todos / só os meus" na Caixa de entrada também para operadores de setor: antes só admins tinham. Cada operador escolhe se enxerga só as próprias ou todas do setor dele
- Aba "Atendendo" na Caixa de entrada passa a mostrar também as conversas aguardando (sem dono) do próprio setor do operador — antes escondia por engano
- Rótulo do contato usa o nome do titular do OmniTicketz quando existe, em vez de só o nome salvo na conversa
- 🔌 [API] Canal `ticketz_app` (chat do app OmniTicketz) ganhou capacidades completas: envio de figurinha, reação a mensagem, edição, exclusão, resposta citada, encaminhamento e envio de contato. As chamadas existentes de mensagem passam a aceitar esses tipos quando o canal for `ticketz_app`
- 🔌 [API] Campanhas aceitam agora `channelType=ticketz_app`. O filtro de audiência troca a exigência de telefone por identificador do cliente OmniTicketz. Envio é roteado internamente por notificação do app
Melhorias
- Filtros na lista de conexões aparecem a partir de 2 conexões (era 4). Busca por nome/identificador, filtro por tipo e por status, tudo sem acento e sem caso
- Sincronização manual do OmniTicketz na tela de clientes agora percorre a base inteira automaticamente em lotes, mostrando o progresso, e passa a sobrescrever e-mail, telefone e aniversário (antes só preenchia campo vazio)
- Sincronização automática do OmniTicketz não relê mais toda a base a cada rodada. Empresas com dezenas de milhares de pedidos passam a ter passe rápido e sem cortar a cauda
- Detalhe do cliente OmniTicketz ganhou foto, aniversário e um botão "Abrir conversa" que já leva pra conversa mais recente do cliente (antes o botão às vezes caía em vazio)
- Resposta a mensagens de lista do WhatsApp mostra o texto escolhido pelo cliente em vez do código interno. Se você usa fluxos com listas de botões, o atendente lê agora a opção real
- Recusa do WhatsApp ao conectar mostra o motivo em texto ("confira o número ou conecte pelo QR Code") em vez de "Erro 500"
- Banner "possível shadowban" foi removido da tela de conexões porque confundia mais do que informava. O status de saúde continua visível em cada conexão
- Modelos de campanha foram reorganizados (modal e lista mais claros)
Correções
- Operadores sem conexão vinculada voltam a ver conversas: em algumas empresas grandes, novos operadores criados sem escolher conexão específica ficavam com a tela zerada. Corrigido — sem escolha explícita, o operador vê tudo do seu setor
- Sincronização longa do OmniTicketz não trava mais no meio: passes que passavam de 5 minutos podiam reiniciar sozinhos e refazer tudo. Corrigido
- Histórico do chat do app OmniTicketz não mistura mais com WhatsApp do mesmo cliente. Antes carregava todas as mensagens do contato juntas — agora cada canal mostra só o próprio histórico
- Nome/telefone/e-mail do contato do app são agora preenchidos quando faltam. Antes um contato criado sem nome ficava sem nome pra sempre
- Recuperação de histórico do WhatsApp não interrompe mais no meio em contas com muitas conversas antigas. Correção resolveu perda ocasional de mensagens antigas ao (re)conectar
- Chat interno da equipe volta a funcionar quando o admin está "logado como" outro usuário — antes quebrava com erro de referência
- Menos alertas falsos de "aplicação travada" quando uma atualização derruba um trabalho em andamento: agora só é reportado quando é travamento real
Novidades
- Filtro por conexão em painéis e relatórios: se sua empresa tem mais de uma conexão (WhatsApp, Instagram, Facebook), aparece um seletor no topo pra escolher "Todas" ou uma conexão específica. Vale pra Painel, Analytics, Anúncios, Atendentes, Setores, Canais, Fluxo de Mensagens, Origem, Produtividade, Presença, Palavras-chave, IA Observadora, Base de Conhecimento, Avaliações e Relatórios personalizados. Empresas com só 1 conexão continuam vendo tudo como antes (sem mudança visual)
- Whitelist de conexão por atendente: em Configurações → Equipe, cada atendente pode ser limitado a ver apenas conversas de conexões escolhidas. Padrão continua "todas as conexões" pra quem já existia — não muda nada até o admin decidir restringir
- Whitelist de conexão por setor: em Configurações → Setores, o mesmo. Útil pra separar times (ex: setor Comercial só vê o WhatsApp Cloud da empresa, setor Suporte só vê o Instagram)
- Negociações filtráveis por conexão: no CRM → Negociações agora dá pra ver só os deals originados naquela conexão. Backfill automático preenche a conexão pela última conversa de cada contato — deals sem conversa nenhuma continuam aparecendo em "Todas"
- Nova permissão "Gerenciar campanhas de e-mail" separada de "Gerenciar campanhas": Email Marketing e SMS não pertencem a uma conexão específica, então usam esta permissão dedicada. Ajuste no perfil dos atendentes se quiser restringir só um dos dois
- 🔌 [API] Todos os relatórios, painéis e endpoints de comercial aceitam agora o parâmetro `?channelIds=uuid1,uuid2` pra filtrar por uma ou mais conexões. `?channelIds=all` ou omitir traz tudo. Documentado internamente
- 🔌 [API] Novo mecanismo de whitelist server-side: usuários sem permissão global recebem automaticamente a interseção entre o que pediram e o que estão autorizados a ver — mesmo em chamadas diretas à API. Ninguém contorna filtro colocando `channelIds=all` na URL
Melhorias
- Botão "Atualizar agora" no admin quando sai versão nova: antes o Service Worker do PWA às vezes assumia a versão nova sem avisar, misturando bundles em memória (o botão parecia "não funcionar"). Agora o comportamento é determinístico — clicou, recarrega em até 3 segundos com a versão nova limpa
- Guardião de versão no navegador: quando o servidor tem uma versão nova e a aba do admin ainda está na antiga, a página recarrega sozinha em vez de tentar buscar arquivos que já sumiram. Elimina o erro "Cannot read properties of undefined" que aparecia em navegações do menu depois de uma atualização
- Reabrir conversa expirada com template: o botão agora consulta a janela real de mensagens Meta antes de mostrar os templates disponíveis (antes usava só o tipo do canal como aproximação, o que às vezes escondia templates válidos ou mostrava inválidos)
- Preenchimento de variáveis nos templates: se o envio de um template com {{contato.nome}} falha e o sistema tenta de novo automaticamente, agora o retry preenche as variáveis corretamente (antes mandava o placeholder cru pra Meta, gerando outra falha)
- Consulta de templates da Meta ficou mais rápida: as definições são reaproveitadas por 5 minutos por conexão em vez de serem buscadas a cada envio
Correções
- Descadastro de e-mail funcionando: o link "cancelar inscrição" nas campanhas de Email Marketing estava silenciosamente falhando — o contato via a tela de "descadastrado" mas continuava recebendo. Corrigido — agora o descadastro efetivamente para o envio na próxima campanha
- Wiki e Landing Page voltam a atualizar: as páginas geradas estaticamente (/wiki, home pública) às vezes ficavam presas na versão antiga porque a regeneração automática falhava por permissão de arquivo. Agora regeneram normalmente
- Recuperação de mensagens do OmniTicketz que caíram no meio: se a conexão do WhatsApp cai enquanto uma mensagem/mídia está saindo pelo OmniTicketz, o sistema agora agenda re-tentativa automática com espera crescente em vez de dar o envio como definitivamente falhado. Antes, uma mensagem perdida ficava perdida
- Erro de webview do Instagram no atendimento: o iframe do Instagram (para visualizar o post que gerou o comentário) parava de carregar em algumas contas por classificação errada de origem. Corrigido
- Erros 404 em massa no atendimento: atendentes que pertenciam a um setor específico às vezes recebiam notificações de conversas de outros setores via tempo real, e ao clicar recebiam 404. Motivo: o cliente não replicava a regra de visibilidade do servidor. Corrigido com nova biblioteca de visibilidade compartilhada, testada
- App do OmniTicketz voltando a autenticar: o intermediador estava reescrevendo a rota de sessão do app antes dela ser interpretada. Corrigido — o app volta a fazer login
- Notificações duplicadas no celular do admin (via ntfy) quando a rotina de auto-recuperação disparava duas vezes: eliminadas
- Alertas falsos de "memória alta" ou "GC longo" no monitoramento: os detectores passaram a considerar o PISO da janela em vez do teto, e valores muito baixos deixam de gerar alerta — 2 falsos positivos por dia eliminados
Novidades
- Novo canal de atendimento pra apps nativos (Android/iOS): quando o cliente do parque usa o app do OmniTicketz, ele agora tem uma aba de Chat que fala direto com a caixa de atendimento — sem depender de WhatsApp, sem custo por conversa, sem janela de 24h da Meta. Iniciativa do parque livre a qualquer momento
- Reabrir conversa expirada com template: quando o cliente sumiu por mais de 24h no WhatsApp, agora o atendente reabre com um clique escolhendo um template aprovado da Meta. Antes exigia mensagem manual dentro da janela ou o próprio cliente escrever primeiro
- Sincronização incremental para apps offline: se o cliente ficou dias sem internet, o app dele traz só as mensagens que faltam quando reconecta (não baixa a conversa toda de novo). Histórico local no aparelho funciona igual ao WhatsApp
Melhorias
- Ordenação de mensagens mais confiável em qualquer canal: passamos a carimbar o instante exato de cada gravação (não mais o início da transação), então mensagens que chegam quase ao mesmo tempo ficam na ordem correta
Correções
- Widget de chat no site: uma pessoa que soubesse o telefone de outro contato conseguia receber um token e ler/reabrir a conversa alheia. Corrigido — só quem iniciou a conversa continua tendo acesso. Nada de sensível foi exposto no meio do caminho (não temos indicativo de exploração), mas ficaram sem esse risco
PróximoPróximas atualizações em breve...