15 de agosto de 2026
Você excluiu o cliente, mas o link de aprovação continuou vivo: por que revogar acesso importa tanto quanto apagar o dado

Se você usa link público de aprovação — aquele que o cliente abre sem precisar criar conta ou fazer login, só clica e aprova ou rejeita o post — sabe o motivo de ele existir: tirar atrito. O cliente não quer (e não deveria precisar) criar senha só pra dizer "sim, pode postar" uma vez por semana.
Mas todo link que não pede login tem uma pergunta que fica pendurada: o que acontece com ele quando o vínculo acaba?
A dor real: excluir o cliente não significa revogar o acesso
Uma auditoria de código encontrou exatamente esse buraco no igency. A ação que aparece na interface como Arquivar cliente (não existe um botão de "excluir" literal) nunca foi uma exclusão de verdade — é um soft delete: o registro fica marcado como inativo (isActive: false), mas continua no banco. Isso é proposital e correto na maioria dos casos: você não quer perder o histórico de tarefas e pagamentos de um cliente antigo só porque encerrou o contrato.
O problema é que as duas rotas que resolvem o link público de aprovação — a página que o cliente abre e a rota que processa o clique de aprovar/rejeitar — nunca checavam se o cliente por trás daquele link ainda estava ativo. Elas só confirmavam se o token existia. Resultado prático: um cliente que você excluiu (ou qualquer pessoa que ainda tivesse aquele link salvo) continuava conseguindo aprovar, rejeitar e comentar tarefas indefinidamente, mesmo depois de o contrato ter acabado.
E tinha uma segunda camada, mais traiçoeira: como as telas do lado da agência já filtram só clientes ativos, qualquer aprovação ou comentário feito por esse link "fantasma" ficava invisível no seu dashboard. Ou seja, não era só "o link continua funcionando" — era "o link continua funcionando e você não teria como saber".
O ensinamento prático: revogar é uma operação, não um efeito colateral
Esse tipo de bug não é raro, e vale entender o padrão por trás dele, porque ele se repete em qualquer sistema que combine duas coisas: (1) acesso sem login via token/link e (2) exclusão "suave" de registros (o dado continua existindo, só marcado como inativo).
A armadilha é pensar que, se a interface principal já esconde o dado inativo, o acesso está automaticamente protegido. Não está — cada caminho de leitura/escrita precisa aplicar o próprio filtro, de forma independente. Esconder um cliente da lista da agência é uma decisão de exibição. Impedir que o link antigo dele continue aprovando tarefas é uma decisão de controle de acesso. São coisas diferentes, e uma não implica a outra.
Uma forma prática de auditar isso no seu próprio sistema (ou pedir pra quem constrói pra você auditar): pra cada recurso que pode ser "excluído" de forma suave, liste todos os caminhos que ainda conseguem lê-lo ou escrevê-lo — não só a tela principal. Link público, webhook, exportação, integração externa, API. Se algum desses caminhos não repete o mesmo filtro de "só se estiver ativo", ele é uma porta que ficou destrancada.
Como o igency resolveu isso
A correção foi direta assim que o problema ficou claro: as duas queries que resolvem o token do link de aprovação — na página pública e na rota que processa a decisão — passaram a exigir isActive: true junto com o token, no mesmo filtro. Como o token de aprovação é único por cliente, dá pra combinar os dois critérios numa única consulta, sem custo extra de performance. Na prática: no momento em que você exclui um cliente no igency, o link de aprovação dele para de funcionar imediatamente — quem tentar abri-lo depois disso não consegue mais aprovar, rejeitar ou comentar nada.
Isso é parte de um princípio maior de como o igency trata dado por cliente: cada consulta relevante do sistema — não só as telas que você vê — é escopada pelo mesmo critério de "esse cliente ainda está ativo?". Quando você encerra um contrato, a intenção é que o encerramento seja completo, não parcial.
Testando na prática
Se você já usa o igency com clientes que enviam aprovação por link público, não precisa fazer nada — a correção já está em produção. Mas se você está avaliando ferramentas de gestão de clientes e aprovação com link (sua ou de terceiros), essa é uma pergunta simples de fazer antes de confiar: "se eu arquivar um cliente, o link de aprovação antigo dele para de funcionar na hora, ou continua ativo?". É uma das perguntas mais reveladoras sobre como um sistema realmente trata controle de acesso por trás da interface bonita.
Quer um sistema onde encerrar um contrato realmente encerra tudo?
Se sua agência usa (ou está avaliando) link público de aprovação, o fim de um contrato não deveria depender de você lembrar de revogar acesso manualmente em algum lugar separado. No igency, arquivar um cliente já revoga o link de aprovação dele na mesma hora, junto com o resto do acesso — sem passo extra, sem checklist pra lembrar depois.
Se você tem até 3 clientes, o plano Free já inclui aprovação por link, Kanban e controle financeiro completos, sem limite de tempo e sem pedir cartão de crédito. Se sua agência já passou disso, o Pro libera clientes ilimitados por R$19,90/mês (ou R$199/ano) — com 30 dias de teste grátis antes da primeira cobrança: o cartão é pedido no cadastro, mas nada sai até o trial terminar, e você cancela quando quiser enquanto isso.
Gerencie clientes, tarefas e cobrança sem planilha
Grátis para até 3 clientes. No Pro, 30 dias de teste antes da primeira cobrança.
Testar o igency Pro grátis →