Aprende cómo gestionar las solicitudes de eliminación de datos de los visitantes para cumplir con el derecho al olvido del GDPR.
Entender el derecho al olvido
¿Qué es el RTBF?
El derecho al olvido (RTBF) bajo el artículo 17 del GDPR permite a los individuos solicitar la eliminación de sus datos personales cuando:
- Los datos ya no son necesarios para el propósito original
- Se retira el consentimiento
- Los datos fueron procesados ilícitamente
- La ley exige la eliminación
- La persona se opone al procesamiento
Cuándo se aplica a Analytics
Un visitante puede solicitar la eliminación de sus datos analíticos:
- Vistas de página e historial de sesión
- Datos de seguimiento de eventos
- Perfiles de usuarios identificados
- Datos de atribución de ingresos
Recibir solicitudes de eliminación
Canales de solicitud
Acepta solicitudes a través de:
- Correo electrónico ([email protected])
- Formulario web en tu sitio
- Correo postal
- En persona (si aplica)
Información requerida
Para procesar una solicitud, necesitas:
- Verificación de identidad
- Alcance de la eliminación solicitada
- Cualquier información de identificación que tengas
Formulario de solicitud de ejemplo
<form action="/privacy/erasure" method="POST">
<h2>Solicitud de eliminación de datos</h2>
<label>Dirección de correo electrónico (para verificación)</label>
<input type="email" name="email" required>
<label>ID de usuario (si se conoce)</label>
<input type="text" name="user_id">
<label>¿Qué datos deben ser eliminados?</label>
<select name="scope">
<option value="all">Todos mis datos</option>
<option value="analytics">Solo datos analíticos</option>
<option value="account">Cuenta y análisis</option>
</select>
<label>Información adicional</label>
<textarea name="details"></textarea>
<button type="submit">Enviar solicitud</button>
</form>
Procesar solicitudes
Paso 1: Verificar identidad
Antes de eliminar, verifica al solicitante:
// Ejemplo de proceso de verificación
async function verifyIdentity(email, userId) {
// Opción 1: Enviar correo electrónico de verificación
await sendVerificationEmail(email, {
action: 'data_deletion',
token: generateSecureToken()
});
// Opción 2: Coincidir con usuario conocido
const user = await findUserByEmail(email);
if (user && user.id === userId) {
return { verified: true, user };
}
return { verified: false };
}
Paso 2: Identificar datos
Encuentra todos los datos asociados al solicitante:
A través del panel:
Si un visitante ha sido identificado (pasaste un correo electrónico o ID de usuario al rastreador), abre Perfiles de visitantes (/analytics/profiles) y busca por nombre o correo electrónico para revisar el perfil, sesiones y eventos de la persona.
A través de API: La API REST (plan Pro y superior) puede listar registros de visitantes para un sitio web para que localices los datos a actuar:
# Recuperar datos de visitantes para un sitio web
curl -X GET "https://api.zenovay.com/api/external/v1/analytics/{websiteId}/visitors" \
-H "X-API-Key: zv_YOUR_API_KEY"
Paso 3: Eliminar datos
Zenovay actualmente no ofrece una herramienta de autoservicio para borrar registros analíticos de un visitante individual. Para actuar sobre una solicitud verificada para un visitante específico o usuario identificado, contacta a [email protected] con el sitio web y el identificador (ID de visitante, ID de usuario identificado, o el correo electrónico que pasaste al rastreador). El equipo de Zenovay realiza la eliminación en tu nombre.
No hay un punto final de API público para eliminar datos de visitantes o usuarios individuales – la API REST es de solo lectura para registros de visitantes.
Si la solicitud es para eliminar tu propia cuenta de Zenovay (y los datos personales asociados), puedes hacerlo tú mismo: abre tu perfil (/profile), elige Eliminar cuenta y confirma. Esto elimina permanentemente tu cuenta y propaga la eliminación a través de los sistemas conectados.
Paso 4: Confirmar finalización
// Enviar confirmación al solicitante
await sendEmail(requester.email, {
subject: 'Eliminación de datos completada',
body: `
Tu solicitud de eliminación de datos ha sido procesada.
ID de solicitud: ${request.id}
Completado: ${new Date().toISOString()}
Datos eliminados:
- Historial de vistas de página
- Datos de seguimiento de eventos
- Grabaciones de sesión
- Datos de perfil de usuario
Esta acción es permanente y no se puede deshacer.
`
});
Qué se elimina
Incluido en la eliminación
| Tipo de datos | Eliminado |
|---|---|
| Vistas de página | ✓ |
| Eventos | ✓ |
| Datos de sesión | ✓ |
| Grabaciones de sesión | ✓ |
| Contribuciones de mapa de calor | ✓ |
| Perfil de usuario | ✓ |
| Datos de ingresos | ✓ |
| Propiedades personalizadas | ✓ |
No incluido
| Tipo de datos | Por qué |
|---|---|
| Estadísticas agregadas | Anonimizadas, no datos personales |
| Registros de auditoría | Requisito legal |
| Registros de facturas | Cumplimiento financiero |
Realizar eliminaciones
Visitante individual o usuario identificado
Envía un correo electrónico a [email protected] con el sitio web y el identificador que deseas eliminar (ID de visitante, ID de usuario identificado, o el correo electrónico pasado al rastreador). El equipo de Zenovay verifica la solicitud contra tu cuenta y realiza la eliminación, luego confirma contigo.
Eliminación en masa
Para solicitudes de eliminación en masa que cubran varias personas, envía la lista completa a [email protected]. Actualmente no hay una herramienta de eliminación en masa de autoservicio en el panel.
Requisitos de cronograma
Plazos del GDPR
| Acción | Plazo |
|---|---|
| Reconocer solicitud | Rápidamente (dentro de 3 días recomendado) |
| Completar eliminación | Dentro de 30 días |
| Extensión si es necesaria | +60 días (debe notificar) |
Seguimiento de solicitudes
// Rastrear solicitudes de eliminación
const deletionRequest = {
id: generateId(),
requester_email: '[email protected]',
user_id: 'user_123',
received_at: new Date(),
acknowledged_at: null,
completed_at: null,
status: 'pending'
};
// Actualizar al reconocer
deletionRequest.acknowledged_at = new Date();
deletionRequest.status = 'acknowledged';
// Actualizar al completar
deletionRequest.completed_at = new Date();
deletionRequest.status = 'completed';
Manejar casos especiales
Usuario tiene múltiples identificadores
// Encontrar todos los identificadores vinculados
const user = await findUser(email);
const allIdentifiers = {
user_id: user.id,
visitor_ids: user.visitor_ids,
emails: user.emails,
device_ids: user.device_ids
};
// Eliminar todos los datos asociados
for (const visitorId of allIdentifiers.visitor_ids) {
await deleteVisitorData(visitorId);
}
await deleteUserData(user.id);
Solicitudes de visitantes anónimos
Si el visitante no está identificado:
- Solicita la información de identificación que tienen
- Verifica si pueden proporcionar:
- Valor de cookie
- Huella digital del dispositivo
- Hora de visitas específicas
- Si no se puede identificar, explica que los datos ya están anonimizados
Datos de terceros
Si los datos fueron compartidos con terceros:
- Identifica a los terceros
- Reenvía la solicitud de eliminación
- Confirma la eliminación por el tercero
- Documenta la cadena
Excepciones a la eliminación
Cuándo puedes rechazar
El GDPR permite rechazo cuando:
- Los datos se necesitan para reclamaciones legales
- Hay obligación legal de retención
- Razones de interés público
- Ejerciendo derecho a la libertad de expresión
Cómo rechazar
Estimado [Solicitante],
Hemos recibido tu solicitud de eliminación de datos con fecha [fecha].
Desafortunadamente, no podemos cumplir esta solicitud porque:
[ ] Necesitamos retener estos datos para procedimientos legales en curso
[ ] Tenemos una obligación legal de retener estos datos
[ ] La solicitud es manifiestamente infundada o excesiva
Si no estás de acuerdo con esta decisión, tienes derecho a
presentar una queja ante tu autoridad supervisora.
Atentamente,
[Tu empresa]
Automatización
Punto de entrada para solicitudes de eliminación
Zenovay no emite un webhook de solicitud de eliminación. Si recopila solicitudes de eliminación a través de tu propio formulario o centro de ayuda, conectarlas a un punto de entrada en tu lado para que cada una se registre y cree un ticket automáticamente:
// Configurar tu propio punto de entrada
app.post('/privacy/deletion-intake', async (req, res) => {
const { user_id, email, request_id } = req.body;
// Registrar la solicitud
await logDeletionRequest({
request_id,
user_id,
email,
received_at: new Date()
});
// Disparar flujo de trabajo interno
await createDeletionTicket({
user_id,
email,
deadline: addDays(new Date(), 30)
});
res.status(200).json({ received: true });
});
Limpieza programada
Automatiza la eliminación para usuarios inactivos:
// Ejecutar diariamente
async function cleanupInactiveUsers() {
const inactiveUsers = await findUsersInactiveFor(365); // 1 año
for (const user of inactiveUsers) {
await sendNotification(user.email,
'Eliminaremos tus datos en 30 días a menos que inicies sesión');
scheduleForDeletion(user.id, 30); // días
}
}
Documentación
Mantener registros
Conserva registros de:
| Registro | Retención |
|---|---|
| Solicitud de eliminación | 3 años |
| Evidencia de verificación | 3 años |
| Confirmación de finalización | 3 años |
| Motivo del rechazo | 3 años |
Certificado de eliminación
Proporcionar prueba de eliminación:
CERTIFICADO DE ELIMINACIÓN DE DATOS
ID de solicitud: del_abc123
Fecha de recepción: 2025-01-15
Fecha de finalización: 2025-01-20
Solicitante: [email protected]
Datos eliminados:
- 1.234 registros de vista de página
- 567 registros de eventos
- 89 grabaciones de sesión
- 1 perfil de usuario
Eliminación confirmada por: [Sistema/Administrador]
Marca de tiempo: 2025-01-20T15:30:00Z
Este certificado confirma que los datos anteriores han sido
eliminados permanentemente de nuestros sistemas y no pueden ser recuperados.
Mejores prácticas
Plantillas de respuesta
Prepara plantillas para:
- Correo electrónico de reconocimiento
- Solicitud de verificación
- Confirmación de finalización
- Rechazo (con motivos)
Capacitación del personal
Entrena a tu equipo sobre:
- Reconocer solicitudes de eliminación
- Procedimientos de verificación
- Requisitos de cronograma
- Proceso de escalada
Auditorías regulares
Revisa regularmente:
- Tiempos de procesamiento de solicitudes
- Tasas de finalización
- Problemas comunes
- Mejoras en procesos