> ## 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.

# Criar um workflow

> Utilize este endpoint para criar uma nova definição de workflow. Novos workflows são criados com status `draft`.



## OpenAPI

````yaml pt/openapi/v3-current/flowker.yaml post /v1/workflows
openapi: 3.1.0
info:
  description: >-
    Referência completa da API para os serviços de orquestração de workflows do
    Flowker, incluindo gerenciamento de catálogo, definições de workflows,
    configurações de executores, configurações de provedores e execuções de
    workflows.
  title: API do Flowker
  version: 1.1.1
servers:
  - url: https://flowker.sandbox.lerian.net
security:
  - ApiKeyAuth: []
tags:
  - name: Catalog API
    description: >-
      Explore provedores, executores e gatilhos integrados disponíveis no
      catálogo do Flowker.
  - name: Workflows API
    description: Crie, atualize, ative, desative, clone e exclua definições de workflows.
  - name: Executions API
    description: Inicie execuções de workflows e acompanhe seu status e resultados.
  - name: Executor Configurations API
    description: >-
      Configure, teste e gerencie conexões de executores externos utilizadas
      pelos nós de workflow.
  - name: Provider Configurations API
    description: Configure, teste, habilite e desabilite integrações de provedores.
  - name: Dashboard API
    description: >-
      Recupere resumos agregados de workflows e execuções para dashboards
      operacionais.
  - name: Audit API
    description: >-
      Consulte e verifique eventos de auditoria para conformidade e visibilidade
      operacional.
  - name: Webhooks API
    description: >-
      Receba callbacks de webhooks de sistemas externos para disparar execuções
      de workflows.
paths:
  /v1/workflows:
    post:
      tags:
        - Workflows API
      summary: Criar um workflow
      description: >-
        Utilize este endpoint para criar uma nova definição de workflow. Novos
        workflows são criados com status `draft`.
      operationId: createWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowInput'
        description: Corpo da solicitação contendo a definição do workflow.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowCreateOutput'
          description: >-
            Indica que o recurso foi criado com sucesso e a operação foi
            concluída conforme esperado.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica que a solicitação estava malformada ou continha parâmetros
            inválidos.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica que a solicitação não pôde ser concluída devido a um conflito
            com o estado atual do recurso.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Indica um erro interno inesperado. Se persistir, entre em contato
            com o suporte.
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: Descrição opcional legível por humanos do propósito do workflow.
          example: Receives a webhook trigger and logs the payment event.
          maxLength: 500
          type: string
        edges:
          description: >-
            Conexões entre nós que definem o fluxo de execução. Cada aresta
            vincula um nó de origem a um nó de destino, opcionalmente com uma
            condição.
          items:
            $ref: '#/components/schemas/WorkflowEdgeInput'
          maxItems: 200
          type: array
        metadata:
          additionalProperties:
            type: object
          description: >-
            Pares chave-valor personalizados para etiquetar ou categorizar o
            workflow.
          example:
            team: payments
            environment: sandbox
          type: object
        name:
          description: Nome único para o workflow.
          example: Payment Notification Flow
          maxLength: 100
          minLength: 1
          type: string
        nodes:
          description: >-
            Os passos que compõem este workflow. Cada nó é uma unidade de
            trabalho: um gatilho, uma chamada de executor, uma ramificação
            condicional ou uma ação.
          items:
            $ref: '#/components/schemas/WorkflowNodeInput'
          maxItems: 100
          type: array
      required:
        - name
      type: object
    WorkflowCreateOutput:
      properties:
        createdAt:
          description: Marca temporal de quando o workflow foi criado.
          example: '2026-03-17T14:30:00Z'
          format: date-time
          type: string
        status:
          description: Status inicial do workflow (sempre `draft` na criação).
          example: draft
          type: string
        version:
          description: Versão da definição do workflow.
          example: 1.0.0
          type: string
        workflowId:
          description: Identificador único do workflow criado.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          format: uuid
          type: string
      type: object
    ErrorResponse:
      properties:
        code:
          description: Código de erro legível por máquina com o prefixo FLK.
          example: FLK-0001
          type: string
        message:
          description: Explicação do erro legível por humanos.
          example: Invalid input provided
          type: string
        title:
          description: Título curto da categoria de erro.
          example: Bad Request
          type: string
      required:
        - code
        - message
        - title
      type: object
    WorkflowEdgeInput:
      properties:
        condition:
          description: >-
            Expressão opcional avaliada em tempo de execução para determinar se
            esta aresta é seguida. Suporta referência a saídas de passos e
            códigos de status HTTP.
          example: steps.kyc_check.status == 'approved'
          maxLength: 500
          type: string
        id:
          description: Identificador único para esta aresta dentro do workflow.
          example: e1
          maxLength: 50
          minLength: 1
          type: string
        label:
          description: >-
            Rótulo opcional legível por humanos para a aresta (útil para
            editores visuais).
          example: On success
          maxLength: 50
          type: string
        source:
          description: ID do nó de origem.
          example: trigger-1
          maxLength: 50
          minLength: 1
          type: string
        sourceHandle:
          description: >-
            Identificador de conector opcional no nó de origem para editores
            visuais.
          example: output-1
          maxLength: 50
          type: string
        target:
          description: ID do nó de destino.
          example: log-event
          maxLength: 50
          minLength: 1
          type: string
      required:
        - id
        - source
        - target
      type: object
    WorkflowNodeInput:
      properties:
        data:
          additionalProperties:
            type: object
          description: >-
            Dados de configuração específicos do tipo de nó (ex., triggerId para
            gatilhos, executorId + URL para executores).
          example:
            triggerId: webhook
          type: object
        id:
          description: >-
            Identificador único para este nó dentro do workflow. Usado nas
            arestas para definir conexões.
          example: trigger-1
          maxLength: 50
          minLength: 1
          type: string
        name:
          description: Nome de exibição opcional do nó.
          example: Webhook Trigger
          maxLength: 50
          type: string
        position:
          $ref: '#/components/schemas/PositionInput'
        type:
          description: >-
            Tipo do nó: `trigger` (ponto de entrada), `executor` (chamada
            externa), `conditional` (lógica de ramificação) ou `action`
            (operação interna).
          enum:
            - trigger
            - executor
            - conditional
            - action
          example: trigger
          type: string
      required:
        - id
        - position
        - type
      type: object
    PositionInput:
      properties:
        x:
          description: Posição horizontal em pixels.
          example: 100
          type: integer
        'y':
          description: Posição vertical em pixels.
          example: 200
          type: integer
      type: object
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Chave de API para autenticar as requisições à API do Flowker.
        Provisionada por meio da variável de ambiente API_KEY durante o
        deployment.

````