Skip to main content

POST /api/v1/decision-flows/ensure-base

Ensures a default “Base NBA Flow” exists for the tenant. If one already exists, returns its ID without creating a new one. Useful during onboarding or when the tenant needs a guaranteed starting flow.

Auto-created node order

The base flow ships with the following nodes (defined in lib/decision-flows/base-flow.ts:buildBaseFlowConfig): The match_creatives node with placementMatchMode: "exact" is a no-op when the request does not specify a placement (single-placement placement field or multi-placement placements: [...] body). When the request does specify a placement, the node filters candidates to creatives whose placementId matches, providing per-placement creative-pool isolation. requireCreative: false keeps offers that have no creative for the requested channel surfacing as fallback candidates so tenants who haven’t yet bound creatives to placements aren’t broken by the upgrade.

Response (200 — already exists)

Response (201 — newly created)

Roles

admin, editor

GET /api/v1/decision-flows//assembly-log

Returns the auto-assembly history for a decision flow. Each log entry records when the platform automatically rebuilt the flow’s pipeline in response to entity changes (new offers, updated rules, etc.).

Path Parameters

Response

Response Fields

Error Codes

Roles

any authenticated See also: Decision Flows