Webhooks en workfloo

Guía para poder definir webhooks en llamados API a workfloo.

Para recibir notificaciones automáticas durante la ejecución de sus workfloos (webhooks), incluya los siguientes campos en el cuerpo de la solicitud de inicio:

  • callbackUrl: URL del endpoint al que se enviarán las notificaciones de webhook.
  • callbackXApiKey (opcional): clave API utilizada para autorizar las solicitudes entrantes, en caso de que su endpoint requiera autenticación.

Durante la ejecución del workfloo, se enviarán notificaciones en los siguientes eventos:

  • Cuando el flujo se encuentra en pausa y requiere intervención del usuario (por ejemplo: completar un formulario, ingresar un PIN o subir un documento).
  • Cuando el flujo ha finalizado completamente.

A continuación, se muestran algunos ejemplos de notificaciones que puede recibir vía webhook.

Form

Cuando el workfloo llegó a un paso de formulario.

{
  "currentNodeId": "1748283724487876",
  "currentNodeName": "formulario curp",
  "currentNodeType": "FORM",
  "form": {
    "formFieldSection": [
      {
        "fields": [
          {
            "fieldMetadata": {},
            "id": "curp",
            "name": "CURP",
            "predefined": true,
            "required": false,
            "section": "GENERAL_DATA"
          }
        ],
        "section": "GENERAL_DATA"
      }
    ]
  },
  "id": "d34d66cd-7995-4d86-b01b-ee576bc70d8d",
  "name": "With callbacks",
  "status": "PROGRESS"
}

NIP

Cuando en el workfloo se detecte que hay un NIP para autenticar la llamada de alguno de los burós

{
  "currentNodeId": "1748283676868449",
  "currentNodeName": "nip",
  "currentNodeType": "LINK",
  "id": "d34d66cd-7995-4d86-b01b-ee576bc70d8d",
  "link": {
    "companyName": "razon",
    "key": "nip",
    "keyTypeNode": "bc_pf_query",
    "phase": ""
  },
  "name": "With callbacks",
  "status": "PROGRESS"
}

Documents

Cuando hay un conector de documentos

{
  "currentNodeId": "1748283706586301",
  "currentNodeName": "documento",
  "currentNodeType": "DOCUMENT",
  "document": {
    "documentField": [
      {
        "id": "ine_data_extraction_set",
        "name": "Campos INE OCR extracción de datos",
        "predefined": true,
        "required": true,
        "set": {
          "files": [
            {
              "id": "ine_back_image",
              "name": "Imagen trasera de INE",
              "predefined": true,
              "required": true
            },
            {
              "id": "ine_front_image",
              "name": "Imagen frontal de INE",
              "predefined": true,
              "required": true
            }
          ]
        }
      }
    ]
  },
  "id": "d34d66cd-7995-4d86-b01b-ee576bc70d8d",
  "name": "With callbacks",
  "status": "PROGRESS"
}

Fin de la ejecución

Cuando se termine de ejecutar el workfloo.

{
  "currentNodeId": "",
  "currentNodeName": "",
  "currentNodeType": "",
  "id": "d34d66cd-7995-4d86-b01b-ee576bc70d8d",
  "name": "With callbacks",
  "status": "SUCCESS"
}

Obtener los datos del workfloo

Al finalizar la ejecución de un workfloo, puedes recuperar los datos generados mediante dos opciones:

  • Consultar los datos utilizando la API Get Workfloo by ID.
  • Agregar un conector API al final del workfloo para recibir los datos directamente en tu sistema.

Opción 1: Obtener los datos vía API

Una vez recibida la notificación de que el workfloo ha finalizado, puedes realizar una consulta a la API Get Workfloo by ID. Esta API te devolverá toda la información del workfloo en formato JSON.

Opción 2: Obtener los datos vía conector API

También puedes configurar un conector API al final del workfloo, que enviará los datos automáticamente a una URL de tu propiedad. Para esto, deberás crear un endpoint (webhook) que reciba una solicitud POST con el siguiente formato:

curl --location 'https://TU_URL_WEBHOOK.net' \
--header 'Content-Type: application/json' \
--data '{
	"workflooResponse": "{{workfloo}}"
}'

El campo workflooResponse contendrá una cadena JSON con toda la información del workfloo, equivalente a la que obtendrías al ejecutar la API Get Workfloo by ID.