Skip to content

Inventário de Dados Pessoais

Mapeamento completo dos dados pessoais tratados pelo sistema, sua origem, onde ficam armazenados e para quem são acessíveis.

Dados de Clientes

Origem: Sync com Millennium ERP + interações diretas.

Tabela: Customer

CampoTipoSensívelProteção
nameStringNão
emailStringSim (PII)Criptografia em trânsito (HTTPS)
phoneStringSim (PII)Criptografia em trânsito
cpfHashStringNãoSHA-256 irreversível
cpfEncryptedStringSim (PII)AES-256-GCM, uso interno apenas
cpfMaskedStringParcial***.***.XXX-**, para display
birthDateDateTimeSim (PII)Criptografia em trânsito
zipCode, city, state, address, neighborhoodStringSim (PII)Criptografia em trânsito
rfmStatusStringNãoSegmento calculado (não sensível)
totalSpent, orderCount, lastOrderNãoFinanceiro agregado
whatsappOptOut, emailOptOut, smsOptOutBooleanNãoPreferência do titular
whatsappUnsubscribeTokenStringSimToken único para opt-out
tagsString[]NãoLabels livres

Quem acessa: Usuários do CRM com permissão app:customers.

Dados de Vendedores

Origem: Sync com Millennium ERP.

Tabela: Seller

CampoProteção
name, email, phonePII em trânsito
cpfHashSHA-256 irreversível
cpfEncryptedAES-256-GCM
cpfMaskedDisplay mascarado

Quem acessa: Administradores do CRM.

Dados de Conversas

Origem: Mensagens WhatsApp via webhook Meta / Evolution.

Armazenamento: Chatwoot (instância self-hosted da organização) + tabelas Conversation, Message e WhatsappMessage no banco CRM.

DadoOnde fica
Histórico de mensagensChatwoot DB (principal)
Status da conversaTabela Conversation
wamId (ID da mensagem na Meta)Tabela WhatsappMessage
Eventos de entrega/leituraTabela WhatsappMessage

Retenção no Chatwoot: Conforme configuração do Chatwoot (sem retenção automática no CRM).

Dados de Pesquisas de Satisfação

Origem: Respostas de clientes via link enviado por WhatsApp ou email.

TabelaDados armazenados
SurveyResponseTelefone, nome, loja, nota (1–5), comentário, hash do token
PostSaleSurveyResponseTelefone, nome, loja, CSAT/NPS, comentário, hash do token

Pseudonimização: tokenHash = SHA-256(token) — nunca o token real.

Dados de Navegação e Auditoria

Tabela: AccessLog

CampoProteção
ipMascarado no log HTTP (x.x.x.*)
userIdSHA-256 no log HTTP (rastreável internamente, não externamente)
userAgentArmazenado sem mascaramento
endpoint, methodNão sensível

Retenção: Sem expiração automática — recomendado purgar logs com mais de 1 ano.

Dados de Redirecionamento de Campanha

Tabela: CampaignRedirectToken

CampoProteção
tokenUUID aleatório, expira em 30 dias
customerId, campaignIdFKs, nenhum PII direto
redirectedToURL final visitada
clickedAtTimestamp do clique

Dados de Credenciais WhatsApp / SMTP

Tabela: StoreWhatsappNumber

CampoProteção
accessTokenAES-256-GCM
appSecretAES-256-GCM
token (Evolution)AES-256-GCM

Tabela: EmailSettings / OrganizationSmtpSettings

CampoProteção
pass (senha SMTP)AES-256-GCM

Fluxo entre sistemas

Millennium ERP → sync HTTP pull → PostgreSQL (banco CRM)

CRM Backend → Chatwoot API (read/write conversas)
    ↓ (webhook)
Meta WhatsApp → CRM Backend → Chatwoot + PostgreSQL
    ↓ (opt-out link)
Cliente clica → CRM registra opt-out em Customer

Dados que NUNCA saem do servidor:

  • CPF descriptografado (só usado internamente para comparação)
  • Tokens de acesso WhatsApp (retornados mascarados pela API)
  • Senhas SMTP (retornadas mascaradas pela API)

Documentação interna — Galdix CRM