Idempotency-Key devuelve en su lugar la ejecución existente.
El input_contract opcional decide qué payloads acepta Flowker y cómo los decodifica. Defínelo de forma explícita en los nodos nuevos: fija el formato de payload de toda la ruta. Los nodos antiguos que lo omiten siguen siendo válidos. Flowker deriva xsd cuando llevan un esquema XSD y formato XML. Si no, Flowker los trata como open con JSON como formato predeterminado.
Antes de empezar
- Un workflow en estado
draft. Un workflow activo está bloqueado, así que agrega el disparador antes de activarlo. Consulta Primeros pasos con Flowker para el recorrido de creación y activación. - Con
PLUGIN_AUTH_ENABLED=true(obligatorio en producción), otorga el permisoexecutesobre el recursowebhooksa cada sistema al que le permitas llamar al path. Consulta Proteger un webhook. Un despliegue fuera de producción con la autenticación de plugin deshabilitada usa un passthrough que no autoriza. - Para el contrato
xsd: un documento XSD en el registro. Súbelo con Subir un esquema XSD y guarda el id que devuelve. Para hacer cumplir la validación XSD de entrada, configura el servicio de validación XML medianteXSD_VALIDATOR_URL. Cuando no está definida, Flowker decodifica XML bien formado pero omite la validación XSD. - Para el contrato
openapi: un documento OpenAPI en el registro (Subir un esquema OpenAPI, cubierto de punta a punta en Conectar tu propia API). También necesitas el path y el método de la operación cuyo cuerpo de solicitud describe tu payload. Derivar el esquema de una operación te muestra ese cuerpo de solicitud.
Paso 1: Lee el contrato del disparador en el catálogo
Los disparadores vienen incorporados. Los descubres en el catálogo, y nunca creas uno.
1
Lista los disparadores incorporados
Listar disparadores del catálogo devuelve cada disparador con su
id, name y version. El id del disparador de webhook es webhook.2
Lee el esquema del disparador de webhook
Obtener un disparador del catálogo devuelve los mismos campos más
schema, el JSON Schema contra el que Flowker valida tu nodo disparador. Léelo cuando quieras la lista de campos desde la instancia en ejecución.Paso 2: Elige el contrato de entrada
El modo fija el formato de payload de la ruta. Una ruta
xsd es XML y una ruta openapi es JSON. Una ruta open usa el format que declaras. El validador actualmente también acepta format en xsd y openapi. Esos modos lo ignoran y fuerzan XML o JSON respectivamente. Omítelo ahí para que la configuración no dé a entender que cambia la ruta.
Elige open cuando el payload de quien llama no tiene un contrato publicado, o cuando quieres que el propio workflow decida qué es aceptable. Cuando un socio envía XML que define un documento XSD, elige xsd. Elige openapi cuando un socio envía JSON y tú tienes el documento OpenAPI que lo describe.
Una ruta
openapi nunca acepta un payload sin verificar: cuando Flowker no puede llegar a un veredicto, rechaza la llamada con FLK-0720, y el workflow nunca ve ese payload. Cuando la validación XSD está configurada, una ruta xsd llega a su veredicto a través de ese servicio. Un documento que no cumple se rechaza con XML_VALIDATION_FAILED. Flowker rechaza con FLK-0720 un veredicto en el que no puede confiar. Configura ese servicio antes de poner una ruta xsd frente a quien llame y exija el cumplimiento del esquema.Paso 3: Decide cómo responde el webhook
En una ruta
sync, response_view da forma al cuerpo:
response_view es inerte en una ruta async. Para las reglas completas de passthrough y para la anulación con responseStatusCode, consulta Modo de respuesta síncrona.
Paso 4: Escribe el nodo disparador
El disparador de webhook es un nodo con
type: "trigger" y estos campos en su data:
La configuración del disparador es un contrato cerrado. Un guardado falla con
FLK-0934 cuando el disparador de webhook:
- omite
pathomethod - no tiene un campo que exige el modo
input_contractseleccionado - nombra el id de esquema o el campo de operación de otro modo
- lleva una clave o un valor que el esquema rechaza
accepted_headers inválida falla con FLK-0957 en su lugar.
payments/received, /payments/received y payments/received/ registran todos la misma ruta.
Paso 5: Activa el workflow
1
Crea el workflow
Envía el nodo con el resto de tu workflow a Crear un workflow. El workflow queda en estado
draft, y Flowker valida aquí la configuración del disparador. Un error de contrato responde FLK-0934.2
Actívalo
Llama a Activar un workflow. La activación registra el path y el método. También resuelve lo que referencia el contrato. Un esquema XSD faltante responde
FLK-0930 y un esquema OpenAPI faltante responde FLK-0931. Una operación que el documento no declara responde FLK-0932, y una operación sin cuerpo de solicitud responde FLK-0933.FLK-0360. Desactivar un workflow libera sus rutas, así que puedes entregar un path a una versión nueva.
Paso 6: Llama a la ruta y confirma que funciona
Envía la llamada como la enviará quien llama:
async nueva cuya ejecución no es terminal responde 202 con el comprobante:
sync responde con el resultado de la ejecución, en la forma que selecciona su response_view. El estado que lleva depende de la vista y de cómo terminó la ejecución. Modo de respuesta síncrona tiene esas reglas.
Tres señales te dicen que la ruta funcionó:
- Una respuesta que inició una ejecución lleva
X-Webhook-Workflow-IDyX-Webhook-Execution-ID, así que puedes ligar una llamada al workflow que alcanzó y a la ejecución que inició. - Obtener resultados de ejecución informa los resultados por paso y la salida final de ese
executionId. - La entrada de la ejecución lleva un objeto
_webhookcon el método, el path y la dirección de quien llama. Úsalo para confirmar que el workflow vio la llamada que debía ver. Consulta Metadatos del webhook.
Idempotency-Key devuelve la ejecución original en lugar de iniciar otra. En una ruta async, una repetición terminal devuelve un comprobante HTTP 200 con idempotencyReplayed: true y el estado original. En una ruta sync, el estado y el cuerpo siguen a response_view y a cualquier responseStatusCode terminal: full y receipt incluyen metadatos de repetición, mientras que final_output y una respuesta passthrough directa no lo garantizan. Envía una clave nueva para ejecutar el workflow otra vez.
Los cinco verbos tienen cada uno su propia página de referencia: POST, GET, PUT, PATCH y DELETE.
Cuando una llamada falla
Después de que Flowker resuelve una ruta, los errores de una ruta JSON devuelven
code, title y message, mientras que los errores de una ruta XML devuelven un documento <error>. La verificación de tamaño del cuerpo FLK-0363 corre antes de la resolución de la ruta, así que devuelve el envelope de error JSON para todas las solicitudes. Consulta la lista de errores de Flowker para ver todos los códigos y ambas formas.
Qué sigue
Guía de integración
Conecta el workflow a servicios externos, y lee las reglas completas de respuesta síncrona.
Guía de diseño de workflows
Construye el resto del grafo al que entra el disparador.

