Central de ajuda

Ferramentas do atendimento

Como remover mensagens rápidas de usuários excluídos

Quando o usuário que criou uma mensagem rápida é excluído do sistema, a mensagem perde o vínculo com ele. Na listagem de Comunicação e Marketing → Mensagens Rápidas, a coluna User ID aparece com um tracinho ( - ), e essas mensagens não podem ser editadas nem excluídas pelo painel, nem mesmo por um Administrador. Este artigo mostra como removê-las direto no banco de dados.

Pré-requisitos:

  • Acesso SSH à VPS onde o sistema está instalado.
  • Acesso ao banco de dados, pelo PgAdmin ou pelo terminal (veja Banco de dados - Como acessar).
  • Snapshot da VPS e backup do banco feitos antes de qualquer alteração.

Como funciona

As mensagens rápidas ficam na tabela FastReply do banco de dados. Cada mensagem guarda o ID do usuário que a criou na coluna userId. Quando esse usuário é excluído, o campo fica vazio (NULL), e o painel não tem mais como atualizar nem apagar o registro. A solução é localizar essas mensagens pelo userId vazio e excluí-las pelo banco.

Faça o snapshot e o backup antes de rodar qualquer comando que altere o banco. A exclusão é definitiva e não tem como desfazer pelo painel. O suporte não acessa a base de dados da sua instalação, e essa correção é feita pelo assinante, sob sua responsabilidade. Veja Manutenção e Segurança.


Etapa 1: Acesse o banco de dados

Pelo PgAdmin: conecte-se ao servidor e navegue até Databases > postgres > Schemas > public > Tables > FastReply. Para rodar os comandos das próximas etapas, clique com o botão direito no banco postgres e abra o Query Tool.

Pelo terminal: acesse a VPS via SSH e entre no PostgreSQL com:

docker exec -it postgresql psql -U postgres

O prompt muda para postgres=#, indicando que você já está dentro do banco.


Etapa 2: Confira as mensagens que serão removidas

Antes de excluir, liste as mensagens sem usuário vinculado:

SELECT * FROM "FastReply" WHERE "userId" IS NULL;

O resultado mostra as colunas da tabela, como id, key (o atalho), message, userId e tenantId. Confira se são mesmo as mensagens que você quer apagar.

No sistema v4.0.5.6 ou superior, você também pode fazer essa conferência pelo painel do Superadmin, em Sistema > Dados & Config > Banco de Dados, na aba Consulta. Essa tela é somente leitura: serve para conferir, mas a exclusão (Etapa 3) continua sendo feita pelo PgAdmin ou pelo terminal. Veja Banco de dados.


Etapa 3: Remova as mensagens sem usuário

Com o snapshot feito, rode:

DELETE FROM "FastReply" WHERE "userId" IS NULL;

Esse comando remove as mensagens sem usuário de todas as empresas (tenants) da instalação. Para limpar só uma empresa, acrescente o filtro do tenant, por exemplo: DELETE FROM "FastReply" WHERE "userId" IS NULL AND "tenantId" = 1;

No terminal, digite \q para sair do PostgreSQL.


Etapa 4: Confira no painel

Acesse Comunicação e Marketing → Mensagens Rápidas e clique em Atualizar. As mensagens com - no User ID não aparecem mais.


Resumo

Etapa Onde / comando
Acessar o banco PgAdmin (Query Tool) ou docker exec -it postgresql psql -U postgres
Conferir SELECT * FROM "FastReply" WHERE "userId" IS NULL;
Remover DELETE FROM "FastReply" WHERE "userId" IS NULL;
Validar Comunicação e Marketing → Mensagens Rápidas → Atualizar

Encerramento

Com as mensagens sem usuário removidas, a listagem volta a mostrar só mensagens que podem ser editadas e excluídas pelo painel. Para criar novas mensagens no lugar das removidas, veja Mensagens Rápidas.


Possíveis Erros e Soluções

role "postgres" does not exist ao entrar pelo terminal

Causa: instalação antiga, em que o usuário do banco tem outro nome. Solução: confira o usuário do banco no arquivo .env do back-end e use-o no lugar de postgres no comando docker exec -it postgresql psql -U <usuario>.

relation "FastReply" does not exist

Causa: o nome da tabela foi digitado sem aspas duplas ou com outra combinação de maiúsculas e minúsculas. Solução: escreva sempre "FastReply", com aspas duplas, exatamente como no exemplo.