Requests
Service requests follow a three-level chain: a Request (the overall order — one per checkout), containing one Requested Item per catalog line, which in turn generates fulfillment Tasks. The Requested Item is where the real work happens — its state drives the whole flow, and the request and its tasks roll their own state up from it.
The chain
Section titled “The chain”- Request — the order header. Holds who it’s for, who opened it, and a delivery address. Its state rolls up from its requested items.
- Requested Item — one per catalog line. Carries the item’s variables (the answers filled in on the order form), its price, and a Stage shown on a progress tracker: Waiting for Approval → Fulfillment → Delivery → Completed (or Request Cancelled).
- Task — the fulfillment work under a requested item. A requested item can generate more than one task; the item doesn’t close until all of its tasks do.
Requested item states
Section titled “Requested item states”| State | What it means | Typical next action |
|---|---|---|
| Draft / Cart | Sitting in the cart, variables being filled in. No item number yet. | Submit the order |
| Pending Approval | Created and awaiting approval — a priced or policy-gated item. | Approve or Reject |
| Approved | All required approvals granted. Ready to enter fulfillment. | Begin fulfillment once tasks are generated |
| Open / Work in Progress | Fulfillment underway — one or more tasks open or in progress. | Stays open until every task closes |
| Closed Complete | Every fulfillment task completed successfully; the item was delivered. Terminal, successful. | — |
| Closed Incomplete | Could not be fully fulfilled — rejected approval, a cancelled task, or a fulfillment failure. Terminal, unsuccessful. | — |
| Closed Cancelled | The requester or an agent cancelled the item before or during fulfillment. Terminal. | — |
Ordering a pre-approved / standard item skips Pending Approval entirely and goes straight to Approved; anything priced or policy-gated goes through approval first.
Approvals
Section titled “Approvals”Approval is a small state machine of its own, attached to the requested item: requested → approved | rejected. The approver is resolved as the requester’s manager (falling back to a configured default when no manager is on file) — you don’t have to pick one manually. A rejection sends the item to Closed Incomplete; the requester can also cancel before a decision is made.
Fulfilling items
Section titled “Fulfilling items”Each task moves Open → Work in Progress → Closed Complete / Closed Incomplete / Closed Skipped. Accept or start a task to move it into Work in Progress, then Complete it (or close it incomplete if it can’t be done). Skipping a task marks it no longer required by the flow without counting it as a failure.
Task outcomes roll up automatically: once every task under a requested item is closed, the item itself closes — Complete if every task finished complete or skipped, Incomplete if any task failed. The request header rolls up the same way once every one of its requested items is closed.
Closing
Section titled “Closing”You don’t usually close a requested item directly — closing happens as a consequence of its tasks finishing (or of a rejection/cancellation earlier in the flow). The request as a whole is Closed Complete once every item in it closed complete, or Closed Incomplete once every item is closed but at least one of them wasn’t successful.