Como Funciona o Audit Logging no Notifica: Rastreabilidade Total para LGPD
Como Funciona o Audit Logging no Notifica: Rastreabilidade Total
Se existe uma feature que define o DNA do Notifica, é o audit logging. Não porque é sexy. Porque é essencial.
Quando um auditor da ANPD bate na sua porta (ou, mais provavelmente, manda um email formal), ele vai perguntar:
- "Quando o usuário X deu consentimento para receber SMS?"
- "Quantas mensagens foram enviadas para este CPF nos últimos 6 meses?"
- "Quando e como foi processado o pedido de descadastro?"
Se você não conseguir responder em horas (não dias), tem um problema.
Por Que Audit Logging Importa (Além da LGPD)
Para Compliance
- Prova de consentimento para a ANPD
- Rastreabilidade de opt-in e opt-out
- Histórico completo de comunicações por titular
Para Debugging
- "Por que o João não recebeu o email?"
- "Qual provedor entregou este SMS?"
- "Em que momento o WhatsApp falhou e ativou o fallback?"
Para Negócios
- Métricas reais de entrega por canal
- Identificação de padrões de falha
- Base para decisões de troca de provedor
O Que Logamos (Tudo)
Cada evento no ciclo de vida de uma notificação é registrado com timestamp, contexto e metadados.
1. Eventos de Consentimento
{
"type": "consent.granted",
"timestamp": "2026-02-26T14:30:00.000Z",
"subscriberId": "usr_123",
"data": {
"channel": "sms",
"topic": "marketing",
"method": "double_opt_in",
"formVersion": "v2.3",
"ipAddress": "189.xxx.xxx.xxx",
"userAgent": "Mozilla/5.0...",
"source": "signup_form"
}
}
2. Eventos de Envio
{
"type": "notification.sent",
"timestamp": "2026-02-26T14:31:05.123Z",
"notificationId": "notif_abc123",
"subscriberId": "usr_123",
"data": {
"channel": "whatsapp",
"template": "order-confirmation",
"provider": "waba-primary",
"payload": {
"numeroPedido": "#12345",
"valor": "R$ 299,90"
},
"workflowId": "wf_purchase_flow",
"stepIndex": 2
}
}
3. Eventos de Entrega
{
"type": "notification.delivered",
"timestamp": "2026-02-26T14:31:07.456Z",
"notificationId": "notif_abc123",
"data": {
"channel": "whatsapp",
"provider": "waba-primary",
"providerMessageId": "wamid.abc123...",
"deliveredAt": "2026-02-26T14:31:07.200Z",
"latencyMs": 2077
}
}
4. Eventos de Falha
{
"type": "notification.failed",
"timestamp": "2026-02-26T14:31:08.789Z",
"notificationId": "notif_def456",
"data": {
"channel": "sms",
"provider": "zenvia-primary",
"error": {
"code": "INVALID_PHONE",
"message": "Phone number not in E.164 format",
"providerCode": "ERR_422"
},
"retryAttempt": 1,
"maxRetries": 3,
"nextRetryAt": "2026-02-26T14:32:08.789Z"
}
}
5. Eventos de Opt-out
{
"type": "consent.revoked",
"timestamp": "2026-02-26T15:00:00.000Z",
"subscriberId": "usr_123",
"data": {
"channel": "email",
"topic": "all",
"method": "unsubscribe_link",
"processedAt": "2026-02-26T15:00:00.200Z",
"suppressionListUpdated": true
}
}
6. Eventos de Fallback
{
"type": "workflow.fallback_triggered",
"timestamp": "2026-02-26T14:32:10.000Z",
"workflowId": "wf_fraud_alert",
"data": {
"originalChannel": "whatsapp",
"fallbackChannel": "sms",
"reason": "delivery_timeout",
"timeoutMs": 30000,
"subscriberId": "usr_789"
}
}
Consultando Logs via API
Buscar por Subscriber
// Todos os eventos de um usuário específico
const logs = await notifica.auditLogs.list({
subscriberId: 'usr_123',
from: '2026-01-01',
to: '2026-02-28',
limit: 100,
});
console.log(`Total de eventos: ${logs.totalCount}`);
logs.data.forEach((event) => {
console.log(`${event.timestamp} | ${event.type} | ${event.data.channel}`);
});
Buscar por Notificação
// Ciclo de vida completo de uma notificação específica
const timeline = await notifica.auditLogs.getTimeline('notif_abc123');
// Retorna algo como:
// 14:31:05 → notification.created
// 14:31:05 → notification.sent (whatsapp, waba-primary)
// 14:31:07 → notification.delivered (latência: 2077ms)
// 14:31:10 → notification.opened
Exportar para Auditoria
// Gerar relatório LGPD para um titular
const relatorio = await notifica.auditLogs.exportReport({
subscriberId: 'usr_123',
format: 'csv', // ou 'json', 'pdf'
includeConsent: true,
includeNotifications: true,
includeOptOuts: true,
dateRange: {
from: '2025-01-01',
to: '2026-02-28',
},
});
// Download URL válida por 24h
console.log(relatorio.downloadUrl);
Dashboard de Audit Logs
Além da API, o Dashboard oferece uma interface visual para explorar logs:
Funcionalidades do Dashboard
- Busca full-text — encontre qualquer evento por subscriber, template, canal ou erro
- Filtros avançados — por tipo, canal, status, período
- Timeline visual — veja o ciclo de vida de cada notificação
- Exportação em 1 clique — CSV, JSON ou PDF
- Alertas — notifique seu time quando falhas ultrapassarem threshold
Caso de Uso: Auditoria da ANPD
Imagine que a ANPD solicita:
"Apresente todos os registros de comunicação com o titular CPF xxx.xxx.xxx-xx nos últimos 12 meses, incluindo bases legais e registros de consentimento."
Com Notifica (tempo: ~5 minutos):
- Buscar subscriber por CPF no Dashboard
- Clicar em "Exportar Relatório LGPD"
- Selecionar período e formato PDF
- Download e envio ao auditor
Sem Notifica (tempo: ~3 dias):
- Consultar banco de dados de emails (SendGrid? CSV?)
- Consultar banco de dados de SMS (Twilio? Outro?)
- Consultar sistema interno de consentimento (se existir)
- Cruzar dados manualmente
- Formatar em relatório apresentável
- Torcer para não ter esquecido nenhum canal
Retenção e Armazenamento
Política de Retenção Padrão
| Tipo de Log | Retenção | Configurável? |
|---|---|---|
| Consentimento (opt-in/opt-out) | 5 anos | Sim (mínimo 5 anos) |
| Envio de notificação | 2 anos | Sim |
| Entrega/falha | 2 anos | Sim |
| Dados de payload | 90 dias | Sim |
| Audit de acesso (quem viu) | 1 ano | Sim |
Armazenamento Seguro
- Criptografia em repouso — AES-256
- Data residency Brasil — AWS São Paulo (sa-east-1)
- Imutabilidade — logs não podem ser alterados após criação
- Backup automático — redundância em 3 zonas de disponibilidade
Integrações com Ferramentas Externas
Enviar logs para seu Data Lake
// Configurar webhook de audit logs
await notifica.webhooks.create({
url: 'https://meuapp.com.br/webhooks/audit',
events: [
'notification.sent',
'notification.delivered',
'notification.failed',
'consent.granted',
'consent.revoked',
],
// Enviar em batch a cada 60 segundos
batchSize: 100,
batchIntervalMs: 60000,
});
Compatível com:
- AWS S3 — export direto para bucket
- BigQuery — via webhook + Cloud Functions
- Datadog — integração nativa de logs
- Elasticsearch — indexação automática
Boas Práticas
1. Não Logue Dados Sensíveis no Payload
// ❌ Errado: CPF completo no payload
payload: { cpf: '123.456.789-00', saldo: 'R$ 50.000' }
// ✅ Correto: Dados mascarados
payload: { cpf: '***.***.789-00', saldo: 'R$ **.***' }
A Notifica oferece mascaramento automático para campos sensíveis. Configure no Dashboard quais campos devem ser mascarados nos logs.
2. Defina Alertas
Configure alertas para:
- Taxa de falha > 5% em qualquer canal
- Opt-outs acima do normal (possível spam ou problema de conteúdo)
- Latência de entrega > 10 segundos (problema de provedor)
3. Revise Logs Periodicamente
Uma vez por mês, faça uma revisão:
- Quais templates têm mais falhas?
- Qual provedor está com pior performance?
- Existem subscribers recebendo mensagens sem consentimento válido?
Conclusão
Audit logging não é glamuroso. Ninguém posta no LinkedIn "Implementei logs de auditoria incríveis hoje!".
Mas quando chega uma solicitação da ANPD, ou quando seu CEO pergunta "por que 500 clientes reclamaram que não receberam o email?", ter logs completos e acessíveis é a diferença entre resolver em 5 minutos e entrar em pânico por 3 dias.
No Notifica, audit logging não é add-on. É fundação.
Quer ver o audit logging em ação? Crie uma conta gratuita, envie uma notificação de teste e veja cada etapa registrada em tempo real no Dashboard. Documentação completa de Audit Logs.
Posts Relacionados
Checklist LGPD para Notificações: O Guia Definitivo 2026
# Checklist LGPD para Notificações: Guia Completo 2026...
Gestão de Consentimento LGPD: Fluxos e Preference Centers que Funcionam
# Gestão de Consentimento de Notificações no Brasil: Fluxos LGPD-Friendly...
LGPD e Notificações: Guia de Compliance para SMS, WhatsApp e Email
# Compliance de Notificações no Brasil: Guia Básico de LGPD e Regras da Anatel...
Gostou deste guia?
Receba novos posts técnicos diretamente no seu email
Enviado via Notifica 🚀