Skip to Content
PlatformHow-to guidesDelegate while away

How to delegate while away

Use this guide before leave or a week of travel. You start with an active twin and an inbox that will keep filling; you end with a delegations row active that routes your write approvals to one colleague for at most 30 days, while your signatures and your twin stay yours. Creating a delegation needs only a signed-in session; the delegate needs membership of the program and, for each item, the write’s own permission. Every surface here carries the status word designed until the R3 gates pass.

Delegation is routing, not authority. A routed item appears in the delegate’s inbox only if they hold the write’s permission themselves; the decision records them as resolved_by with delegated_from_user_id, and permission_exercised is their own key. The record reads “Routed under delegation from <Name>; decided by <Name> in their own right.”

Prerequisites

  • A colleague who is a member of the program (or of every program you belong to, for an all-programs delegation) and holds the permissions your proposals need; a scientist’s proposals need a scientist, lead or owner.
  • An end date within 30 days and a reason.

Create the delegation

Open /me/delegations and choose Delegate. Pick the colleague, the program (or all programs), the start and end dates and write the reason. Save calls POST /me/delegations with DelegationCreate {delegate_user_id, program_id?, starts_at?, ends_at, reason}. The API refuses yourself as delegate, a delegate without membership, more than 30 days, and any chain (a delegate cannot pass an item on) with 422 delegation_invalid; it audits delegation.create. Holders of program.twins.read in the program (owner, lead, quality reviewer) see the delegation listed.

What is routed, what is not

Routed: inbox items of kind decision (write approvals from your twin or from a console turn) and question, and batch_approval items, each only when the delegate holds that item’s write permission. Never routed: signature items (a signature is yours alone) and, in R4, stage items; the audit row carries a CHECK that delegated_from_user_id is null whenever signature_id is set. Standing-plan approvals stay with you: only the bound person approves a twin’s plan. Your twin does not follow the delegate; it keeps filing under your standing plans, and its proposals route.

What the delegate does

The item appears in the delegate’s inbox marked “Routed under delegation”. They open it, read the four panes and Approve, Edit then approve or Decline with a reason through POST /me/inbox/{item_id}/resolve; the service accepts them because an active delegation routes the item and they hold the write’s permission. For a batch they select rows and confirm the sheet like anyone else; an item whose permission they lack fails with batch_item_forbidden while the rest proceed.

Renew or revoke

A delegation expires at ends_at (delegation.expire, hourly job). Renewing extends it by at most 30 days more and increments renewal_count, which the oversight holders can see (delegation.renew). Revoke (DELETE /me/delegations/{delegation_id}) ends it at once (delegation.revoke); open items routed to the delegate return to your inbox.

Read what changed

The record footer reads “Routed under delegation from Maya N.; decided by Priya S. in their own right.” (illustrative). Setup › Audit shows the write with approved_by_user_id the delegate, delegated_from_user_id you, permission_exercised the delegate’s own key, interrupt_id and both hashes. The organisation audit export lists the delegation rows and the routed decisions with their metadata.

Troubleshooting

SymptomCauseFix
422 delegation_invalidself-delegation, no membership, more than 30 days, or the delegate already delegates to someonepick a member, use a period within 30 days, or delegate directly
An item did not reach the delegatethey lack the write’s permission for that itemthe item waits for you (or expires, nothing written); choose a delegate whose persona holds the key
The delegate cannot approve a standing planplans are never routedapprove it yourself when back; the duty pauses until then
A signature request is still in your inboxsignature items are never routedsign it yourself, from the phone if needed, after re-authentication
The twin keeps filing while you are awayby design; the twin does not follow the delegatepause the twin before leaving if you prefer nothing to be filed

Source: PRODUCT-PLAN.md Part 7 section 5 (delegation, bound-user rule) and 7.4; PRODUCT-CONTRACT.md sections 11.4 and 11.7; api/app/db/models/delegation.py (DELEGATION_STATUSES, DELEGATION_MAX_DAYS); api/app/db/models/inbox.py (NEVER_DELEGATED_KINDS); api/app/db/models/audit.py (delegation-versus-signature CHECK); api/app/services/audit_actions.py (delegation.*); api/scripts/designed-routes.json (/me/delegations routes); web/lib/api/types.ts (DelegationCreate, DelegationOut); web/lib/content.ts (consoleCopy.routedUnderDelegation); decisions/0022-inbox-escalation-and-delegation.md