Modulos
CMP — Consentimiento

CMP — Gestión de Consentimiento

El módulo CMP (Consent Management Platform) gestiona el ciclo de vida del consentimiento para cualquier tratamiento que requiera esa base legal según el Art. 12 de la Ley 21.719: cookies no esenciales, marketing, perfilamiento, comunicación comercial, geolocalización, transferencias internacionales, entre otros.

El CMP de DPOLab incluye una cadena de registros auditable ante la APDP, un widget JavaScript embebible, un paquete React listo para usar y notificaciones automáticas hacia sus sistemas de CRM o marketing cuando un titular modifica su consentimiento.

Requisitos regulatorios

ArtículoObligación
Art. 12 Ley 21.719Consentimiento libre, específico, informado, inequívoco y demostrable
Art. 14 ter Ley 21.719Deber de informar al titular sobre cada finalidad del tratamiento
Art. 12 Ley 21.719Las cookies estrictamente esenciales no requieren consentimiento

Los cinco requisitos del consentimiento válido bajo la Ley 21.719 — libre, específico, informado, inequívoco y demostrable — se traducen en las siguientes restricciones de diseño del CMP:

  • Libre: botón "Rechazar todo" obligatorio y con igual prominencia que "Aceptar todo".
  • Específico: un consentimiento por finalidad; marketing y analytics son propósitos separados.
  • Informado: vínculo visible a la política de privacidad y descripción de cada propósito.
  • Inequívoco: acción afirmativa; nunca casillas pre-marcadas ni "scroll = aceptación".
  • Demostrable: registro inmutable con cadena de auditoría verificable.
⚠️

La Ley 21.719 prohíbe el consentimiento implícito o pre-marcado (Art. 12). El widget fuerza el opt-in afirmativo: el banner no acepta nada hasta que el titular pulse "Aceptar" o configure sus preferencias.

Cómo acceder

Desde el dashboard, navega a Dashboard → CMP. Las sub-secciones disponibles son:

  • Plantillas: avisos de consentimiento reutilizables.
  • Registros: historial inmutable de consentimientos por plantilla.
  • Webhooks: notificaciones automáticas hacia sistemas externos.
  • Analytics: tasa de aceptación, retiros y actividad diaria.

Vista principal del CMP

Funcionalidades principales

FuncionalidadDescripción
8 categorías de plantillasCookies, videovigilancia, perfilamiento, transferencia internacional, datos sensibles, uso adicional, monitoreo laboral y personalizada
6 canales de recolecciónWidget web, formulario con enlace o QR, notificación entrante desde sistema externo, integración programática, registro manual y Centro de Privacidad
Cadena de registros auditableCada registro queda enlazado al anterior con una firma de seguridad; es posible demostrar ante la APDP que ningún registro fue alterado
Widget JavaScriptCódigo embebible en cualquier sitio web; muestra el banner de consentimiento y es compatible con Google Consent Mode v2
Paquete ReactComponentes listos para aplicaciones React y Next.js (ConsentBanner, ConsentPreferences, ConsentGate)
Notificaciones automáticasAviso firmado a sus sistemas de CRM o marketing cada vez que un titular cambia su consentimiento; reintentos automáticos si el destino no responde
Retiro de consentimientoConfirmación por correo electrónico (enlace de un solo uso válido por 1 hora) para validar el retiro
AnalyticsTasa de aceptación, retiros, aceptaciones por propósito y serie diaria
Protección contra botsAlerta automática si el volumen de registros supera 10 veces el promedio de los últimos 30 días

Bloqueo de scripts: El bloqueo automático de scripts de terceros (por ejemplo, píxeles de publicidad) hasta que el titular otorgue consentimiento está en desarrollo y estará disponible en futuras versiones de la plataforma.

Paso a paso

Crea la plantilla de consentimiento

Ve a Dashboard → CMP → Plantillas y haz clic en Nueva plantilla. Completa:

  • Nombre: identificador interno (ej.: "Newsletter Andes Retail").
  • Categoría: selecciona entre las 8 categorías disponibles según el tipo de tratamiento.
  • Dominio asociado: configurado previamente en Configuración → Dominios.
  • Entidad legal: entidad responsable del tratamiento.
  • Propósitos: agrega al menos uno; define un nombre visible, descripción y si es esencial.
  • Canales habilitados: selecciona los canales por los que se recolectará consentimiento.

Al guardar, DPOLab genera un código único para la plantilla. Mientras la plantilla esté en modo sandbox, los registros quedan marcados como prueba y no tienen validez legal.

Crear aviso de consentimiento

Embebe el widget en tu sitio

Agrega el fragmento de código en el encabezado o en el layout raíz de tu sitio:

<script
  src="https://sdk.dpolab.com/cmp.js"
  data-widget-key="cmp_XXXXXXXXXXXXXXXXX"
  data-position="bottom"
  data-gtm-consent="true"
  async
></script>

El widget descarga la configuración de la plantilla, renderiza el banner de consentimiento y gestiona las preferencias del titular.

Etiqueta los elementos a controlar

Para controlar qué scripts o contenidos se cargan según el consentimiento otorgado, usa el atributo de datos en el elemento correspondiente:

<!-- Script de analytics — controlado por consentimiento -->
<script
  type="text/plain"
  data-dpolab-consent="analytics"
  data-dpolab-original-type="text/javascript"
  async
  src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"
></script>

El bloqueo automático de scripts está en desarrollo y estará disponible en futuras versiones. Por ahora, el atributo queda registrado pero el script se carga normalmente.

Usa el paquete React en aplicaciones Next.js

import { ConsentBanner, ConsentGate, useConsent } from '@dpolab/cmp-react'
 
export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <ConsentBanner widgetKey="cmp_XXXXXXXXXXXXXXXXX" />
        {children}
        <ConsentGate widgetKey="cmp_XXXXXXXXXXXXXXXXX" purpose="marketing">
          <FacebookPixelScript />
        </ConsentGate>
      </body>
    </html>
  )
}

El widget JavaScript y el paquete React comparten el mismo almacenamiento local sin conflicto cuando coexisten en la misma página.

Configura notificaciones automáticas hacia sistemas externos (Professional+)

En la pestaña Webhooks de la plantilla, agrega un destino:

  • URL del destino: dirección de tu CRM o sistema de marketing.
  • Eventos: consentimiento otorgado, retirado o actualizado.
  • Código de verificación: generado por DPOLab. Úsalo en tu sistema receptor para comprobar que la notificación proviene realmente de DPOLab.

Activa la plantilla

Haz clic en Activar plantilla. A partir de este momento, el widget público muestra el banner y los registros quedan enlazados en la cadena de auditoría. No es posible modificar propósitos en una plantilla activa sin crear una nueva versión del aviso.

Editar aviso de consentimiento

Verifica la integridad de los registros

Para demostrar ante la APDP que el historial de consentimientos no fue manipulado, consulta el informe de integridad desde el menú de la plantilla o a través de la API de verificación.

El sistema recorre todos los registros en orden, recalcula cada firma de seguridad y confirma que la cadena está íntegra o indica cuál fue el primer registro afectado.

Informe de integridad de la cadena

Campos y datos

Plantilla de consentimiento

CampoObligatorioDescripción
NombreNombre interno de la plantilla
CategoríaUna de las 8 categorías: Cookies, Videovigilancia, Perfilamiento, Transferencia Internacional, Datos Sensibles, Uso Adicional, Monitoreo Laboral, Personalizada
DominioDominio asociado (configurado en Configuración → Dominios)
Entidad legalEntidad legal responsable
PropósitosAl menos un propósito no esencial
CanalesNoWidget web, Formulario, Notificación externa, API, Manual, Centro de Privacidad
RegulaciónNoLey 21.719, GDPR, LGPD, CCPA

Registro de consentimiento

CampoDescripción
AcciónOtorgado, Retirado o Actualizado
Canal de origenWidget web, Formulario, Notificación externa, API, Manual, Centro de Privacidad
PreferenciasOpciones seleccionadas por el titular para cada propósito
Firma de seguridadEncadenada al registro anterior para garantizar inmutabilidad
Versión del avisoVersión vigente al momento del registro

Estados y flujo

EstadoDescripción
Sandbox (inactiva)Plantilla en borrador; el banner funciona pero los registros se marcan como prueba
ActivaPlantilla activa; registros con validez legal
DesactivadaEl widget oculta el banner; los registros anteriores se conservan

Restricciones por plan

AspectoStarterProfessionalBusinessEnterprise
Plantillas de consentimiento31050
Dominios para CMP1310
Notificaciones salientes0310
API programáticaNo
IDV avanzado (L3/L4)NoNo
Branding propio en formularioNoNo
Cadena de registros auditable

Relación con otros módulos

MóduloRelación
Plantillas de ConsentimientoLas 8 categorías y los 6 canales se comparten; este módulo es la vista de gestión del CMP
Centro de PrivacidadEl portal unificado muestra los consentimientos del titular y permite actualizarlos
Política de CookiesEl módulo de Política de Cookies genera el aviso a partir de los propósitos configurados en el CMP
RATLos propósitos de marketing y analytics deben coincidir con las actividades de tratamiento registradas en el RAT
GovernanceLas métricas de aceptación y retiros forman parte del puntaje de cumplimiento
DominiosCada plantilla se asocia a un dominio verificado

Ver también

Ver también: Endpoints de API — CMP