Delegations
Delegate one actionable decision or arrange time-bounded approval cover across all or one chain.
Overview
A delegation lets another active internal account act for an approver. Signals exposes two operator workflows: delegate the currently selected assignment from the Approvals Inbox, or configure time-bounded cover from Approval Chains.
Delegation does not replace the original approver in the history. The inbox records the original approver, delegate, acting account, window, and status.
Delegate one decision
Route: /approvals
When a selected request has an assignment you can action, choose More → Delegate, select a different active colleague, and choose Send to colleague. The delegation begins immediately and ends at the assignment expiry, then the request expiry, or one day later when neither expiry exists.
The delegated assignment appears in the delegate's policy-scoped inbox. An authorised original approver can revoke active delegation from the selected request’s More menu.
Arrange delegation cover
Route: /admin/settings/approval-chains
The Chains and Delegations column lists delegation cover. People with approvals.manage can add cover with:
- an original approver and a different delegate approver;
- explicit start and end times;
- a scope of All chains or One chain, where one chain selects a specific chain version;
- an optional reason.
Active cover can be edited or revoked. Revocation removes the authority derived from that cover; it does not rewrite decisions already recorded.
Permissions and limits
| Ability | Grants |
|---|---|
approvals.act |
Delegate an assignment you can currently action. |
approvals.manage |
Configure chain delegation cover. |
Delegates must be active internal user accounts. You cannot delegate to yourself, and the approval engine checks the assignment again when the action is submitted.
Chain-delegation API
The platform page above covers the inbox assignment workflow and the admin cover UI. Integrations manage the same pre-authorised cover through the chain-delegation REST family. These five routes are chain-level only (rows with no approval_request_id or approval_assignment_id); assignment-scoped delegation stays on api.v1.approval_requests.assignments.delegations.*.
Reads require the approvals:read token ability and approval-chain management permission. Writes require approvals:write and the same management gate. Overlapping windows or illegal state transitions return 409 with approval_delegation_conflict.
| Route name | Method and path | Purpose |
|---|---|---|
api.v1.approval_chain_delegations.index |
GET /api/v1/approval-chain-delegations |
List audit-retained chain-level cover, filterable by definition, accounts, and status. |
api.v1.approval_chain_delegations.store |
POST /api/v1/approval-chain-delegations |
Create time-bounded cover for all chains or one definition. |
api.v1.approval_chain_delegations.show |
GET /api/v1/approval-chain-delegations/{approvalDelegation} |
Retrieve one chain-level cover record. Assignment-scoped rows return 404. |
api.v1.approval_chain_delegations.update |
PUT /api/v1/approval-chain-delegations/{approvalDelegation} |
Replace the accounts, window, scope, and reason of active cover. |
api.v1.approval_chain_delegations.revoke |
DELETE /api/v1/approval-chain-delegations/{approvalDelegation} |
Revoke cover while retaining its lifecycle history. Derived assignment authority is dropped; already-recorded decisions are not rewritten. |
Store, update, and revoke honour Idempotency-Key.