GET /v1/triggers/new-flow-triggered

Most recent flow sessions started for any contact in the workspace.

Returns up to 100 most-recent flow sessions, sorted by created_at DESC. A flow session is created every time a contact enters a published flow — manually via trigger-flow or automatically via a flow's own entry trigger.

GET /api/v1/triggers/new-flow-triggered

Query parameters

Param Type Description
flow_id UUID Optional. Limit results to one flow

Request

curl 'https://www.qyvo.io/api/v1/triggers/new-flow-triggered?flow_id=01J3F...' \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
const sessions = await fetch(
  'https://www.qyvo.io/api/v1/triggers/new-flow-triggered?flow_id=01J3F...',
  { headers: { Authorization: `Bearer ${process.env.QYVO_TOKEN}` } },
).then((r) => r.json());
$sessions = Http::withToken(env('QYVO_TOKEN'))
    ->get('https://www.qyvo.io/api/v1/triggers/new-flow-triggered', [
        'flow_id' => '01J3F...',
    ])
    ->json();
import os, httpx
sessions = httpx.get(
    'https://www.qyvo.io/api/v1/triggers/new-flow-triggered',
    params={'flow_id': '01J3F...'},
    headers={'Authorization': f"Bearer {os.environ['QYVO_TOKEN']}"},
).json()

Response — 200 OK

[
  {
    "id": "01J5A...",
    "flow_id": "01J3F...",
    "flow_name": "Abandoned cart 30min",
    "contact_id": "01J1Y...",
    "contact_phone": "+14155550123",
    "contact_name": "Romain",
    "contact_email": null,
    "status": "running",
    "current_node_id": "node_3",
    "context": {
      "trigger_source": "shopify_abandoned_cart",
      "cart_id": "987654321",
      "cart_total": "129.00"
    },
    "last_interaction_at": "2026-05-07T08:14:23+00:00",
    "expires_at": "2026-05-07T08:44:23+00:00",
    "completed_at": null,
    "created_at": "2026-05-07T08:14:23+00:00"
  }
]
Field Notes
status running, completed, expired, failed
current_node_id Pointer into the flow graph; useful for debugging stuck sessions
context Free-form key/value bag passed in at trigger time + populated by flow nodes
expires_at Sessions auto-expire after flow.settings.session_ttl_minutes (default 30 min for flows)

Polling pattern

Same shape as new-message-received. Cache the most recent id; stop iterating when you hit it.