Skip to main content
Flow routes define which decision flow should be executed for a given channel and placement combination. When a Recommend API call is made, the platform uses flow routes to determine the appropriate decision flow based on the request’s channel and placement context.
See the Decision Flows feature page for details on how flow routes integrate with the decisioning pipeline.

Base path

/api/v1/flow-routes

List flow routes

GET /api/v1/flow-routes
Returns all flow routes for the current tenant, ordered by priority (highest first), then creation date (newest first). Each route is enriched with the associated decision flow’s name and key.

Response 200

[
  {
    "id": "fr_001",
    "tenantId": "t_001",
    "channelId": "ch_email",
    "placementId": null,
    "decisionFlowId": "df_001",
    "priority": 10,
    "createdAt": "2026-03-10T12:00:00.000Z",
    "updatedAt": "2026-03-12T09:30:00.000Z",
    "decisionFlow": {
      "id": "df_001",
      "name": "Email NBA Pipeline",
      "key": "email-nba"
    }
  }
]

Create a flow route

POST /api/v1/flow-routes
Creates or updates a flow route (upsert). The unique key is the combination of tenantId, channelId, and placementId. If a route with the same channel/placement pair exists, it is updated.

Request body

FieldRequiredTypeDescription
decisionFlowIdYesstringThe decision flow to route to.
channelIdNostring | nullChannel ID to match. null matches any channel. Default null.
placementIdNostring | nullPlacement ID to match. null matches any placement. Default null.
priorityNointeger (>= 0)Route priority (higher = evaluated first). Default 0.
Setting both channelId and placementId to null creates a catch-all route that matches any request without a more specific route.

Example request

{
  "decisionFlowId": "df_001",
  "channelId": "ch_email",
  "placementId": null,
  "priority": 10
}

Response 201

Returns the created or updated flow route object.

Error codes

CodeReason
400Validation error (missing decisionFlowId).
415Content-Type is not application/json.

Update a flow route

PUT /api/v1/flow-routes
Updates an existing flow route by ID. Only provided fields are changed.

Request body

FieldRequiredTypeDescription
idYesstringThe flow route ID to update.
decisionFlowIdNostringUpdated decision flow ID.
priorityNointeger (>= 0)Updated priority.

Response 200

Returns the updated flow route object.

Error codes

CodeReason
400Validation error.

Delete a flow route

DELETE /api/v1/flow-routes?id={routeId}
Deletes a flow route by ID.

Query parameters

ParameterRequiredTypeDescription
idYesstringFlow route ID to delete.

Response 204

Empty body on success.

Error codes

CodeReason
400Missing id query parameter.

Role requirements

MethodMinimum role
GETviewer
POSTeditor
PUTeditor
DELETEadmin