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

# Crear un flujo

> Crea un nuevo flujo de automatización para la organización especificada. El flujo define la lógica de ejecución, las condiciones y los workspaces objetivo. Devuelve los datos del flujo creado tras una creación exitosa.



## OpenAPI

````yaml /api-reference/openapi-v1.json post /v1/organizations/{organization_id}/flows
openapi: 3.0.3
info:
  title: API Publica Portal
  version: 1.0.0
  description: Api publica REST para portal
servers:
  - url: https://api.staging.flxwvdexternal.com
    description: Staging API server
security:
  - bearerAuth: []
tags: []
paths:
  /v1/organizations/{organization_id}/flows:
    post:
      tags:
        - Flujos
      summary: Crear un flujo
      description: >-
        Crea un nuevo flujo de automatización para la organización especificada.
        El flujo define la lógica de ejecución, las condiciones y los workspaces
        objetivo. Devuelve los datos del flujo creado tras una creación exitosa.
      operationId: createFlow
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único de la organización
          example: 507f1f77bcf86cd799439011
        - name: Accept-Language
          in: header
          required: false
          schema:
            type: string
            enum:
              - en-EN
              - es-ES
              - pt-BR
              - ca-ES
              - eu-ES
            default: es-ES
          description: >-
            Código de idioma para campos de texto que admiten varios idiomas. Al
            crear o actualizar recursos, esto especifica el idioma de los
            valores de texto proporcionados. Al recuperar recursos, esto
            determina qué variante de idioma de los campos de texto multilingües
            se devuelve. Valores aceptados: 'en-EN' (inglés), 'es-ES' (español),
            'pt-BR' (portugués), 'ca-ES' (catalán), 'eu-ES' (euskera). El valor
            predeterminado es 'es-ES' si no se proporciona.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFlowV1Request'
            examples:
              create-workspace-flow:
                summary: Crear un flujo dirigido a workspaces específicos
                value:
                  name:
                    en-EN: Daily Backup Flow
                    es-ES: Proceso de copia diaria
                  description:
                    en-EN: Automated daily backup process
                    es-ES: Proceso automatizado de copia de seguridad diaria
                  type: workspace
                  detection_only: false
                  cooldown_minutes: 60
                  enabled: false
                  init_text:
                    en-EN: Starting backup process...
                    es-ES: Iniciando proceso de copia...
                  ok_text:
                    en-EN: Backup completed successfully
                    es-ES: Copia completada correctamente
                  ko_text:
                    en-EN: Backup failed. Please check logs.
                    es-ES: Copia fallida. Revise los registros.
                  target:
                    type: workspaces
                    ids:
                      - 507f1f77bcf86cd799439012
                      - 507f1f77bcf86cd799439013
                  microservice_id: 507f1f77bcf86cd799439014
                  conditions:
                    - condition_type_id: 507f1f77bcf86cd799439015
                      operator: gt
                      compare_to: '80'
                      check_every: 300
      responses:
        '201':
          description: Flujo creado correctamente. La respuesta contiene el recurso creado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowV1'
              example:
                id: 507f1f77bcf86cd799439011
        '400':
          $ref: '#/components/responses/BadRequest'
          description: >-
            Solicitud incorrecta. Causas comunes: - Faltan campos obligatorios -
            Valores de campo inválidos - Configuración de condición inválida -
            Identificador de microservicio inválido
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: No autorizado - se requiere autenticación
        '404':
          $ref: '#/components/responses/NotFound'
          description: Organización no encontrada
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
          description: >-
            Entidad no procesable. Causas comunes: - Microservicio referenciado
            no encontrado - Entidades objetivo referenciadas (workspaces, grupos
            de Workspace, grupos de reporte) no encontradas o no pertenecientes
            - Tipo de condición inválido - El flujo no puede habilitarse
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CreateFlowV1Request:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Nombre del flujo. Se requiere al menos una clave de idioma; cada
            valor debe tener entre 1 y 512 caracteres.
        description:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Descripción del flujo. Se requiere al menos una clave de idioma;
            cada valor debe tener entre 1 y 512 caracteres.
        type:
          type: string
          enum:
            - session
            - workspace
        detection_only:
          type: boolean
        cooldown_minutes:
          type: number
          minimum: 10
          maximum: 1440
          description: Tiempo de espera en minutos. Debe estar entre 10 y 1440.
        enabled:
          type: boolean
          default: false
          description: >-
            Si es true, el flujo queda habilitado tras su creación (requiere
            condiciones, microservicio y objetivo válidos). Si se omite o es
            false, se crea un flujo deshabilitado.
        init_text:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Mensaje de texto inicial. Se omite si no es necesario. Cuando se
            proporciona, se requiere al menos una clave de idioma; cada valor
            debe tener entre 1 y 512 caracteres.
        ok_text:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Mensaje de texto de éxito. Se omite si no es necesario. Cuando se
            proporciona, se requiere al menos una clave de idioma; cada valor
            debe tener entre 1 y 512 caracteres.
        ko_text:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Mensaje de texto de error. Se omite si no es necesario. Cuando se
            proporciona, se requiere al menos una clave de idioma; cada valor
            debe tener entre 1 y 512 caracteres.
        target:
          type: object
          properties:
            type:
              type: string
              enum:
                - all_workspaces
                - workspaces
                - workspace_groups
                - reporting_groups
            ids:
              type: array
              items:
                type: string
                maxLength: 512
          required:
            - type
        microservice_id:
          type: string
          maxLength: 24
          pattern: ^[0-9a-f]{24}$
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FlowConditionInputV1'
      required:
        - name
        - description
        - type
        - detection_only
        - cooldown_minutes
        - target
        - microservice_id
        - conditions
    FlowV1:
      type: object
      description: >-
        Detalle del flujo tal como lo devuelve GET flow by id. La organización
        está implícita por la ruta
        `/v1/organizations/{organization_id}/flows/{flow_id}`. Los
        workspaces/grupos de destino se normalizan en target.ids (cadenas
        hexadecimales de ObjectId de MongoDB).
      properties:
        id:
          type: string
          maxLength: 24
          pattern: ^[0-9a-f]{24}$
        created_at:
          type: string
          format: date-time
        name:
          type: string
          description: Resuelto para Accept-Language cuando es multilingüe
        description:
          type: string
          description: Resuelto para Accept-Language cuando es multilingüe
        type:
          type: string
          enum:
            - session
            - workspace
        version:
          type: number
        detection_only:
          type: boolean
        cooldown_minutes:
          type: number
          description: Tiempo de espera en minutos
        enabled:
          type: boolean
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FlowConditionV1'
          description: Omitido o vacío cuando el flujo no tiene condiciones
        trigger:
          type: string
          nullable: true
        target:
          $ref: '#/components/schemas/FlowTargetSelectorV1'
          description: >-
            Destino de ejecución: type selecciona el alcance; ids enumera
            valores de _id de Workspace, _id de grupo de Workspace o _id de
            Grupo de reporte (vacío cuando type es ALL_WORKSPACES)
        microservice_id:
          type: string
          nullable: true
          description: ID del microservicio vinculado cuando está presente
        init_text:
          type: string
          nullable: true
          description: Resuelto para Accept-Language cuando es multilingüe
        ok_text:
          type: string
          nullable: true
          description: Resuelto para Accept-Language cuando es multilingüe
        ko_text:
          type: string
          nullable: true
          description: Resuelto para Accept-Language cuando es multilingüe
        execution_metrics:
          $ref: '#/components/schemas/FlowExecutionMetricsV1'
          nullable: true
          description: Presente cuando se calcularon métricas para este flujo
      required:
        - id
        - created_at
        - name
        - description
        - type
        - version
        - detection_only
        - cooldown_minutes
        - enabled
        - target
    MultilangField:
      type: object
      description: >-
        Campo multilenguaje. Las claves son códigos de idioma (en-EN, es-ES,
        pt-BR, eu-ES, ca-ES). Debe haber al menos una clave. Cada valor debe
        tener entre 1 y 512 caracteres.
      properties:
        en-EN:
          type: string
          minLength: 1
          maxLength: 512
        es-ES:
          type: string
          minLength: 1
          maxLength: 512
        pt-BR:
          type: string
          minLength: 1
          maxLength: 512
        eu-ES:
          type: string
          minLength: 1
          maxLength: 512
        ca-ES:
          type: string
          minLength: 1
          maxLength: 512
      additionalProperties: false
    FlowConditionInputV1:
      type: object
      properties:
        condition_type_id:
          type: string
          maxLength: 24
          pattern: ^[0-9a-f]{24}$
        operator:
          type: string
          enum:
            - eq
            - gt
            - lt
            - gte
            - lte
            - startsWith
            - endsWith
            - contains
            - at
        compare_to:
          type: string
          maxLength: 512
        period:
          type: number
          nullable: true
        check_every:
          type: number
      required:
        - condition_type_id
        - operator
        - compare_to
        - check_every
    FlowConditionV1:
      type: object
      properties:
        condition_type_id:
          type: string
        metric:
          type: string
        operator:
          type: string
        compare_to:
          type: string
        period:
          type: number
          nullable: true
        check_every:
          type: number
      required:
        - condition_type_id
        - metric
        - operator
        - compare_to
        - check_every
    FlowTargetSelectorV1:
      type: object
      properties:
        type:
          type: string
          enum:
            - all_workspaces
            - workspaces
            - workspace_groups
            - reporting_groups
          description: >-
            ALL_WORKSPACES: ids siempre es []. WORKSPACES: ids son _id de
            documentos de Workspace (24 hex). WORKSPACE_GROUPS /
            REPORTING_GROUPS: ids son valores de _id de grupo.
        ids:
          type: array
          items:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
      required:
        - type
        - ids
    FlowExecutionMetricsV1:
      type: object
      properties:
        targeted_workspaces:
          type: number
        evaluations_per_day:
          type: number
        possible_executions_per_day:
          type: number
        total_possible_executions_per_day:
          type: number
      required:
        - targeted_workspaces
        - evaluations_per_day
        - possible_executions_per_day
        - total_possible_executions_per_day
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: string
          required:
            - message
            - code
      required:
        - error
  responses:
    BadRequest:
      description: Solicitud incorrecta
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: No autorizado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: No encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnprocessableEntity:
      description: Entidad no procesable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Demasiadas solicitudes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Error interno del servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````