New features· 11 items

Version 1.49.0

The release notes are written in Portuguese, the language DeskcommCRM is built in. Your browser can translate them, or you can open this page already translated.

Open in Google Translate

Added6

A base de conhecimento só reprepara o material que mudou, e ganha o botão "Preparar tudo de novo"

No acervo de conhecimento (IA › Conhecimento), o botão "Preparar tudo de novo" coloca todos os materiais na fila de uma vez: primeiro o que ainda não está pronto, depois o resto. O material cujo conteúdo não mudou desde a última preparação é pulado, sem gastar a chave de IA, e continua marcado como pronto. Um cartão novo mostra quantos materiais estão prontos, quantos ainda estão sendo preparados e quantos falharam. Nos roteiros de atendimento, a resposta que o cliente dá a uma pergunta já encerrada por falta de resposta agora é gravada, em vez de se perder. E o operador de IA passa a receber o identificador real do negócio do contato, em vez de inventar um. A atualização acrescenta uma coluna ao banco (migration 0409) e não pede nenhuma ação.

Contribuição de @vgamkt (#1130).

No canal oficial com coexistência, as respostas dadas pelo app WhatsApp Business aparecem na conversa

Quem usa o mesmo número no app WhatsApp Business e na API oficial (coexistência) passa a ver no CRM as mensagens que a equipe envia pelo celular. Elas entram na conversa como resposta de uma pessoa fora do CRM, e o agente de IA pausa naquela conversa para não responder por cima, como já acontecia no canal por QR. Para ativar, marque o campo smb_message_echoes nos webhooks do app na Meta; a aba API Oficial (Meta) já o lista entre os campos a assinar. Quem não usa coexistência não precisa fazer nada.

Contribuição de @tratham-oficial (#1633).

O Testar do agente consegue consultar o banco de dados conectado

Na aba Teste do agente, as capacidades "Ver as tabelas do banco conectado" e "Buscar dados no banco conectado" eram sempre recusadas com "Esta consulta precisa de um contato real autorizado", e o agente respondia "vou confirmar e te retorno", o que parecia erro de configuração da conexão. Agora o Teste executa as duas consultas como o atendimento real: só leitura, com os mesmos limites de linhas, filtros e tamanho da conexão, e só quando o módulo de banco externo está ligado e há conexão ativa.

Contribuição de @webtecnica (#1636), a partir do relato de @caicoia (#1608).

Ligar e desligar o agente pelo celular (#on/#off)

O atendente pode pausar e devolver o atendimento automático de uma conversa digitando #off e #on no próprio WhatsApp do celular vinculado à organização. Vale por conversa, só quando a mensagem inteira é o comando, e a pausa dura até alguém mandar #on ou apertar "devolver ao automático" na tela. O comando é apagado do WhatsApp do cliente logo depois de aplicado, para não aparecer como fala do atendimento. O recurso se liga por agente, no cartão novo "Comandos pelo celular" da tela do agente. Com ele ligado, responder o cliente direto pelo celular também pausa a IA até o #on. Desligado, que é o padrão, nada muda: #on e #off são texto comum e a pausa por resposta no celular continua acabando sozinha em 60 minutos. A atualização não pede nenhuma ação.

Contribuição de @vgamkt (#1130).

Link direto para cada conversa da Inbox

Ao abrir uma conversa, o endereço da Inbox passa a incluir o identificador dela. O atendente pode copiar esse link para a equipe; quem tiver acesso à conversa abre o mesmo atendimento, mesmo que ele esteja fora do filtro atual.

Contribuição de @raphaelmartins (#1629).

A Requesty entra como empresa de inteligência artificial do atendente

A Requesty agora aparece na lista de empresas de IA, junto de Anthropic, OpenAI, Google, OpenRouter e DeepSeek. Dá para cadastrar a chave em "IA › Credenciais" ou no passo de treinar durante a instalação, escolher o modelo na tela do assistente e publicar. O agente atende pela Requesty do mesmo jeito que atende pelas outras, com ferramentas (cria o lead, move o card) e com a mesma conferência de chave ao cadastrar.

Como a OpenRouter, a Requesty é um roteador: uma chave só dá acesso a modelos de vários fabricantes, com ids no formato fabricante/modelo (por exemplo openai/gpt-4o-mini). Quem precisa manter o tráfego na Europa aponta o endpoint próprio do painel para https://router.eu.requesty.ai/v1.

O catálogo já vem com cinco modelos (GPT-4o mini, GPT-4.1 mini, Gemini 2.5 Flash, Claude Haiku 4.5 e Claude Sonnet 4.5), e a tela escolhe o mais barato que dá conta quando você deixa em branco. Nada muda nas instalações que já usam outro provedor: a opção nasce disponível, não ligada.

Contribuição de @Thibaultjaigu (#1638).

Fixed5

Alterar um ajuste do agente de IA pela API não apaga mais os outros ajustes

Uma alteração pela API (PATCH /api/v1/ai/agents/:id) que mandava só parte dos ajustes do agente, como a temperatura ou a quantidade de trechos da base de conhecimento, gravava os valores padrão por cima de todos os ajustes que não vieram na alteração. Mudar só a busca na base, por exemplo, voltava a temperatura para o padrão. Agora só muda o que foi enviado, e o resto fica como estava. O cartão novo de comandos pelo celular grava por esse mesmo caminho, e por isso já nasce sem o defeito.

A atualização para quando o banco não recebe a versão nova, em vez de dizer que deu certo

Quando a atualização do banco terminava com um erro que tentar de novo não resolve (o caso comum é a conexão do .env não ser a dona do banco: permission denied ou must be owner), o update.sh avisava no meio da saída e seguia: trocava o app pela versão nova por cima de um banco pela metade e terminava com sucesso. Na atualização automática ninguém via o aviso. Agora a atualização para nesse ponto, depois de conferir as regras de isolamento. O app segue na versão anterior, a tela registra a rodada como falha e o log diz o que fazer: num Supabase próprio, declarar SUPABASE_DB_ADMIN_URL no .env e repetir com bash hostgator-setup-kit/update.sh --to <versão> --force. Quem tem a conexão dona do banco não vê diferença. Disputa com o banco ocupado continua sendo repetida e aceita como antes.

Contribuição de @hiro-nikaitou (#1640).

O backup diário do banco usa a conexão do dono, e não sai mais incompleto

O scripts/backup-db.sh (o backup que a documentação manda pôr no cron) agora usa a conexão do dono do banco (SUPABASE_DB_ADMIN_URL) quando ela existe, com a conexão do app como reserva — a mesma ordem que o backup do kit já seguia. Antes, numa instalação com role de app menor, o dump salvava só o que essa role enxergava e terminava sem erro. Quem tem só SUPABASE_DB_URL não precisa fazer nada: o backup continua igual. Contribuição de @hiro-nikaitou (#1637).

O primeiro nome do contato passa a sair nas automações de WhatsApp e nos modelos montados pela integração

Um modelo com a variável {{primeiro_nome}} saía com o espaço vazio ("Olá, !") quando era enviado por uma automação de WhatsApp ou montado pela ferramenta de integração crm_render_message_template, embora saísse certo quando inserido na conversa. Agora vale a mesma regra da conversa e das campanhas: a primeira palavra do nome do contato. Sem nome cadastrado, a variável continua listada como lacuna para quem montou o modelo.

Contribuição de @hiro-nikaitou (#1635), a partir do relato de @franceschini-lucas (#1616).

O agente espera a foto ficar legível quando o cliente manda a foto e depois escreve

Quando o cliente mandava uma foto (um comprovante, por exemplo) e logo depois escrevia a pergunta em outra mensagem, o turno do agente saía pela mensagem de texto sem esperar a leitura da foto, e o agente pedia ao cliente que descrevesse uma imagem que o sistema terminava de ler segundos depois. Agora a espera olha a conversa inteira: se há mídia recebida ainda sendo lida, o turno aguarda até o mesmo teto de antes, contado a partir da hora em que a mídia chegou. Mídia que o sistema não vai ler (vídeo com leitura desligada, arquivo que não chegou ao storage) não segura a resposta.

Contribuição de @deskcommopp4s-cmd (#1594).

← Back to all releasesView on GitHub