Domain: workflow · API spec: workflow-openapi.yaml
| State | Description | SLA clock |
|---|---|---|
| pending | Unassigned task awaiting a caseworker to claim it | running |
| in_progress | Task claimed and actively being worked by an assigned caseworker | running |
| completed | Task finished with an outcome recorded | stopped |
| escalated | Task flagged for supervisor attention due to complexity or urgency | running |
| cancelled | Task terminated before completion by a supervisor | stopped |
| awaiting_client | Task paused while waiting for a response from the client | paused |
| awaiting_verification | Task paused while waiting for a verification result | paused |
| pending_review | Task submitted for supervisor review before completion | running |
| Action | Actors | Transition | Steps |
|---|---|---|---|
| claim API → Caseworker takes ownership of an unassigned pending task |
Case Worker, Supervisor | pending→in_progress |
|
| complete API → Marks an in-progress task done with an outcome and optional notes |
Case Worker, Supervisor | in_progress→completed |
|
| release API → Returns an in-progress task to the queue, clearing the assignment |
Case Worker, Supervisor | in_progress→pending |
|
| escalate API → Escalate a task; assigned workers can escalate in-progress tasks, supervisors can escalate from any state |
Case Worker, Supervisor | pendingorin_progress→escalated |
|
| de-escalate API → Returns an escalated task to the pending queue |
Supervisor | escalated→pending |
|
| cancel API → Supervisor cancels a task from any active state |
Supervisor | pendingorin_progressorescalated→cancelled |
|
| reopen API → Supervisor returns a cancelled task to the pending queue |
Supervisor | cancelled→pending |
|
| await-client API → Pauses an in-progress task while waiting for a client response |
Case Worker, Supervisor | in_progress→awaiting_client |
|
| await-verification API → Pauses an in-progress task while waiting for a verification result |
Case Worker, Supervisor | in_progress→awaiting_verification |
|
| resume API → Resumes a blocked task, cancelling any active wait timers |
Case Worker, Supervisor | awaiting_clientorawaiting_verification→in_progress |
|
| auto-resume API → System resumes a verification-blocked task when the timeout fires or a verification result arrives |
System | awaiting_verification→in_progress |
|
| sla-escalate API → System escalates a task when an SLA timer fires (creation deadline, warning, or breach) |
System | pendingorin_progressorescalated→escalated |
|
| auto-cancel API → System cancels a client-blocked task after 30 days without a response |
System | awaiting_client→cancelled |
|
| submit-for-review API → Worker submits a completed task to a supervisor for review and approval |
Case Worker, Supervisor | in_progressorescalated→pending_review |
|
| approve API → Supervisor approves a submitted task and records the final outcome |
Supervisor | pending_review→completed |
|
| return-to-worker API → Supervisor sends a review-pending task back to the worker with feedback |
Supervisor | pending_review→in_progress |
|
| assign API → Supervisor reassigns a task to a specific caseworker or moves it to a different queue |
Supervisor | no state change |
|
| set-priority API → Supervisor manually overrides the task priority |
Supervisor | no state change |
|
| Event | Emitted by | Handler steps |
|---|---|---|
workflow.task.created |
unknown |
|
workflow.task.updated |
unknown |
|
workflow.creation_deadline |
unknown |
|
workflow.sla_warning |
unknown |
|
workflow.sla_breach |
unknown |
|
workflow.client_timeout |
unknown |
|
workflow.verification_timeout |
unknown |
|
eligibility.application.expedited |
Eligibility/Determination |
|
intake.application.submitted |
Intake/Application |
|
intake.application.closed |
Intake/Application |
|
intake.determination.approval_needed |
Intake/Application |
|
intake.determination.rejected |
Intake/Application |
|