flow.<suffix> — Custom Flow Events
Author-defined events emitted from flows via the Outbound Webhook Event card
type: flow.<suffix> (e.g. flow.order_confirmed, flow.lead_qualified)
Authored by operators via the Outbound Webhook Event flow card. The <suffix> is author-defined — whatever the flow card's Event name field resolves to at runtime.
Subscribing
| Subscription value | What it matches |
|---|---|
flow.<exact-name> | Only that specific custom event |
flow | Every flow.* event emitted in the organisation (namespace wildcard) |
Both are configured on the connection's Subscribed events picker. Use flow when you want a single subscriber to receive every custom event your authors emit.
Subscribing to flow means you will start receiving events for new suffixes authors invent later — without any subscription change on your side. Design your receiver to key off type (or meta.event) rather than hardcoding a list.
data shape
type Data =
| Record<string, unknown> // If the author's payload parsed to a JSON object
| { value: unknown }; // If the parsed JSON was a non-object (array / primitive)
// — wrapped to keep `data` a stable object shape.The flow card authors a raw JSON string in a Monaco editor, with {{variable}} interpolation applied before JSON.parse. What lands at the envelope data root depends on what the payload parses to:
| Parsed JSON | Delivered data |
|---|---|
| Object (recommended) | The object itself |
| Array or primitive (string, number, bool) | { "value": <parsed> } |
| Malformed / empty | {} (flow continues; parse error is logged) |
Example envelope
{
"id": "evt_01JV4QEJX54A0E3KJ9W8R1Z4DP",
"type": "flow.order_confirmed",
"timestamp": "2026-04-24T14:00:00.000Z",
"data": {
"orderId": "ORD-123",
"status": "confirmed",
"contactId": "6804f4d5a6f9f35f6e66f1a2"
},
"meta": {
"eventId": "evt_01JV4QEJX54A0E3KJ9W8R1Z4DP",
"event": "flow.order_confirmed",
"occurredAt": "2026-04-24T14:00:00.000Z",
"organisationId": "6640f3d5c8a0d7e8b7f20222",
"connectionId": "6640f45ac8a0d7e8b7f2014a",
"apiVersion": "2026-04-01",
"attempt": 1
}
}Example — wrapped primitive
Author's payload is "ORD-123":
{
"id": "evt_...",
"type": "flow.order_id",
"timestamp": "2026-04-24T14:00:00.000Z",
"data": { "value": "ORD-123" },
"meta": { "event": "flow.order_id", "apiVersion": "2026-04-01", "attempt": 1 }
}Notes
- Suffix allowed characters:
a–z,A–Z,0–9,_,.,-. Invalid suffixes cause a validation error and the flow stops at the card. - Malformed JSON in the card logs a parse error and emits
data: {}— the flow keeps running. - Blank payload emits
data: {}. - Variable interpolation happens before parse — quote string variables correctly in the JSON source.
- Fire-and-forget — the flow advances immediately regardless of subscriber status.
Related
- Outbound Webhook Event card — flow-author reference
- Outbound Webhooks — overview and event catalogue
- Envelope & Delivery — headers, signing, retry policy