Event Wait
Suspend workflow execution until a named external event is published to the BizFirst event bus, with optional timeout and correlation matching.
The Event Wait node suspends the current workflow execution and registers a listener on the BizFirst event bus for a specified event name. When the event is published (by an external system, another workflow, or a BizFirst integration), the workflow resumes and the event's payload is available downstream. An optional timeout ensures the workflow does not wait indefinitely.
Key Capabilities
- Durably suspends — the workflow state is persisted and the execution thread is freed while waiting
- Event correlation — match a specific event instance using a correlation key (e.g., match by order ID so the right workflow resumes)
- Configurable timeout — set a maximum wait time; the timeout port fires if the event does not arrive in time
- Zero timeout — set
timeout_seconds = 0to wait indefinitely (no timeout) - The event payload is passed directly to the workflow output for downstream access
- Survives server restarts — event registration is persisted
Common Use Cases
| Scenario | Event Name Example | Timeout |
|---|---|---|
| Wait for payment confirmation | payment.confirmed | 30 minutes |
| Wait for shipping label generated | fulfillment.label_created | 2 hours |
| Wait for external system to finish processing | erp.import.complete | 1 hour |
| Wait for user to click email confirmation link | user.email_verified | 24 hours |
| Wait for inventory replenishment event | inventory.restocked | 0 (indefinite) |
How Correlation Works
When multiple instances of the same workflow run simultaneously (e.g., 100 orders being processed), each instance must receive only its own event. The correlation_key provides this matching:
- The waiting workflow registers with a correlation key (e.g.,
ORDER-1234) - The external system publishes the event with the same key in the event payload
- BizFirst's event bus routes the event only to the workflow instance that registered that exact key
- Other workflow instances waiting on the same event name but a different key are unaffected
External systems can fail, be delayed, or never publish the expected event. Always set a timeout_seconds value unless you have a specific reason to wait indefinitely. Connect the timeout port to an error-handling or notification branch to avoid workflows getting permanently stuck.
In This Guide
Configuration
event_name, timeout_seconds, correlation_key, and how to publish events that resume this node.
Input & Output
Output ports (success, timeout, error), event_payload schema, and downstream access patterns.
Examples
Five examples: payment confirmation, email verification, ERP import completion, correlated shipping event, and indefinite inventory wait.