Cómo funciona
Cómo funciona
Un formulario de consentimiento es una capa sobre el módulo de consentimiento. Reutiliza las mismas plantillas, los mismos action_tokens y los mismos Agreements, pero agrega tres piezas:
- La definición del formulario (
ConsentForm): campos, selección de plantillas, apariencia y pantalla de éxito. - La página alojada o el iframe que renderiza el formulario y captura los
action_tokenspor cada consentimiento aceptado. - El registro (
ConsentFormEntry): los datos de los campos quedan asociados alConsentActionoConsentCommitresultante.
Modelo de datos
Un consent_form agrupa todo lo que necesita el formulario alojado: la definición de los campos a capturar, los consent_templates que el usuario debe aceptar, las opciones de apariencia y la pantalla de éxito. Cada cambio publicado crea una nueva versión inmutable y conserva las anteriores.
consent_form: la configuración versionada del formulario.fields: lista de campos a capturar (key,label,type,required,options,page_index,position).consent_templates: selección de plantillas que el usuario debe aceptar (cada una con su versión y un flagrequired).appearance: overrides de marca (hide_logo,primary_color,button_alignment, etc.).success_screen: copy del estado de éxito y URL de redirección opcional.
consent_form_entry: un registro enviado. Guarda los datos crudos endata, el subject (EntityoIdentity) y la versión del form firmada.consent_action/consent_commit: la acción de consentimiento generada al enviar. Es la misma estructura que documenta la guía de captura.
Cada registro persiste el consent_form_version que firmó el usuario. Aunque luego edites el formulario, los registros viejos siguen mostrando la versión exacta que se firmó.
Ciclo de vida
- Configuras el formulario en el dashboard o por API.
- Lo publicas. Solo los formularios publicados pueden recibir registros.
- El usuario completa el formulario por uno de los canales (link, iframe, API).
- Cada checkbox de consentimiento genera un
action_token(igual que en el módulo de consentimiento regular). - Al hacer submit, Soyio:
- Crea (o recupera) la
Entitydel subject. - Persiste el
ConsentFormEntrycon los datos del formulario. - Crea un
ConsentActionsi solo hay un consentimiento, o unConsentCommitsi hay varios. - Actualiza el
Agreementdel usuario automáticamente.
- Crea (o recupera) la
- Opcional: si tu backend logra identificar al usuario con los datos recién capturados, puedes fusionar la
Entitydel registro en el sujeto preexistente para centralizar sus permisos.
Relación con el resto del módulo de consentimiento
- Las plantillas son las mismas que ya usas en el módulo de consentimiento regular. Una plantilla puede vivir tanto en un formulario como en un checkbox embebido sin duplicación.
- La trazabilidad (
Evidence) se genera con la misma estructura que para cualquierConsentAction. Revisa la guía de trazabilidad para ver qué metadatos se persisten. - El estado de cumplimiento (
ComplianceStatus) se consulta igual que para cualquier consentimiento. Lee la guía de consulta. - Las revocaciones también funcionan de forma transparente vía el Privacy Center o la API.
Versionado
Cada vez que editas un formulario, Soyio crea una nueva versión. El comportamiento es similar al de los consent templates:
- Los registros antiguos siguen ligados a la versión que firmaron.
- El embed siempre sirve la última versión publicada, salvo que especifiques una versión exacta vía API.
- El historial completo está disponible en
GET /api/v1/consent_forms/{id}/versions.
Cambiar las plantillas de consentimiento de un formulario publicado equivale a pedir un consentimiento distinto. Si tu base de datos tenía registros contra la versión anterior, considera si necesitas re-solicitar el consentimiento o si la nueva versión sigue siendo compatible.
Próximos pasos
- Arma tu formulario - Configura campos, páginas y consentimientos
- Integra el formulario - Link, iframe SDK o API
- Gestiona los registros - Consulta y procesa los datos capturados