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.
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:
| Estado | Comportamiento |
|---|---|
draft | Solo visible en el dashboard. Los registros al link público son rechazados. |
published | URL pública activa, registros aceptados. |
archived | Estado 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.
Cada campo es un objeto con la siguiente forma:
{
"key": "full_name",
"label": "Nombre completo",
"placeholder": "Ej: Jane Doe",
"type": "text",
"required": true,
"page_index": 0,
"position": 0
}
Tipos disponibles
| Tipo | Comportamiento |
|---|---|
text | Input de texto libre. |
email | Input con validación de formato de email. |
nin | Input con validación de documento de identidad por país (RUT, DNI, CC, etc.). |
phone | Input con formato de teléfono internacional. |
textarea | Texto multilínea. |
select | Selector con opciones predefinidas en options. |
checkbox | Casilla booleana. |
date | Fecha en formato ISO-8601 (YYYY-MM-DD). |
Reglas de configuración
- La llave (
key) debe empezar con letra minúscula y solo contenera-z,0-9y_. Es el nombre con el que el valor queda almacenado endatay se expone vía API o webhook. - Las llaves deben ser únicas dentro del formulario.
- El campo
optionssolo se acepta paratype: select. En el resto de los tipos debe ir vacío. required: truerechaza registros con el campo en blanco.page_indexypositioncontrolan 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.
{
"consent_template_id": "constpl_wAspvmEr4ACDZaPUtfwjsA",
"consent_template_version": 2,
"required": true,
"page_index": 0,
"position": 0
}
Reglas
- Cada
consent_template_idpuede aparecer una sola vez por formulario. - Si omites
consent_template_versional 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: 0se 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.
Lo que ve el usuario después de enviar el formulario es completamente personalizable:
{
"title": "Listo, gracias",
"message": "Recibimos tus datos y tu consentimiento.",
"button_text": "Volver al sitio",
"redirect_url": "https://miempresa.cl"
}
- Si
redirect_urlestá presente, el botón redirige al usuario a esa URL. Debe comenzar conhttp://ohttps://. - En modo embebido (iframe SDK), el iframe no navega solo: tu integración recibe el evento
CONSENT_FORM_COMPLETEDcon elredirectUrly 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.
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 (#RRGGBBo#RGB).button_alignment:left,centeroright.progress_indicator_style:barosteps.
Lee la guía de apariencia para combinarlos con la configuración global.
Link público y QR
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.
- 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.
{
"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
- Integra el formulario - Standalone, iframe SDK o API
- Gestiona los registros - Consulta y procesa registros
- Apariencia y comportamiento - Personaliza la marca del formulario