Ciclo de vida de la configuración de executor
Antes de que un executor pueda ser usado en un workflow, pasa por el siguiente ciclo de vida:

/v1/executors (listar, obtener, actualizar, eliminar). Los estados del ciclo de vida (unconfigured, configured, tested, active, disabled) se rastrean internamente — las transiciones ocurren a través de la capa de servicio.
| Status | Qué significa | Siguiente paso |
|---|---|---|
unconfigured | Creado con detalles de conexión pero no completamente configurado. | Configurarlo (PATCH) |
configured | Detalles de conexión definidos y validados. | Probar conectividad |
tested | Prueba de conectividad exitosa. | Activarlo |
active | Disponible para ejecución de workflows. | — |
disabled | Temporalmente fuera de servicio. | Habilitarlo |
El ciclo de vida de la configuración de executor se gestiona a través de la capa de servicio (comandos
MarkConfigured, MarkTested, Activate, Disable, Enable). Ten en cuenta que la API HTTP actual expone los endpoints GET, PATCH y DELETE. PATCH actualiza los datos de configuración pero no dispara transiciones de estado.Paso 1: Explorar el catálogo
Antes de crear una configuración de executor, explora el catálogo para ver qué está disponible. El catálogo es un registro de solo lectura de executors y triggers integrados que vienen con Flowker. No necesitas crear entradas en el catálogo — las descubres y luego configuras las que necesitas.
Listar executors disponibles
Llama al endpoint Listar executors del catálogo para ver todos los tipos de executor que Flowker soporta — solicitudes HTTP, transformaciones de datos y más.
Listar triggers disponibles
Llama al endpoint Listar triggers del catálogo para ver cómo se pueden iniciar los workflows — webhooks o llamadas API manuales.
Paso 2: Configurar una conexión de provider y el executor
Los executors son componentes integrados que vienen con Flowker. No se crean a través de la API — se descubren a través del catálogo (
GET /v1/catalog/executors) en el Paso 1.
Para usar un executor, primero creas una configuración de provider que define la conexión al servicio externo, y luego gestionas las configuraciones de executor que vinculan un executor del catálogo a una conexión de provider con ajustes específicos de la operación.
Crear una configuración de provider
Llama aPOST /v1/provider-configurations para establecer la conexión a tu servicio externo — incluyendo la URL base, credenciales y configuraciones específicas del entorno. El campo config se valida contra el JSON Schema del provider desde el catálogo.
Consulta Configuraciones de provider más abajo para ver detalles y ejemplos.
Gestionar configuraciones de executor
Una vez que tienes una configuración de provider, gestiona las configuraciones de executor a través de los endpoints/v1/executors:
| Operación | Endpoint |
|---|---|
| Listar | GET /v1/executors |
| Obtener | GET /v1/executors/{id} |
| Actualizar | PATCH /v1/executors/{id} |
| Eliminar | DELETE /v1/executors/{id} |
Tipos de autenticación
Flowker soporta múltiples métodos de autenticación. Usa el método requerido por tu servicio externo.
| Tipo | Descripción | Campos de configuración |
|---|---|---|
none | Sin autenticación. | — |
api_key | API key en header o query. | key, value, location |
bearer | Bearer token en el header Authorization. | token |
basic | Usuario y contraseña (Base64). | username, password |
oidc_client_credentials | Flujo OAuth 2.0 client credentials con gestión automática de tokens. | tokenURL, clientID, clientSecret, scopes |
oidc_user | Flujo OAuth 2.0 resource owner password. | tokenURL, clientID, clientSecret, username, password, scopes |
Ejemplo — OIDC client credentials
Ejemplo — OIDC client credentials
Configuraciones de provider
Las configuraciones de provider son independientes de las configuraciones de executor. Mientras una configuración de executor define cómo Flowker llama a una operación específica en un servicio externo, una configuración de provider representa una conexión configurada a una instancia de provider — incluyendo su URL base, credenciales y configuraciones específicas del entorno. Piénsalo así: una configuración de provider es la conexión, y una configuración de executor es la operación que ejecutas sobre esa conexión.
Crear una configuración de provider
Crea una configuración de provider llamando al endpoint Crear configuración de provider. Proporciona elproviderId del catálogo y la configuración específica del provider (URL base, credenciales, etc.).
El campo config se valida contra el JSON Schema del provider en el catálogo. Si no coincide, la solicitud devuelve un error 422.
Ejemplo de solicitud
Ejemplo de solicitud
Probar conectividad
Después de crear una configuración de provider, pruébala con el endpoint Probar configuración de provider. La prueba ejecuta tres etapas — conectividad, autenticación y de extremo a extremo — y devuelve resultados para cada una.Habilitar y deshabilitar
Las configuraciones de provider se crean con estadoactive. Puedes deshabilitar temporalmente una con el endpoint Deshabilitar configuración de provider y rehabilitarla después con el endpoint Habilitar configuración de provider.
Consulta la API de configuraciones de provider para la referencia completa.
Paso 3: Configurar el executor
Marca el executor como configurado llamando al endpoint Update executor configuration. Esto transiciona el estado de
unconfigured a configured.
Paso 4: Valida tu configuración
Antes de usar un executor en un workflow, valida su configuración contra el schema del catálogo usando el endpoint Validate executor config (
POST /v1/catalog/executors/{id}/validate).
Esto ejecuta solo validación de JSON Schema — verifica que tu objeto de configuración coincida con la estructura que espera el executor (campos requeridos, tipos, formatos). No prueba conectividad con el servicio externo.
Para probar la conectividad real con un servicio externo, usa el endpoint Probar configuración de provider sobre la configuración de provider en su lugar. Ese endpoint ejecuta verificaciones de conectividad, autenticación y de extremo a extremo contra el servicio real.
Mapeo de campos y transformación de datos
Cuando los datos del workflow no coinciden con el formato que espera un servicio externo — o cuando un servicio devuelve datos en un formato que el siguiente paso no puede consumir — usa mapeos de campos y transformaciones para cubrir esa brecha. Los mapeos de campos y transformaciones se definen dentro del objeto
data de los nodes executor. Flowker aplica los mapeos de entrada antes de llamar al servicio externo, y los mapeos de salida después de recibir la respuesta.
Ejemplo rápido — mapear campos del workflow a un executor
Ejemplo rápido — mapear campos del workflow a un executor
Paso 5: Usar el executor en un workflow
Una vez que tu configuración de executor está validada, referénciala en un workflow. El executor se vuelve activo cuando se usa en un workflow activo. Para sacar temporalmente un executor de servicio, actualiza su configuración usando el endpoint Update executor configuration.
Usar un executor en un workflow
Referencia el executor en un node de tipo
executor.
El ejemplo a continuación crea un workflow de validación de pagos. Cuando llega un pago, Flowker llama al executor de verificación de fraude, evalúa el score de riesgo y aprueba o rechaza el pago según el resultado.
El workflow tiene cinco nodes: un trigger webhook que recibe el pago, un node executor que llama al servicio de verificación de fraude, un node conditional que evalúa el score, y dos nodes action para los resultados de aprobación y rechazo. Los edges los conectan en secuencia, con el node condicional bifurcando hacia uno u otro camino según el umbral del score.
Usa el endpoint Crear workflow para definir el workflow, luego Activar, y finalmente Ejecutar.
Ejemplo — Crear un workflow de validación de pagos
Ejemplo — Crear un workflow de validación de pagos
Ejemplo — Ejecutar el workflow
Ejemplo — Ejecutar el workflow
Disparar workflows
Las ejecuciones de workflows se disparan a través del endpoint Ejecutar workflow:
inputData para la ejecución. Todos los campos están disponibles para los nodes subsiguientes a través del namespace workflow — por ejemplo, workflow.transactionId o workflow.amount. Las salidas de los nodes están disponibles a través del ID del node — por ejemplo, check-fraud.score.
Idempotencia
Para prevenir ejecuciones duplicadas, incluye un headerIdempotency-Key en la solicitud. Si no se proporciona un Idempotency-Key, la protección contra duplicados no está garantizada.
Triggers por webhook
Los webhooks son la forma principal en que los sistemas externos disparan workflows de Flowker. En lugar de que tu sistema llame directamente a la API de ejecuciones, registras una ruta de webhook en un workflow y los servicios externos envían solicitudes HTTP a esa ruta.
Cómo funciona
- Agrega un node trigger de tipo
webhooka tu workflow con unpathymethoden sudata. - Cuando el workflow se activa, Flowker registra la ruta en su registro de webhooks.
- Los sistemas externos envían solicitudes a
POST /v1/webhooks/{path}(o el método que configuraste). - Flowker resuelve la ruta hacia el workflow correspondiente y lo ejecuta.
Definir un node trigger de webhook
El trigger de webhook es un node contype: "trigger" y los siguientes campos en data:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
triggerType | string | Sí | Debe ser "webhook". |
path | string | Sí | La ruta del webhook a registrar (p. ej., "payments/received"). |
method | string | Sí | Método HTTP que debe coincidir (p. ej., "POST"). |
verify_token | string | No | Token estático para la verificación del webhook. Cuando está definido, las solicitudes deben incluir un header X-Webhook-Token coincidente. |
Ejemplo — Node trigger de webhook
Ejemplo — Node trigger de webhook
Metadata del webhook
Flowker inyecta automáticamente un objeto_webhook en el inputData de la ejecución con metadata sobre la solicitud entrante:
| Campo | Descripción |
|---|---|
_webhook.method | Método HTTP usado (p. ej., POST). |
_webhook.path | La ruta del webhook resuelta. |
_webhook.headers | Headers de la solicitud (excluyendo Authorization, X-API-Key y X-Webhook-Token). |
_webhook.query | Parámetros del query string. |
_webhook.remote_ip | Dirección IP del llamador. |
workflow._webhook.
Notas importantes
- Cada combinación de ruta de webhook + método solo puede ser registrada por un workflow activo. Activar un segundo workflow con la misma ruta falla con un error de conflicto.
- Las rutas de webhook soportan segmentos anidados (p. ej.,
payments/stripe/received). - El tamaño máximo del cuerpo de la solicitud es 1 MB.
- Desactivar un workflow desregistra automáticamente sus rutas de webhook.
Manejo de errores
Si un node falla, la ejecución se detiene y se marca como
failed.
No hay fallback automático. Después de agotar los reintentos, la ejecución falla.
Cada falla incluye:
- Node fallido y razón
- Número de paso y salida
- Código de error
| Código de error | Significado | Acción |
|---|---|---|
FLK-0504 | Ejecución de node fallida. | Revisa los resultados del paso y la respuesta del servicio externo. |
FLK-0507 | Circuit breaker abierto. | Espera la recuperación o verifica la salud del servicio. |
Reintentos y circuit breaker
Flowker incluye resiliencia integrada para llamadas a executors.
Reintentos
Cuando una llamada a un executor falla con un error transitorio, Flowker reintenta automáticamente:- Reintentos máximos: 5 intentos
- Estrategia de backoff: Exponencial — 1s, 2s, 4s, 8s
- Errores no reintentables: Circuit breaker abierto, contexto cancelado, configuración inválida
Circuit breaker
Flowker usa un circuit breaker para proteger a los servicios externos de ser abrumados por llamadas fallidas repetidas:| Parámetro | Valor |
|---|---|
| Umbral de fallas | 5 fallas consecutivas abren el circuito |
| Timeout de recuperación | 30 segundos antes de reintentar (estado half-open) |
| Solicitudes half-open | 1 solicitud permitida para probar la recuperación |
FLK-0507 en lugar de llegar al servicio externo. Esto previene fallas en cascada y da tiempo al servicio externo para recuperarse.

Próximos pasos
Conceptos fundamentales
Comprende workflows, nodes, edges y ejecuciones.
Executor configurations API
Explora la API de configuración de executors.

