---
title: "Obtiene una ejecución de flujo con sus nodos"
method: GET
path: "/workspaces/{workspaceId}/flow-runs/{runId}"
tags: ["Flows"]
---

# Obtiene una ejecución de flujo con sus nodos

`GET /workspaces/{workspaceId}/flow-runs/{runId}`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/workspaces/{workspaceId}/flow-runs/{runId}`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

El run con sus nodos y la definición que realmente se usó, no la actual: si el flujo se editó después, aquí sigues viendo con qué corrió. Es lo que necesitas para entender por qué una ejecución vieja hizo lo que hizo.

## Path parameters

- `workspaceId` number, required
- `runId` string, required

## Response `200`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` FlowRunDetailResponseDto, required
    - `nodes` FlowRunNodeResponseDto[], required
      - `duration_ms` number, nullable, required
      - `error` string, nullable, required
      - `finished_at` string, nullable, required
      - `id` string, required
      - `input_snapshot` object, nullable, required: Lo que entró al nodo, ya con las referencias `@{…}` resueltas. Forma libre.
      - `media_ref_ids` number[], nullable, required: IDs de los archivos de Mediateca que el nodo generó o adjuntó.
      - `node_id` string, required: `id` del nodo en el lienzo — así se cruza con `definition.nodes[]`.
      - `node_type` string, required
      - `output_artifact` object, nullable, required: Lo que produjo el nodo. Su forma depende del `node_type`. **Nodos que esperan respuesta** (`whatsapp.send_buttons`, `whatsapp.send_list`, `channel.ask_options`, `flow.question`, `whatsapp.send_cta_url` y las plantillas con botones de respuesta rápida): al reanudarse agregan `resolution` (por qué se cerró la espera), `replied` (`false` solo si venció), `selection` (`{ id, title }` de lo elegido, o `null`), `_flow_taken_handle` (la salida que tomó) y, si guardan en el contacto, `saved_to` y `saved_value`. Valores de `resolution`: `button` (tocó un botón), `list` (eligió una fila), `question` (respondió la pregunta), `reply` (volvió a escribir), `no_match` (llegó un mensaje que no es una opción válida, p. ej. texto libre) y `timeout` (venció la espera). **`no_match` y `timeout` salen por la misma rama `fallback` («Sin respuesta»)**: para separarlos, ramifica con una condición sobre `@{node:<id>.resolution}`.
      - `run_id` string, required
      - `started_at` string, nullable, required
      - `status` 'pending' | 'running' | 'success' | 'failed' | 'skipped' | 'waiting', required: `waiting` = el nodo mandó su mensaje interactivo y espera la respuesta.
    - `run` FlowRunResponseDto, required
      - `created_by` number, nullable, required
      - `definition_id` number, nullable: Referencia a la definición ejecutada, en el catálogo `flow_definitions`.
      - `definition_used` FlowDefinitionDto, required
        - `edges` FlowEdgeDto[], required
          - `id` string, required
          - `source` string, required: `id` del nodo origen.
          - `sourceHandle` string, nullable: Handle de salida del origen — relevante en condición (sí/no) y en bifurcaciones.
          - `target` string, required: `id` del nodo destino.
          - `targetHandle` string, nullable
        - `nodes` FlowNodeDto[], required
          - `data` object, required: Config del nodo. Su forma depende del `type`: los campos válidos de cada uno están declarados en `GET /node-registry` (`fields[]`).
          - `id` string, required: UUID generado por el cliente al arrastrar el nodo a la paleta.
          - `position` FlowNodePositionDto, required
            - `x` number, required
            - `y` number, required
          - `type` string, required: Tipo declarado en el node-registry (`GET /node-registry`).
      - `duration_ms` number, nullable, required
      - `error` string, nullable, required: Mensaje del fallo cuando `status` es `failed`; `null` en cualquier otro caso.
      - `finished_at` string, nullable, required: Cuándo llegó a un estado terminal. `null` si sigue corriendo o esperando.
      - `flow_id` string, required
      - `id` string, required
      - `result_text` string, nullable, required: Texto que el nodo `function.result` devuelve al Met. `null` si el flujo no tiene uno.
      - `source` 'manual' | 'automation' | 'parent_flow' | 'broadcast' | 'function' | 'channel', required: Qué originó la corrida.
      - `source_id` string, nullable, required: ID de lo que la originó (la automatización, el flujo padre, el canal…).
      - `started_at` string, required
      - `status` 'running' | 'success' | 'failed' | 'cancelled' | 'waiting', required: `waiting` = suspendida por un nodo interactivo que espera respuesta del contacto.
      - `trigger_payload` TriggerPayloadDto, required
        - `kind` 'contact' | 'item' | 'product' | 'post' | 'event' | 'empty', required: Qué tipo de entidad disparó el flujo. `empty` = disparo sin carga.
        - `payload` object, required: Los datos de esa entidad. Forma libre: depende del `kind`.
      - `workspace_id` number, required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/fc6d3aad75de?raw)
