O módulo Campanhas foi desenhado com LGPD-first. Esta página detalha o que é coletado, como é protegido e por quanto tempo é mantido.
O que é coletado em cada clique
Quando alguém clica em https://app.medsac.com.br/r/MSAC-..., registramos o clique com os seguintes dados:
| Campo | O que é | Por que coletamos |
|---|---|---|
click_token |
Token único de 24 chars | Para vincular o clique à conversa correta |
utm_source / medium / campaign / content / term |
UTMs da URL ou defaults da campanha | Atribuição comercial |
gclid |
Google Click ID (se presente) | Permitir reconciliação futura com Google Ads |
fbclid |
Facebook Click ID (se presente) | Reconciliação Meta |
user_agent |
Navegador e SO | Detecção de bots e analytics |
referer |
Site que originou o clique | Atribuição da origem |
ip_hash |
SHA256 do IP + salt secreto | Rate limit + detecção de abuso |
clicked_at |
Timestamp | Análise temporal |
O que NÃO é gravado
-
IP bruto — nunca persistido no banco. Só o hash irreversível.
-
Dados do dispositivo além do User-Agent — fingerprint não é feito.
-
Cookies — o redirect não cria cookie nenhum.
O que NÃO é exibido na interface
O card MEDSAC na conversa nunca mostra:
-
click_token(apenas usado internamente) -
campaign_token -
Valor cru de
gclidoufbclid(só chips dizendo "Google Ads" / "Meta/Facebook") -
ip_hash,user_agent,referer
O atendente vê apenas: nome da campanha, UTMs, ID interno.
IP hash e salt
O IP é processado com SHA256(ip + salt). O salt é uma chave secreta, armazenada de forma protegida no servidor e jamais exposta publicamente.
Por que hashar e não anonimizar? Porque precisamos comparar IPs entre cliques (rate limit de 30/min/IP). Com hash, conseguimos comparar sem armazenar dado pessoal reversível.
Risco de reidentificação: baixo. Mesmo se um atacante obtivesse o banco e descobrisse o algoritmo, sem o salt e sem uma rainbow table de IPs específicos, não consegue reverter.
Rate limit
A rota /r/:token tem throttle de 30 requisições/minuto/IP. Logs de bloqueio carregam IP cru (base legal: interesse legítimo de segurança contra abuso). Esses logs têm retenção curta e acesso restrito à equipe de operações.
Retenção de dados
Política atual:
-
Cliques com match (
matched_conversation_idpreenchido) — mantidos enquanto a conversa existir, para fins de auditoria comercial. -
Cliques sem match (órfãos > 90 dias) — purgados periodicamente. Esses cliques não trazem valor analítico e mantê-los só aumenta exposição.
Em estudo: anonimização automática de UTMs e click IDs em cliques com mais de 365 dias, mantendo apenas os vínculos de atribuição.
Responsabilidades sob a LGPD
Sua clínica (Controlador):
-
Define a finalidade do tratamento (marketing, comercial, atendimento).
-
Deve incluir a coleta de dados de campanha na sua Política de Privacidade.
-
Deve atender solicitações de direito de acesso, retificação e exclusão dos titulares.
MEDSAC (Operador):
-
Processa os dados sob sua instrução.
-
Garante segurança técnica (hash de IP, rate limit, encriptação em trânsito).
-
Apaga dados conforme política de retenção combinada.
Direitos do titular
Se um paciente solicitar:
-
Acesso aos dados — conseguimos exportar todos os cliques + conversas vinculadas àquele número de WhatsApp.
-
Exclusão — apagamos cliques + dissociamos da conversa (mantendo a conversa pelo dever legal de retenção de comunicações comerciais).
-
Portabilidade — exportação em formato CSV.
Para solicitar, abra ticket no painel ou contate lgpd@medsac.com.br.