Saltar al contenido principal

Arma tu formulario

Arma tu formulario

Esta guía cubre todas las opciones de configuración de un formulario de consentimiento. Puedes editar el formulario desde el dashboard o desde la API; ambos caminos manejan el mismo modelo.

Editor del dashboard

Entra al dashboard y abre Consentimiento > Formularios. La lista muestra todos los formularios de tu compañía con el número de registros recibidos y los consentimientos asociados.

Lista de formularios en el dashboard

Crea un nuevo formulario con + Crear Formulario o abre uno existente para editarlo. El editor tiene tres pestañas:

  • Contenido: estructura del formulario (encabezado, páginas, campos, consentimientos y pantalla de éxito).
  • Personalización: branding por formulario (logo, tipografía, color y alineación de botones).
  • Configuración: link público y código QR.

El estado del formulario (Live / borrador) se controla con el toggle del encabezado del editor; los cambios se guardan con Guardar Cambios.

Identificación del formulario

  • Nombre interno (name): solo visible para tu equipo en el dashboard.
  • Título (title): encabezado que ve el usuario.
  • Descripción (description): subtítulo opcional debajo del título.
  • Slug (slug): parte final de la URL standalone (/<companySlug>/<formSlug>). Debe ser único dentro de tu compañía, en minúsculas, con números y guiones, entre 3 y 80 caracteres.

Si dejas el slug en blanco, Soyio lo genera a partir del nombre. Cámbialo a algo memorable si vas a compartir el link por canales como WhatsApp o impresos.

Estado del formulario

Un formulario tiene tres estados:

EstadoComportamiento
draftSolo visible en el dashboard. Los registros al link público son rechazados.
publishedURL pública activa, registros aceptados.
archivedEstado terminal. No acepta registros y no puede volver a draft ni published.

El estado archived es irreversible. Úsalo solo cuando ya no necesitas el formulario.

Campos

Desde la pestaña Contenido del editor, agrega los campos del formulario usando + Agregar campo. Cada campo se ordena dentro de una página y aparece en el preview de la izquierda en tiempo real.

Editor de contenido con campos y páginas

Cada campo es un objeto con la siguiente forma:

ConsentFormField
{
"key": "full_name",
"label": "Nombre completo",
"placeholder": "Ej: Jane Doe",
"type": "text",
"required": true,
"page_index": 0,
"position": 0
}

Tipos disponibles

TipoComportamiento
textInput de texto libre.
emailInput con validación de formato de email.
ninInput con validación de documento de identidad por país (RUT, DNI, CC, etc.).
phoneInput con formato de teléfono internacional.
textareaTexto multilínea.
selectSelector con opciones predefinidas en options.
checkboxCasilla booleana.
dateFecha en formato ISO-8601 (YYYY-MM-DD).

Reglas de configuración

  • La llave (key) debe empezar con letra minúscula y solo contener a-z, 0-9 y _. Es el nombre con el que el valor queda almacenado en data y se expone vía API o webhook.
  • Las llaves deben ser únicas dentro del formulario.
  • El campo options solo se acepta para type: select. En el resto de los tipos debe ir vacío.
  • required: true rechaza registros con el campo en blanco.
  • page_index y position controlan dónde se renderiza el campo en formularios multi-página.

Soyio normaliza los valores antes de guardarlos: hace strip en strings, valida fechas con Date.iso8601 y rechaza registros con tipos inválidos. La respuesta de error siempre indica qué campo falló.

Consentimientos

Cada consentimiento dentro de un formulario es una ConsentTemplateSelection. Apunta a una versión concreta de un consent template ya existente.

ConsentFormSelectedTemplate
{
"consent_template_id": "constpl_wAspvmEr4ACDZaPUtfwjsA",
"consent_template_version": 2,
"required": true,
"page_index": 0,
"position": 0
}

Reglas

  • Cada consent_template_id puede aparecer una sola vez por formulario.
  • Si omites consent_template_version al crear el formulario por API, Soyio fija la versión latest al momento de guardar.
  • Un formulario publicado debe tener al menos un consentimiento obligatorio.

Si una plantilla cambia, las versiones anteriores de tu formulario siguen apuntando a la versión que fijaste al guardar. Para usar una nueva versión, edita el formulario (se crea una nueva versión) y selecciona la versión actualizada.

Múltiples páginas

Para flujos largos, distribuye campos y consentimientos en varias páginas usando page_index:

  • Todos los items con page_index: 0 se muestran en la primera página.
  • Pasar a la siguiente página solo está habilitado cuando los campos obligatorios de la página actual son válidos.
  • En la última página el botón cambia a Enviar.

Si un consentimiento obligatorio queda sin marcar y el usuario llega a la última página, el formulario lo lleva automáticamente a la página donde se encuentra ese consentimiento y resalta el error.

Puedes elegir entre dos estilos visuales del indicador de progreso desde la apariencia del formulario:

  • bar: barra horizontal con porcentaje.
  • steps: pasos numerados.

Pantalla de éxito

Cambia al sub-tab Pantalla de éxito dentro del preview del editor para configurar el copy que ve el usuario después de enviar el formulario.

Configuración de la pantalla de éxito

Lo que ve el usuario después de enviar el formulario es completamente personalizable:

success_screen
{
"title": "Listo, gracias",
"message": "Recibimos tus datos y tu consentimiento.",
"button_text": "Volver al sitio",
"redirect_url": "https://miempresa.cl"
}
  • Si redirect_url está presente, el botón redirige al usuario a esa URL. Debe comenzar con http:// o https://.
  • En modo embebido (iframe SDK), el iframe no navega solo: tu integración recibe el evento CONSENT_FORM_COMPLETED con el redirectUrl y tú decides qué hacer. Revisa Integra el formulario.

Apariencia por formulario

La pestaña Personalización del editor agrupa el branding por formulario: logo, tipografía, color primario, alineación del botón principal y estilo del indicador de progreso.

Pestaña de personalización del editor

Cada formulario hereda la apariencia global de tu compañía pero acepta overrides puntuales:

  • hide_logo, hide_title, hide_description: oculta elementos del header.
  • font_family: tipografía del formulario.
  • primary_color: color principal en formato hex (#RRGGBB o #RGB).
  • button_alignment: left, center o right.
  • progress_indicator_style: bar o steps.

Lee la guía de apariencia para combinarlos con la configuración global.

La pestaña Configuración del editor muestra el slug y el dominio público del formulario, además de un código QR descargable en PNG o SVG.

Pestaña de configuración con slug, dominio público y QR
  • El slug se concatena al dominio público para formar la URL standalone (https://forms.soyio.id/<companySlug>/<formSlug>).
  • El dominio público se ajusta desde la configuración general de la compañía. Cámbialo desde Editar dominio público.
  • Descarga el QR en PNG o SVG para imprimirlo en piezas físicas o pegarlo en una campaña.

Crear o editar por API

Si tu sistema necesita aprovisionar formularios automáticamente, usa la API REST. Los endpoints están documentados en el API Reference.

POST /api/v1/consent_forms
{
"name": "Consentimiento onboarding",
"title": "Autorización de tratamiento de datos",
"description": "Necesitamos tu autorización antes de continuar.",
"slug": "onboarding",
"fields": [
{
"key": "full_name",
"label": "Nombre completo",
"type": "text",
"required": true,
"page_index": 0,
"position": 0
},
{
"key": "email",
"label": "Email",
"type": "email",
"required": true,
"page_index": 0,
"position": 1
}
],
"consent_templates": [
{
"consent_template_id": "constpl_wAspvmEr4ACDZaPUtfwjsA",
"required": true,
"page_index": 0,
"position": 2
}
]
}

Para actualizar, usa PATCH /api/v1/consent_forms/{id}. Cada PATCH crea una nueva versión del formulario.

La API responde con la versión recién creada en el campo consent_form. Si tu sistema guarda referencias al formulario, persiste el id (que no cambia) y opcionalmente el version (que sí cambia con cada edición).

Próximos pasos