Event

Signal Catch Event

POST /api/v1/signals/broadcasttoken waits hereContinue

Pauses the token until a signal with the matching name is broadcast. Unlike messages (which target a specific instance via correlation key), signals are broadcast to all subscribers simultaneously — every waiting instance with a matching signal name is activated at once.

Properties

PropertyTypeRequiredDescription
IDstringyesUnique element identifier
NamestringnoDisplay label
Signal NamestringyesMust match the signal_name in the broadcast call

XML Example

<bpmn:intermediateCatchEvent id="await_release" name="Await Release Signal">
  <bpmn:signalEventDefinition signalRef="sig_release_approved"/>
  <bpmn:incoming>flow_to_await</bpmn:incoming>
  <bpmn:outgoing>flow_to_deploy</bpmn:outgoing>
</bpmn:intermediateCatchEvent>

<bpmn:signal id="sig_release_approved" name="ReleaseApproved"/>

API Integration

Broadcast a signal to all waiting instances:

POST /api/v1/signals/broadcast
Content-Type: application/json

{
  "org_id": "your-org-id",
  "signal_name": "ReleaseApproved",
  "variables": [
    { "name": "releaseVersion", "value": "2.1.0" }
  ]
}

Every instance waiting on a signal catch event (or boundary signal event) subscribed to ReleaseApproved is activated. Variables in the payload are merged into each receiving instance.

Signals vs Messages

SignalMessage
DeliveryBroadcast to all subscribersTargeted to one instance via correlation key
Use caseSystem-wide events, fan-out, global state changesPoint-to-point communication between specific instances
API endpointPOST /api/v1/signals/broadcastPOST /api/v1/messages
CorrelationNoneRequired (correlation key matches one instance)