Saltar al contenido principal

Crea plantillas de consentimiento

Crea plantillas de consentimiento

Las plantillas de consentimiento (consent templates) te permiten estandarizar las solicitudes de consentimiento en todos tus flujos digitales. En la plantilla defines el contenido y las propiedades de la solicitud de consentimiento que se presenta a tus usuarios. Puedes crear tantas plantillas como necesites, cada una con sus propias características y usarlas en diferentes flujos de tu aplicación.

Crea tus plantillas de consentimiento usando el dashboard de administración o usando la API de Soyio con el endpoint POST /api/v1/consent_templates.

Ejemplo de plantilla de consentimiento

Configuración de la plantilla

Define el título

Define un título corto y descriptivo que será lo primero que vea el usuario.

{
"title": "Quiero recibir ofertas y promociones"
}

Mejores prácticas:

  • Usa lenguaje claro y directo
  • Evita términos técnicos o legales complejos
  • Mantén el título conciso (máximo 50 caracteres)

Redacta el texto legal del consentimiento. Te recomendamos mantenerlo breve, que sea claro y que comience con acciones afirmativas.

{
"text": "Acepto el tratamiento de mis datos personales para fines de marketing y promociones."
}

Mejores prácticas:

  • Comienza con verbos afirmativos: "Acepto", "Autorizo", "Estoy de acuerdo"
  • Usa lenguaje simple y comprensible
  • Evita ambigüedades o dobles negaciones

Usa tooltips para añadir aclaraciones

Añade aclaraciones o definiciones usando tooltips para evitar textos muy largos. Encierra la palabra o frase en dobles corchetes [[ ]] y el texto del tooltip en paréntesis ( ).

{
"text": "Acepto el tratamiento de mis datos para [[fines de marketing]](Esto incluye el envío de correos promocionales y publicidad personalizada)."
}

Referencia documentos de privacidad

Enlaza tus políticas de privacidad, términos y condiciones u otros documentos relevantes usando dobles llaves {{ }}. Si necesitas referenciar una versión específica del documento, puedes hacerlo agregando el número de la versión después de la llave.

{
"text": "He leído y acepto la {{politica-de-privacidad}} de la empresa."
}

Formato de texto enriquecido

Puedes dar formato al texto de tus plantillas utilizando una sintaxis similar a Markdown.

Negrita y Cursiva:

  • Para negrita, usa **texto**.
  • Para cursiva, usa *texto*.

Listas:

  • Para listas no ordenadas, comienza la línea con - , * o + .
  • Para listas ordenadas, comienza la línea con un número seguido de un punto, como 1. .

Párrafos:

  • Separa los párrafos con una línea en blanco.
{
"text": "Al aceptar, permites:\n\n- El envío de **promociones**.\n- El uso de cookies *esenciales*.\n\nConsulta nuestra política para más detalles."
}

Los documentos de privacidad deben estar previamente configurados en la plataforma para poder referenciarlos. Revisa la sección Configuración de la empresa para más información.

Define categorías de datos y usos

Define explícitamente las categorías de datos para las cuales solicitas consentimiento seleccionando las opciones desde nuestra taxonomía. Para cada categoría de datos, puedes especificar uno o más usos de los datos. Puedes ver la lista completa de categorías de datos y usos en la sección de taxonomía.

Recomendaciones:

  • Sé lo más granular posible, es decir, usa subcategorías siempre que sea posible.
  • Analiza tus procesos internos para solicitar solo los datos necesarios. Esto te ayudará a cumplir con el principio de minimización de datos.
  • Escoge usos que representen tus procesos internos y que sean coherentes con la cláusula legal de la plantilla.
  • No combines usos de diferentes categorías principales en un mismo template. Esto es importante para cumplir con el principio de granularidad y especificidad.
¿Te ayudamos?

Si tu empresa no tiene una definición específica en sus políticas, contáctanos para ayudarte a determinarlas adecuadamente. Profundiza en estos conceptos revisando nuestra documentación sobre la taxonomía.

Ejemplo
{
"data_category": "user.contact.email",
"data_uses": ["marketing.communications", "marketing.advertising"]
}
Ejemplo de usos que NO debes combinar
// ❌ No hagas esto
{
"data_category": "user.contact.email",
"data_uses": ["essential", "marketing", "third_party_sharing"]
}

Define la vigencia del consentimiento

Puedes establecer la vigencia del consentimiento de dos formas: Duración Fija o Duración Condicional.

Duración Fija (Por defecto)

Establece un período de duración específico usando el formato ISO 8601. Es la opción por defecto si no especificas duration_type.

Formato: P[n]Y[n]M[n]DT[n]H[n]M[n]S

Ejemplos:

  • P1Y = 1 año
  • P6M = 6 meses
  • P2Y3M = 2 años y 3 meses
  • P1Y6M3D = 1 año, 6 meses y 3 días

Duración Condicional

Establece una condición lógica para la vigencia del consentimiento. Esto es útil cuando la duración depende de eventos externos o estados legales.

Para usar este tipo de duración, debes configurar duration_type: "conditional" y especificar el tipo de cláusula en duration_clause_type.

Al crear o actualizar templates por API, considera estos campos:

  • duration_type: usa "conditional" para activar vigencia condicional.
  • duration_clause_type: define la cláusula condicional.
  • duration_clause_text: requerido cuando duration_clause_type es "custom".
  • duration: úsalo cuando duration_type sea "fixed" (ISO 8601).

Opciones disponibles para duration_clause_type:

ValorDescripción
while_contractual_relationshipMientras dure la relación contractual.
while_legal_obligationMientras exista una obligación legal.
until_purpose_fulfilledHasta que se cumpla la finalidad.
until_revokedHasta que sea revocado por el usuario.
customPersonalizado (requiere enviar el texto en duration_clause_text).

Ejemplo de configuración (JSON):

{
"duration_type": "conditional",
"duration_clause_type": "while_contractual_relationship"
}

Ejemplo personalizado:

{
"duration_type": "conditional",
"duration_clause_type": "custom",
"duration_clause_text": "Hasta que el usuario cancele su suscripción."
}

Consideraciones:

  • Una vez expirado, cuando consultes el consentimiento, aparecerá como "no otorgado". Por lo tanto, no podrás continuar tratando los datos para esa finalidad.
  • Deberás solicitarlo nuevamente si necesitas seguir tratando los datos.
  • Considera el ciclo de vida de tu relación con el usuario.

Si usas duración condicional basada en eventos de negocio (por ejemplo, término de contrato u obligación legal cumplida), implementa la revocación desde backend usando Revocación de consentimiento (iniciada por la compañía).

La duración definida será mostrada al usuario en un formato legible (ej. "8 meses") en el widget de consentimiento.

Define el alcance del consentimiento

Por defecto, un template de solicitud de consentimiento se asocia a toda tu compañía. Para acotar su alcance, puedes asociarlo a uno o más productos o filiales usando el parámetro scopes.

scopes es un arreglo de objetos. Cada objeto representa un alcance específico y debe incluir:

  • scope_type: tipo de alcance. Valores permitidos: "product" o "branch".
  • scope_id: token público del producto o filial.
  • scope_version (opcional): versión específica del producto o filial. Si no lo envías, la API resuelve latest al momento de crear/actualizar y persiste esa versión en el template.

Ejemplo de template multi-alcance:

{
"title": "Consentimiento para marketing y análisis",
"scopes": [
{ "scope_type": "product", "scope_id": "prod_1B2M2Y8AsgTpgAmY7PhCfg" },
{ "scope_type": "branch", "scope_id": "branch_1B2M2Y8AsgTpgAmY7PhCfg" }
]
}
Compatibilidad hacia atrás

Los parámetros product_id y branch_id siguen siendo soportados por retrocompatibilidad, pero se recomienda migrar a scopes para aprovechar la funcionalidad multi-alcance.

Si envías scopes junto con product_id o branch_id, prevalece scopes.

Para habilitar la selección granular de alcance (donde el usuario puede elegir qué productos/filiales autorizar), revisa la sección de Personalización de Apariencia y Comportamiento.

Los productos y filiales deben estar previamente configurados en el perfil de tu compañía en la plataforma. Revisa la sección Configuración de la empresa para más información.

Ejemplos de plantillas

Plantilla de marketing

{
"name": "Marketing Básico", // Nombre descriptivo de la plantilla para tu referencia
"title": "Quiero recibir ofertas y promociones",
"text": "Acepto el tratamiento de mis datos para fines de marketing como enviar correos promocionales y publicidad personalizada según la {{politica-de-privacidad}}.",
"duration": "P2Y",
"data_requirements": [
{
"key": "user.contact.email",
"data_uses": ["marketing.communications", "marketing.advertising", "marketing.advertising.profiling"]
},
{
"key": "user.contact.phone_number",
"data_uses": ["marketing.communications", "marketing.advertising", "marketing.advertising.profiling"]
},
{
"key": "user.name",
"data_uses": ["marketing.communications", "marketing.advertising", "marketing.advertising.profiling"]
}
]
}

Plantilla de analytics

{
"name": "Análisis y Mejora", // Nombre descriptivo de la plantilla para tu referencia
"title": "Quiero ayudar a mejorar el servicio",
"text": "Autorizo el uso de mis datos y el uso de cookies para realizar [[análisis y mejoras]](Análisis de comportamiento y optimización del servicio) de la plataforma según la {{politica-de-privacidad}}.",
"duration": "P1Y",
"data_requirements": [
{
"data_category": "user.device.cookie_id",
"data_uses": ["analytics.reporting.ad_performance", "analytics.reporting.system.performance"]
}
]
}

Plantilla para compartir datos con terceros

{
"name": "Compartir con Terceros", // Nombre descriptivo de la plantilla para tu referencia
"title": "Compartir información con socios comerciales",
"text": "Acepto que mis datos sean compartidos con [[socios comerciales y empresas aliadas]](<Empresa 1>, <Empresa 2> y <Empresa 3>) para que me ofrezcan productos y servicios de interés a precios preferenciales.",
"duration": "P1Y6M",
"data_requirements": [
{
"data_category": "user.contact.phone_number",
"data_uses": ["third_party_sharing"]
},
{
"data_category": "user.contact.email",
"data_uses": ["third_party_sharing"]
},
{
"data_category": "user.name",
"data_uses": ["third_party_sharing"]
}
]
}

Versionado de plantillas y evidencia

Soyio genera trazabilidad con fines de auditoría y cumplimiento regulatorio. Por lo tanto, cada vez que modificas una plantilla de consentimiento, se crea una nueva versión de la plantilla que mantiene el mismo ID, pero con un número de versión diferente.

Cada vez que se levanta un flujo de consentimiento, se usa la última versión disponible para la plantilla de consentimiento especificada en la SDK.

Consulta el historial de versiones de una plantilla usando el endpoint GET /api/v1/consent_templates/{id}/versions.

Es importante considerar esto, ya que la evidencia de los consentimientos se asocia a la versión exacta de la plantilla que el usuario aceptó. Si el cambio de la plantilla afecta a los datos o usos que se solicitan, a su vigencia o al alcance del consentimiento (por ejemplo, si se asocia a otro producto o filial), el consentimiento asociado a esa plantilla aparecerá como no compliant.

Próximos pasos