Routing Rules API
⚠️
Internal API. These endpoints power the FlowAlert dashboard and mobile app and authenticate with a session token — there is no public way to obtain one, and API keys cannot call them. Documented for transparency; may change without notice. The supported integration surface is POST /v1/events.
All endpoints require a Bearer token and workspace membership.
Create a rule
POST /v1/workspaces/:workspaceId/routing-rules{
"name": "Notify Booking Staff",
"eventKey": "booking.created",
"targets": [{ "type": "group", "groupId": "grp_abc123" }],
"requiresAck": false,
"priorityOverride": null,
"onCallOnly": false,
"escalationPolicyId": null
}| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✓ | Human-readable rule name |
eventKey | string | ✓ | Event key pattern: * (all events), booking.* (prefix wildcard), or an exact key like booking.created. The flowalert. prefix is reserved. |
targets | array | ✓ | List of { type: "group", groupId: string } objects. Supports multiple groups. |
requiresAck | boolean | Require acknowledgement from staff. Default false | |
priorityOverride | string | Override the event priority for notifications from this rule: LOW · NORMAL · HIGH · URGENT · CRITICAL | |
onCallOnly | boolean | Only notify members who are currently on-call. Default false | |
escalationPolicyId | string | ID of an escalation policy to trigger if no acknowledgement is received |
💡
Rules are created in an enabled state by default. Use the PATCH endpoint to disable a rule without deleting it.
List rules
GET /v1/workspaces/:workspaceId/routing-rulesUpdate a rule
PATCH /v1/workspaces/:workspaceId/routing-rules/:ruleIdSend only the fields you want to change. All fields from the create body are accepted, plus:
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable or disable the rule without deleting it |
Delete a rule
DELETE /v1/workspaces/:workspaceId/routing-rules/:ruleId