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.
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)
Define la cláusula legal
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.
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.
{
"data_category": "user.contact.email",
"data_uses": ["marketing.communications", "marketing.advertising"]
}
// ❌ 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ñoP6M= 6 mesesP2Y3M= 2 años y 3 mesesP1Y6M3D= 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 cuandoduration_clause_typees"custom".duration: úsalo cuandoduration_typesea"fixed"(ISO 8601).
Opciones disponibles para duration_clause_type:
| Valor | Descripción |
|---|---|
while_contractual_relationship | Mientras dure la relación contractual. |
while_legal_obligation | Mientras exista una obligación legal. |
until_purpose_fulfilled | Hasta que se cumpla la finalidad. |
until_revoked | Hasta que sea revocado por el usuario. |
custom | Personalizado (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 resuelvelatestal 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" }
]
}
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
- Inicio rápido - Implementa consentimiento paso a paso
- Captura de consentimiento - Captura el consentimiento de un usuario
- Consulta de consentimiento - Consulta los consentimientos de un usuario
- Gestión de consentimientos - Gestiona y revoca el consentimiento de un usuario
- Taxonomía - Entiende las categorías de datos disponibles