Configuración JSON
Propiedades Principales del Objeto Raíz
{
"name": "Mi Primera Automatización",
"preBuild": false,
"username": "usuario_ejemplo",
"config": [],
"signatureProfile": [],
"sign": []
}
| Propiedad | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Requerido | Nombre de la automatización |
config | array | Requerido | Array de preguntas para el usuario |
signatureProfile | array | Requerido | Definición de firmantes y aprobadores |
sign | array | Requerido | Nombres de preguntas obligatorias |
preBuild | boolean | Requerido | Si es true, incluye prellenado automático |
custom | object | Requerido | Objeto que permite personalizar características de la plantilla |
Propiedad preBuild - Prellenado Automático
Cuando preBuild es true, debes incluir preBuildData. Este campo habilita un prellenado automático de la
plantilla: algunos campos se completan previamente para que el usuario solo termine de diligenciar el
documento.
En preBuildData, declaran las preguntas que se prellenarán en esta primera instancia. El último elemento del array debe ser el correo del usuario final, quien recibirá la solicitud de diligenciamiento por correo electrónico.
{
"preBuild": true,
"preBuildData": ["nombre_comprador", "email_comprador", "correo_usuario_final"]
}
config y sus tipos de preguntas
En esta sección se agregan todas las preguntas que debe diligenciar el usuario para generar el documento para firma.
- Cada pregunta en
configes un objeto con propiedades específicas. Siempre requierename,descriptionytpe. - Las preguntas también pueden tener un value por defecto, agregando el tributo
value.
{
"name": "identificador_unico",
"description": "Texto que ve el usuario",
"type": "tipo_pregunta"
}
1. Texto Libre (text)
Acepta cualquier texto sin restricciones.
{
"name": "descripcion_producto",
"description": "Describa brevemente el producto",
"type": "text"
}
2. Nombre (name)
Igual a texto, pero convierte a mayúsculas automáticamente en el HTML.
{
"name": "nombre_comprador",
"description": "Ingrese su nombre completo",
"type": "name"
}
Todos las preguntas de tipo name en el documento final serán generados en mayúsculas
Ejemplo de salida:
- Usuario ingresa:
juan pérez - Se muestra en HTML:
JUAN PÉREZ
3. Número (number)
Solo acepta valores numéricos.
{
"name": "cantidad_articulos",
"description": "¿Cuántos artículos desea?",
"type": "number"
}
Con texto adicional:
{
"name": "cantidad_articulos",
"description": "¿Cuántos artículos desea?",
"type": "number",
"addText": true // Agrega "artículos" automáticamente
}
4. Moneda (currency)
Formatea automáticamente como moneda ($ COP).
{
"name": "monto_total",
"description": "Ingrese el valor en pesos",
"type": "currency"
}
Opciones:
{
"name": "monto_total",
"description": "Ingrese el valor en pesos",
"type": "currency",
"removeText": true // Solo muestra el número y $
}
Ejemplo:
- Usuario ingresa:
50000 - Se muestra:
$50.000(o$50000siremoveTextes true)
5. Correo Electrónico (email)
Valida que sea un email correcto.
{
"name": "email_comprador",
"description": "Ingrese su correo electrónico",
"type": "email"
}
6. Teléfono (phone)
Valida número telefónico según el indicativo seleccionado.
{
"name": "telefono_comprador",
"description": "Ingrese su número telefónico",
"type": "phone"
}
7. Fecha (date)
Muestra calendario para seleccionar fecha.
{
"name": "fecha_entrega",
"description": "Seleccione la fecha de entrega",
"type": "date"
}
8. Lista - Tipo Cláusula (clausula)
Dropdown con opciones predefinidas. Permite limitar otras preguntas.
{
"name": "tipo_documento",
"description": "Seleccione el tipo de documento",
"type": "clausula",
"value": "cc",
"options": [
{
"name": "Cédula de Ciudadanía",
"value": "cc"
},
{
"name": "Cédula de Extranjería",
"value": "ce"
},
{
"name": "Pasaporte",
"value": "pasaporte"
}
]
}
HTML Correspondiente:
<span name="tipo_documento_cc">C.C.</span>
<span name="tipo_documento_ce" hidden>C.E.</span>
<span name="tipo_documento_pasaporte" hidden>PASAPORTE</span>
Explicación:
- Se crea un
<span>para cada opción - El nombre es:
{nombre_pregunta}_{valor_opcion} - El elemento con la opción por defecto no tiene
hidden - Los otros llevan
hiddenpara ocultarlos inicialmente - El SDK cambia el atributo
hiddensegún la selección del usuario
9. Lista - Tipo Select (select)
Dropdown simple, NO permite limitar otras preguntas.
{
"name": "tipo_documento",
"description": "Seleccione el tipo de documento",
"type": "select",
"value": "cc",
"options": [
{
"name": "Cédula de Ciudadanía",
"label": "Cédula de Ciudadanía",
"value": "cc"
},
{
"name": "Cédula de Extranjería",
"label": "Cédula de Extranjería",
"value": "ce"
}
]
}
HTML Correspondiente:
<span name="tipo_documento">_______________</span>
El SDK automáticamente coloca el texto del atributo label en el elemento.
10. Preguntas Condicionales con prereq
La propiedad prereq controla la visibilidad condicional de una pregunta. Sus atributos son:
-
k(key): nombre de la pregunta de referencia -
v(value): valor requerido en la pregunta de referencia para mostrar la pregunta actual
Estructura
"prereq": [
{
"k": "nombre_pregunta_referencia",
"v": "valor_requerido"
}
]
Ejemplo Completo:
tipo_documento: Es el nombre de la pregunta que se usa como referencia en este ejemplo.numero_cc: pregunta que se habilita sólo sitipo_documentoescc.numero_ce: pregunta que se habilita sólo sitipo_documentoesce.
La pregunta referenciada en k DEBE ser de tipo clausula. Tal como se ve en este caso que,
tipo_documento es de tipo clausula.
[
{
"name": "tipo_documento",
"description": "Seleccione el tipo de documento del comprador",
"type": "clausula",
"value": "cc",
"options": [
{ "name": "Cédula de Ciudadanía", "value": "cc" },
{ "name": "Cédula de Extranjería", "value": "ce" }
]
},
{
"name": "numero_cc",
"description": "Ingrese el número de cédula de ciudadanía",
"type": "number",
"prereq": [{ "k": "tipo_documento", "v": "cc" }]
},
{
"name": "numero_ce",
"description": "Ingrese el número de cédula de extranjería",
"type": "number",
"prereq": [{ "k": "tipo_documento", "v": "ce" }]
}
]
Perfiles de Firma (signatureProfile)
Define quiénes firman el documento y sus datos asociados. En este objeto de firmante NO se guardan los datos crudos de cada firmante, por el contrario se escribe la referencia de la pregunta que contendrá la información de cada firmante.
| Propiedad | Tipo | Requerido | Descripción |
|---|---|---|---|
name | String | Requerido | Nombre de la pregunta donde se ingresa el nombre del firmante |
identification | String | Requerido | Nombre de la pregunta para la identificación (puede tener múltiples con |) |
email | String | Requerido | Nombre de la pregunta para el correo del firmante |
phone | String | Requerido | Nombre de la pregunta para el teléfono (recomendado para OTP) |
type | String | Requerido | Identificador único (usado como id en el Complete HTML) |
Ejemplo - Un Firmante
{
"name": "nombre_comprador",
"identification": "cedula_comprador",
"email": "email_comprador",
"phone": "telefono_comprador",
"type": "comprador"
}
Ejemplo - Múltiples Identificaciones
Si tienes varias preguntas de identificación (C.C, C.E, Pasaporte):
{
"name": "nombre_vendedor",
"identification": "cedula_vendedor|cedulae_vendedor|pasaporte_vendedor",
"email": "email_vendedor",
"phone": "telefono_vendedor",
"type": "vendedor"
}
Los valores se separan con | (pipe).
Preguntas Obligatorias
La propiedad sign es un array con los nombres de preguntas que el usuario no puede saltar:
- El usuario debe completarlas obligatoriamente las preguntas registradas en
sign. - No puede dejar en blanco las preguntas registradas en
sign. - No puede avanzar sin llenar las preguntas registradas en
sign.
"sign": [
"nombre_comprador",
"email_comprador",
"cedula_comprador"
]
Diferencias Clave: clausula vs select
| Característica | Clausula | Select |
|---|---|---|
| Tipo de lista | Dropdown | Dropdown |
| Elementos HTML necesarios | Uno por opción | Uno solo |
| Puede limitar otras preguntas | ✅ Sí | ❌ No |
Atributo prereq | Permitido | Permitido |
| Estructura options | {name, value} | {name, label, value} |