> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear un workflow

> Utilice este endpoint para crear una nueva definición de workflow. Los nuevos workflows se crean con estado `draft`.



## OpenAPI

````yaml es/openapi/v3-current/flowker.yaml post /v1/workflows
openapi: 3.1.0
info:
  description: >-
    Referencia completa de la API para los servicios de orquestación de
    workflows de Flowker, incluyendo gestión de catálogo, definiciones de
    workflows, configuraciones de ejecutores, configuraciones de proveedores y
    ejecuciones de workflows.
  title: API de Flowker
  version: 1.1.1
servers:
  - url: https://flowker.sandbox.lerian.net
security:
  - ApiKeyAuth: []
tags:
  - name: Catalog API
    description: >-
      Explore proveedores, ejecutores y disparadores integrados disponibles en
      el catálogo de Flowker.
  - name: Workflows API
    description: >-
      Cree, actualice, active, desactive, clone y elimine definiciones de
      workflows.
  - name: Executions API
    description: Inicie ejecuciones de workflows y rastree su estado y resultados.
  - name: Executor Configurations API
    description: >-
      Configure, pruebe y administre conexiones de ejecutores externos
      utilizadas por los nodos de workflow.
  - name: Provider Configurations API
    description: Configure, pruebe, habilite y deshabilite integraciones de proveedores.
  - name: Dashboard API
    description: >-
      Recupere resúmenes agregados de workflows y ejecuciones para dashboards
      operacionales.
  - name: Audit API
    description: >-
      Consulte y verifique eventos de auditoría para cumplimiento y visibilidad
      operacional.
  - name: Webhooks API
    description: >-
      Reciba callbacks de webhooks desde sistemas externos para disparar
      ejecuciones de workflows.
paths:
  /v1/workflows:
    post:
      tags:
        - Workflows API
      summary: Crear un workflow
      description: >-
        Utilice este endpoint para crear una nueva definición de workflow. Los
        nuevos workflows se crean con estado `draft`.
      operationId: createWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowInput'
        description: Cuerpo de la solicitud que contiene la definición del workflow.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCreateOutput'
          description: >-
            Indica que el recurso fue creado exitosamente y la operación se
            completó según lo esperado.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica que la solicitud estaba mal formada o contenía parámetros no
            válidos.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica que la solicitud no pudo completarse debido a un conflicto
            con el estado actual del recurso.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica un error interno inesperado. Si persiste, contacte al
            soporte.
components:
  schemas:
    CreateWorkflowInput:
      example:
        name: Payment Notification Flow
        description: Receives a webhook trigger and logs the payment event.
        nodes:
          - id: trigger-1
            type: trigger
            name: Webhook Trigger
            position:
              x: 0
              'y': 0
            data:
              triggerId: webhook
          - id: log-event
            type: action
            name: Log Payment Event
            position:
              x: 200
              'y': 0
            data:
              action: log
        edges:
          - id: e1
            source: trigger-1
            target: log-event
        metadata:
          team: payments
          environment: sandbox
      properties:
        description:
          description: Descripción opcional legible por humanos del propósito del workflow.
          example: Receives a webhook trigger and logs the payment event.
          maxLength: 500
          type: string
        edges:
          description: >-
            Conexiones entre nodos que definen el flujo de ejecución. Cada
            arista vincula un nodo de origen a un nodo de destino, opcionalmente
            con una condición.
          items:
            $ref: '#/components/schemas/WorkflowEdgeInput'
          maxItems: 200
          type: array
        metadata:
          additionalProperties:
            type: object
          description: >-
            Pares clave-valor personalizados para etiquetar o categorizar el
            workflow.
          example:
            team: payments
            environment: sandbox
          type: object
        name:
          description: Nombre único para el workflow.
          example: Payment Notification Flow
          maxLength: 100
          minLength: 1
          type: string
        nodes:
          description: >-
            Los pasos que componen este workflow. Cada nodo es una unidad de
            trabajo: un disparador, una llamada a ejecutor, una rama condicional
            o una acción.
          items:
            $ref: '#/components/schemas/WorkflowNodeInput'
          maxItems: 100
          type: array
      required:
        - name
      type: object
    WorkflowCreateOutput:
      properties:
        createdAt:
          description: Marca de tiempo de cuando se creó el workflow.
          example: '2026-03-17T14:30:00Z'
          format: date-time
          type: string
        status:
          description: Estado inicial del workflow (siempre `draft` al crear).
          example: draft
          type: string
        version:
          description: Versión de la definición del workflow.
          example: 1.0.0
          type: string
        workflowId:
          description: Identificador único del workflow creado.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          format: uuid
          type: string
      type: object
    ErrorResponse:
      properties:
        code:
          description: Código de error legible por máquina con el prefijo FLK.
          example: FLK-0001
          type: string
        message:
          description: Explicación del error legible por humanos.
          example: Invalid input provided
          type: string
        title:
          description: Título corto de categoría de error.
          example: Bad Request
          type: string
      required:
        - code
        - message
        - title
      type: object
    WorkflowEdgeInput:
      properties:
        condition:
          description: >-
            Expresión opcional evaluada en tiempo de ejecución para determinar
            si se sigue esta arista. Soporta la referencia a salidas de pasos y
            códigos de estado HTTP.
          example: steps.kyc_check.status == 'approved'
          maxLength: 500
          type: string
        id:
          description: Identificador único para esta arista dentro del workflow.
          example: e1
          maxLength: 50
          minLength: 1
          type: string
        label:
          description: >-
            Etiqueta opcional legible por humanos para la arista (útil para
            editores visuales).
          example: On success
          maxLength: 50
          type: string
        source:
          description: ID del nodo de origen.
          example: trigger-1
          maxLength: 50
          minLength: 1
          type: string
        sourceHandle:
          description: >-
            Identificador de conector opcional en el nodo de origen para
            editores visuales.
          example: output-1
          maxLength: 50
          type: string
        target:
          description: ID del nodo de destino.
          example: log-event
          maxLength: 50
          minLength: 1
          type: string
      required:
        - id
        - source
        - target
      type: object
    WorkflowNodeInput:
      properties:
        data:
          additionalProperties:
            type: object
          description: >-
            Datos de configuración específicos del tipo de nodo (ej., triggerId
            para disparadores, executorId + URL para ejecutores).
          example:
            triggerId: webhook
          type: object
        id:
          description: >-
            Identificador único para este nodo dentro del workflow. Se usa en
            las aristas para definir conexiones.
          example: trigger-1
          maxLength: 50
          minLength: 1
          type: string
        name:
          description: Nombre para mostrar opcional del nodo.
          example: Webhook Trigger
          maxLength: 50
          type: string
        position:
          $ref: '#/components/schemas/PositionInput'
        type:
          description: >-
            Tipo del nodo: `trigger` (punto de entrada), `executor` (llamada
            externa), `conditional` (lógica de ramificación) o `action`
            (operación interna).
          enum:
            - trigger
            - executor
            - conditional
            - action
          example: trigger
          type: string
      required:
        - id
        - position
        - type
      type: object
    PositionInput:
      properties:
        x:
          description: Posición horizontal en píxeles.
          example: 100
          type: integer
        'y':
          description: Posición vertical en píxeles.
          example: 200
          type: integer
      type: object
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Clave de API para autenticar las solicitudes a la API de Flowker. Se
        aprovisiona mediante la variable de entorno API_KEY durante el
        despliegue.

````