FlowsCards

Outbound Webhook Event Card

Emit a custom flow event to outbound webhook connections

The Outbound Webhook Event card fires a custom flow.* event to your outbound webhook connections mid-flow. Use it to notify external systems when a flow reaches a meaningful checkpoint — order confirmed, lead captured, survey completed, support ticket escalated, trial converted.

Outbound Webhook Event card configuration

The card is fire-and-forget — it hands the event to the outbound delivery queue and advances to the next card immediately. A slow or broken subscriber URL never blocks flow execution.

This card is available on Pro and Enterprise plans. Lower tiers do not show it in the card palette.

Configuration

SettingDescription
Event nameCustom suffix appended to the flow. namespace. Type order_confirmed → emits flow.order_confirmed. Leave blank to emit the bare flow event.
ConnectionOptional — target a specific outbound connection. Leave empty to broadcast to every active connection subscribed to this event (or to the flow namespace).
PayloadRaw JSON body — authored in a Monaco JSON editor. Supports {{variable}} interpolation before parsing.

Event name

Wexio owns the flow. prefix — the UI shows a read-only flow. before your input and the final event name as a helper line.

InputEmits
order_confirmedflow.order_confirmed
lead.qualifiedflow.lead.qualified
(empty)flow

Allowed characters in the suffix: a–z, A–Z, 0–9, _, ., -. Invalid characters cause a validation error and the flow stops at this card.

Connection

ValueBehavior
(empty)Broadcasts to every active outbound connection whose subscribed events include this event or the flow namespace
Specific connectionDelivers only to that connection

Payload

A raw JSON string authored in Monaco. Flow variables are interpolated before JSON.parse, so quote string variables correctly:

{
  "orderId": "{{webhook.order.id}}",
  "status":  "confirmed",
  "customer": {
    "email": "{{flow.people.email}}",
    "name":  "{{flow.people.first_name}} {{flow.people.last_name}}"
  }
}

What lands at the envelope data root depends on what the payload parses to:

Parsed JSONDelivered data
Object (recommended)The object itself
Array or primitive (string, number, bool){ "value": <parsed> }
Malformed / empty{} (flow continues; parse error is logged)

What Your Subscribers Receive

{
  "id": "evt_01JV4QEJX54A0E3KJ9W8R1Z4DP",
  "type": "flow.order_confirmed",
  "timestamp": "2026-04-23T12:00:00.000Z",
  "data": {
    "orderId": "ORD-123",
    "status":  "confirmed"
  },
  "meta": {
    "eventId": "evt_01JV4QEJX54A0E3KJ9W8R1Z4DP",
    "event":   "flow.order_confirmed",
    "occurredAt": "2026-04-23T12:00:00.000Z",
    "organisationId": "…",
    "attempt": 1
  }
}

Along with the signature + event headers — see Outbound Webhooks → Envelope.

Subscribing on the Other Side

Users of your custom events subscribe either:

  • To a specific event — e.g. subscribe to flow.order_confirmed for only order confirmations.
  • To the flow namespace — receives every flow.* event your org emits. Handy when you want one subscriber to get all flow checkpoints.

Both are configured on the outbound connection's subscription picker.

Connections

  • 1 input port — receives execution.
  • 1 output port:
    • Next — always fires. Emission is fire-and-forget; the flow never waits for delivery.

Operations Cost

1 operation per execution.

Rules and Caveats

  • Fire-and-forget. The card never blocks the flow. Even if the subscriber is down, the flow continues to the next card.
  • Malformed JSON is tolerated. Parse errors log and emit an empty object — the flow doesn't stop.
  • Array/primitive wrapping. Anything that isn't a JSON object is wrapped under { "value": ... } so your subscribers always see a stable shape at data.
  • No messaging channel interaction. This card doesn't send anything to the contact — it's pure outbound HTTP to external systems.
  • Plan gated. Pro and Enterprise only.

Common Use Cases

  • CRM sync — fire flow.lead_captured when a flow finishes collecting name/email/phone
  • Revenue tracking — fire flow.order_confirmed with the resolved order ID and amount
  • Ops notifications — fire flow.ticket_escalated with the chat ID so downstream dashboards can pick it up
  • BI export — fire flow.survey_completed with the full response payload for BigQuery ingestion
  • Webhook fan-out to multiple systems — leave connectionId empty, subscribe multiple outbound connections to flow.order_confirmed, each one delivers to a different system

On this page