New features· 10 items

Version 1.61.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

Added3

Módulo opcional para quem vende para empresas — Empresas, Pessoas que decidem e importação de planilha

Quem administra o servidor ganha em Sistema › Módulos opcionais a chave "Empresas e pessoas (venda para empresas)", desligada por padrão. Ligada, o CRM de cada empresa passa a ter o cadastro de Empresas (razão social e CNPJ, com os dados públicos preenchidos pela BrasilAPI), as Pessoas que decidem dentro delas, com vários telefones, e a importação de planilha CSV ou Excel (.xlsx) que cria empresa, pessoa e contato de uma vez. As três telas ficam em CRM › Ver tudo. Desligada, nada muda: as telas, o menu e as rotas não existem, e nenhum CNPJ sai do servidor. Anonimizar um contato também apaga o nome da pessoa ligada a ele e as linhas de planilha que falavam dela, e o pedido de acesso aos dados passa a entregar essas informações. Não há ação para quem opera a VPS.

Contribuição de @renatofortal (#1621, entrou pelo recorte #1860).

Grupos de clientes no chat, com resposta dos atendentes

Em Conexões, o botão Grupos de cada número conectado por QR Code lista os grupos em que ele está. Cada grupo tem uma chave, e todos vêm desligados. Os grupos ligados aparecem no chat com a etiqueta Grupo, mostram quem mandou cada mensagem e podem ser respondidos pelos atendentes como qualquer conversa. Grupo sem atendente fica na fila das pessoas (Aguardando atendente), nunca na aba do automático, e um grupo fechado volta a abrir sozinho quando chega mensagem nova. A IA nunca responde em grupo, e grupo não vira negócio no funil, não entra em campanha nem em listas de contatos. Só o administrador liga grupos pela tela. Ao ligar o primeiro grupo de um número, o WhatsApp dele passa a enviar as mensagens de todos os grupos para o sistema, que descarta os não escolhidos. Ao desligar o último, tudo volta a ser como antes. Entram só as mensagens que chegarem depois de ligar. Áudio e imagem mandados em grupo ficam guardados, mas — diferente do que já acontece numa conversa individual — não são transcritos nem descritos automaticamente. Um pedido de LGPD de quem já é contato alcança também o que essa pessoa escreveu nos grupos ligados: a anonimização apaga essas mensagens e a exportação as entrega; o participante de grupo que não é contato não tem pedido por esta tela.

Contribuição de @bossprt (#1647).

Módulo opcional de Honorários para escritórios de advocacia

Contribuição de @nsbastosconsultoria (#1578). Um módulo opcional, desligado por padrão: contrato de honorários de cada caso (fixo, êxito ou misto), calendário de parcelas, e o agente de IA sabendo responder sobre os dois.

Instalar. Quem administra a instalação vai em Módulos, no menu do painel da instalação, e instala "Honorários" com um clique. As tabelas do módulo só nascem nessa hora (ADR-0002): quem não instala não carrega tabela nenhuma, não vê porta no menu e o agente não ganha capacidade nova.

Usar. A tela Análise › Honorários registra o contrato e as parcelas. Pagar uma parcela lança o valor no caixa da empresa, na conta escolhida, junto com o resto do dinheiro que entra. Um clique duplo em "Pagar" lança uma vez só, e a conta tem de ser da própria empresa. Toda a equipe vê os contratos; criar, alterar e apagar é de gerente ou administrador, e uma parcela paga não se apaga, nem o contrato que a tem.

A IA. O assistente ganha "Ver o contrato de honorários" e "Ver as parcelas", para confirmar o modelo de cobrança e o status de pagamento em vez de estimar um número.

LGPD. O pedido de acesso do titular traz os contratos e as parcelas dos casos dele. Os contratos não guardam dado pessoal (só valores e o vínculo com o caso), então a anonimização não tem o que apagar neles.

Changed4

O README cita a Requesty entre os provedores de IA

A Requesty é provedor do produto desde o #1638, e a linha de IA da tabela de tecnologias do README (português, inglês e espanhol) passa a citá-la. Nada muda no produto nem para quem opera.

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

Logo próprio nas telas de acesso respeita o tamanho do arquivo, até 80 px de altura

O logo da marca própria nas telas de entrada, cadastro e recuperação deixa de ter altura fixa de 40 px. Um logo grande passa a ocupar até 80 px de altura (no máximo 192 px de largura), mantendo a proporção. Um logo com menos de 40 px de altura natural deixa de ser ampliado e passa a aparecer menor do que antes, no tamanho do arquivo: para ter o logo maior, suba em Marca (/admin/marca, a marca da instalação, que é a que as telas de acesso usam) um arquivo com pelo menos 80 px de altura. O logo padrão do produto, usado quando não há marca própria, não muda. Não exige ação para quem não quiser trocar o arquivo.

Contribuição de @vitorlacerdadigital (#1858).

O checkpoint e a abertura do turno saem de inbound-turn.ts para um módulo próprio em abertura/

O arquivo inbound-turn.ts, que concentra o turno de recepção, passou a delegar a dois módulos novos dentro da mesma pasta: abertura/checkpoint.ts guarda o schema do checkpoint, o tipo da linha, a instrução de fechamento, a leitura e a gravação; abertura/ritual.ts guarda o ritual de abertura do turno (ritualBlocks e buildOpeningMessage). O inbound-turn.ts continua importando e reexportando esses símbolos, então quem já os busca por ele — os testes, o follow-up, a resposta de caso, o preview — continua achando os mesmos objetos, sem mudança de comportamento e sem mudança de caminho. A extração é a primeira das três que a issue #636 pede, feita com git mv para o histórico do arquivo acompanhar o módulo novo. Não há ação para quem opera a VPS.

Contribuição de @webtecnica (#1861).

Roteiro de perguntas já concluído não recomeça para o mesmo cliente, a não ser que o roteiro permita

Um roteiro de atendimento que o cliente já respondeu até o fim não volta a fazer as mesmas perguntas quando ele repete a palavra-gatilho, nem quando um roteador de intenção ou o fim de outro roteiro aponta para ele de novo. Antes, repetir a palavra reabria um cadastro já feito. A palavra-gatilho passa a valer para o próximo roteiro que o cliente ainda não concluiu.

Cada roteiro pode escolher o contrário: no início do roteiro, a opção Pode recomeçar para quem já concluiu faz ele começar de novo, útil para roteiros que se repetem, como agendamento. A opção nasce desligada, inclusive nos roteiros que já existem: quem dependia de um roteiro que recomeça precisa ligá-la nele. Um roteiro encerrado por prazo ou interrompido não conta como concluído e pode começar de novo. Não há mudança no banco.

Contribuição de @vgamkt (#1130, entrou pelo #1865).

Fixed3

O guardião do espanhol reprova t() sobre o que o operador digitou

A catraca de i18n passa a reprovar t() aplicado sobre dado que o operador digitou — parâmetro livre de função, não chave de tradução. Foi o defeito do PR 600: "Retorno" virando "Seguimiento". Dado de operador não é chave de dicionário, traduzi-lo muda o dado na tela.

  • 39 sítios reais (35 pares arquivo + expressão) congelados em DADO_DO_OPERADOR_CONGELADO, cada entrada com razão escrita; a lista só encolhe: entrada que deixa de casar com sítio é vermelho.

  • Literal, tabela de módulo e wrapper passa-adireto seguem passando: nenhuma tela legítima começa a reprovar.

  • Os cegos A e B da issue 603 ficam como próximo passo desta mesma entrega.

Contribuição de @webtecnica (#1867).

A nota interna chega na hora para quem pode ver a conversa, e deixa de aparecer para quem não pode

A nota interna (a escrita no modo Nota interna, que nunca vai para o cliente) passa a chegar em tempo real para os demais atendentes. Antes ela só aparecia para os outros quando alguém recarregava a página: o canal ficava aberto, mas a tabela não estava publicada, e nada avisava do erro.

As notas também passam a seguir a mesma regra de visibilidade da conversa. Numa organização com "ver as conversas" em own_and_unassigned (o padrão), o atendente que não pode abrir uma conversa deixa de ler e de escrever notas nela, e quem perdeu a conversa numa passagem de atendimento deixa de ver as notas dela. Antes, qualquer atendente da organização conseguia ler todas. Viewer, manager e admin continuam vendo as notas de todas as conversas que já veem, e o administrador da plataforma continua vendo tudo.

Não exige ação de quem instalou.

Contribuição de @webtecnica (#1868, issue #1863).

Follow-up de silêncio para de mandar mensagem a cada poucos minutos para o mesmo contato

Um fluxo de follow-up disparado por silêncio (ex.: "Triagem parada") reinscrevia o mesmo contato a cada rodada do relógio (1×/min), assim que o envio anterior terminava — em vez de esperar o intervalo de silêncio configurado (ex.: 2 horas) entre uma tentativa e outra. Um contato que nunca respondia recebia uma mensagem nova a cada poucos minutos, indefinidamente — medido numa instalação real: 32 disparos em cerca de 9 horas para o mesmo número, risco real de o número ser marcado como spam pelo WhatsApp. Agora a varredura respeita o intervalo configurado entre o fim de uma tentativa e o início da próxima para o mesmo contato no mesmo fluxo. Ninguém precisa reconfigurar nada.

Contribuição de @nsbastosconsultoria (#1578).

← Back to all releasesView on GitHub