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

# Actualizar un flujo

> Actualiza la configuración de un flujo existente, incluyendo nombre, descripción, lógica de ejecución, condiciones y configuración de destino. Devuelve el recurso actualizado (200) tras una actualización correcta.



## OpenAPI

````yaml /api-reference/openapi-v1.json put /v1/organizations/{organization_id}/flows/{flow_id}
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/{flow_id}:
    put:
      tags:
        - Flujos
      summary: Actualizar un flujo
      description: >-
        Actualiza la configuración de un flujo existente, incluyendo nombre,
        descripción, lógica de ejecución, condiciones y configuración de
        destino. Devuelve el recurso actualizado (200) tras una actualización
        correcta.
      operationId: updateFlow
      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: flow_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único del flujo a actualizar
          example: 507f1f77bcf86cd799439012
        - 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/UpdateFlowV1Request'
            examples:
              update-flow-configuration:
                summary: Actualizar flujo con nueva configuracion
                value:
                  name:
                    en-EN: Flujo diario de copia actualizado
                    es-ES: Proceso de copia diaria actualizado
                  description:
                    en-EN: Proceso automatizado de copia diaria actualizado
                    es-ES: Proceso automatizado de copia actualizado
                  detection_only: false
                  cooldown_minutes: 120
                  enabled: true
                  init_text:
                    en-EN: Iniciando proceso de copia actualizado...
                    es-ES: Iniciando proceso de copia actualizado...
                  ok_text:
                    en-EN: Copia completada correctamente
                  ko_text:
                    en-EN: La copia fallo. Por favor, revisa los registros.
                  target:
                    type: workspaces
                    ids:
                      - 507f1f77bcf86cd799439012
                      - 507f1f77bcf86cd799439013
                  microservice_id: 507f1f77bcf86cd799439014
                  conditions:
                    - condition_type_id: 507f1f77bcf86cd799439015
                      operator: gte
                      compare_to: '90'
                      period: null
                      check_every: 600
      responses:
        '200':
          description: >-
            Flujo actualizado correctamente. La respuesta contiene el recurso
            actualizado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowV1'
        '400':
          $ref: '#/components/responses/BadRequest'
          description: >-
            Solicitud incorrecta. Causas comunes: - Faltan campos obligatorios -
            Valores de campo no válidos - Configuración de condición no válida -
            Identificador de microservicio no válido
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: No autorizado - autenticación requerida
        '404':
          $ref: '#/components/responses/NotFound'
          description: Flujo u organización no encontrados
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
          description: >-
            Entidad no procesable. Causas comunes: - Microservicio referenciado
            no encontrado - Entidades objetivo referenciadas (Workspaces,
            Workspace groups, Grupos de reporte) no encontradas o no
            pertenecientes - Tipo de condición no válido - El flujo no se puede
            habilitar
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    UpdateFlowV1Request:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/MultilangField'
          description: >-
            Nombre del flujo. Se requiere al menos una clave de idioma; cada
            valor 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 entre 1 y 512 caracteres.
        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
          description: >-
            Indica si el flujo está habilitado. PUT espera una definición
            completa; este campo es obligatorio.
        init_text:
          $ref: '#/components/schemas/MultilangField'
          nullable: true
          description: >-
            Mensaje de texto inicial. Obligatorio en PUT. Envia null para
            limpiar; en caso contrario, objeto con al menos una clave de idioma;
            cada valor entre 1 y 512 caracteres.
        ok_text:
          $ref: '#/components/schemas/MultilangField'
          nullable: true
          description: >-
            Mensaje de texto de éxito. Obligatorio en PUT. Envia null para
            limpiar; en caso contrario, objeto con al menos una clave de idioma;
            cada valor entre 1 y 512 caracteres.
        ko_text:
          $ref: '#/components/schemas/MultilangField'
          nullable: true
          description: >-
            Mensaje de texto de error. Obligatorio en PUT. Envia null para
            limpiar; en caso contrario, objeto con al menos una clave de idioma;
            cada valor 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
        - detection_only
        - cooldown_minutes
        - enabled
        - init_text
        - ok_text
        - ko_text
        - 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

````