Saltar al contenido principal

Configuración JSON

Propiedades Principales del Objeto Raíz

{
"name": "Mi Primera Automatización",
"preBuild": false,
"username": "usuario_ejemplo",
"config": [],
"signatureProfile": [],
"sign": []
}
PropiedadTipoRequeridoDescripción
namestringRequeridoNombre de la automatización
configarrayRequeridoArray de preguntas para el usuario
signatureProfilearrayRequeridoDefinición de firmantes y aprobadores
signarrayRequeridoNombres de preguntas obligatorias
preBuildbooleanRequeridoSi es true, incluye prellenado automático
customobjectRequeridoObjeto 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.

info
  • Cada pregunta en config es un objeto con propiedades específicas. Siempre requiere name, description y tpe.
  • 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"
}
info

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 $50000 si removeText es 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 hidden para ocultarlos inicialmente
  • El SDK cambia el atributo hidden segú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 si tipo_documento es cc.
  • numero_ce: pregunta que se habilita sólo si tipo_documento es ce.
Importante

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.

PropiedadTipoRequeridoDescripción
nameStringRequeridoNombre de la pregunta donde se ingresa el nombre del firmante
identificationStringRequeridoNombre de la pregunta para la identificación (puede tener múltiples con |)
emailStringRequeridoNombre de la pregunta para el correo del firmante
phoneStringRequeridoNombre de la pregunta para el teléfono (recomendado para OTP)
typeStringRequeridoIdentificador ú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).

Ejemplo de posicionamiento en el HTML complete

Preguntas Obligatorias

La propiedad sign es un array con los nombres de preguntas que el usuario no puede saltar:

info
  • 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ísticaClausulaSelect
Tipo de listaDropdownDropdown
Elementos HTML necesariosUno por opciónUno solo
Puede limitar otras preguntas✅ Sí❌ No
Atributo prereqPermitidoPermitido
Estructura options{name, value}{name, label, value}