A phase represents a kanban stage within a flow — for example, Triage, Analysis, Approval, Won, or Lost. Each card in the flow sits in exactly one phase at a time.A phase is a structural resource of the flow. It should not be confused with a phase action, which is the module enabled within a phase — such as approval, opinion, decision engines, or messaging.
Endpoints in this domain#
| Method | Path | Description |
|---|
POST | /v1/flows/{id}/phases | Creates a phase |
GET | /v1/flows/{id}/phases | Lists the flow's phases |
PATCH | /v1/flows/{id}/phases/{phaseId} | Updates a phase (partial) |
DELETE | /v1/flows/{id}/phases/{phaseId} | Deletes a phase |
GET | /v1/flows/{id}/phases/{phaseId}/phase-actions | Lists the modules enabled on the phase |
POST | /v1/flows/{id}/phases/{phaseId}/actions | Enables a module on the phase |
PUT | /v1/flows/{id}/phases/{phaseId}/actions/{actionId} | Updates an enabled module |
DELETE | /v1/flows/{id}/phases/{phaseId}/actions/{actionId} | Disables a module |
Naming note: in this domain, the flow path parameter is literally {id} — unlike other AgFlow API domains, which use {flowId}.
Module activation pattern#
To enable a module on a phase, we recommend always following this order:1.
Configure the corresponding module (approval-config, opinion-config, credit-engine-config, decision-engine-config, messaging-config, among others).
2.
Create the phase action (POST .../actions), specifying the module type in action: approval, opinion, credit-engine, decision-engine, messaging, conversation, agrisk, create-document-enable, create-document-auto, financial-report, or income-tax.
Skipping the second step does not produce an API error — but the corresponding button or widget simply will not appear to users on that phase.blocksMovement field rule#
| Action type | blocksMovement |
|---|
opinion / approval | always true |
messaging | always false |
credit-engine / decision-engine | false by default (specific exceptions may use true) |
Important behaviors#
The start field is required when creating a phase — omitting it returns a 400 error.
The latenessTime field is also required on creation — omitting it may affect later operations on cards in that phase, returning a 500 error. The recommended default value is 2880 (48 hours).
The sortingPreference.field field does not accept the value createdAt; use enteredCurrentPhaseAt instead.
Reordering phases via the index field through PATCH returns 422 if the new value is already in use by another phase — we recommend reordering sequentially, never in parallel.
Deleting a phase does not automatically update the cardsCanBeMovedToPhase field on other phases that referenced it — we recommend reviewing and updating those references manually.
The cardsCanBeMovedToPhase field is a UI guideline shown in the flow editor; it is not validated by the API or by trigger automations.
The correct path to list enabled modules is /v1/flows/{id}/phases/{phaseId}/phase-actions.
Inside conditions[].rule[], the key that identifies the evaluated field is field — using path returns a 400 error.
The action field accepts exactly 11 values; bureau/AgRisk lookups use the value agrisk.
Configuring approval-config or opinion-config without creating the matching phase action does not produce an API error, but the vote or opinion button will not appear to the user.
Modificado em 2026-07-28 20:38:32