Feature · Work
Approvals
Approve or deny actions that need your permission.
How it works
What waits here
A worker's action waits for a person when the autonomy mode, the Always ask list or a policy says so. Examples are a pull request, a merge, a deploy, a Slack message, a spend above your limit and a hire.
Decide
Open Approvals. Each card says what the worker wants to do, why, and who can decide. Select Approve or Deny, with an optional comment. A critical action asks you to confirm again.
You can also decide from the CEO conversation and, when it is connected, with one tap on WhatsApp.
Decide on Slack or Teams
A person who may decide can also get the request as a direct message on Slack or Teams. Reply approve or deny in its thread. You can add a reason after the word. The same checks apply as on the web. A reply from anyone else changes nothing.
The worker whose action waits sends the message through its own Slack or Teams connection. Agent checks each message before it goes: the approval must be open, and the person must be one who may decide it. The Always ask item Speak as the operator and the autonomy mode do not hold this message. A policy that denies or asks for Slack or Teams messages still stops it, and so does the kill switch.
A person with no Slack or Teams account that matches their email gets no message. The request also stays on the web, on WhatsApp and in the assistant. The setting approvals.chatDelivery turns these messages off.
Who can decide
Owners and admins can always decide. An approval can name a role; by default it is approver. Members and viewers cannot decide.
Statuses
Pending, Approved, Denied and "Past its expiry". An approval that is not decided in time expires.
When the kill switch is engaged
Engaging the kill switch withdraws approvals that are not yet acted on. They must be given again after the release.
From the help article Approvals, checked against the product on .
What you can do
The operations this feature's screens call. Each one is POST /api/<name>, and the badge says who may call it.
ViewerlistApprovalsLists approvals.
Types:
ListApprovalsRequestreturnsListResponse<ApprovalDto>
ViewerlistPoliciesLists policies.
Types:
ListPoliciesRequestreturnsListResponse<PolicyDto>
ApproverNo API tokensdecideApprovalDecides the approval.
Types:
DecideApprovalRequestreturnsApprovalDto
ViewerexplainActionExplains the action.
Types:
ExplainActionRequestreturnsExplainActionResponse
ViewerexplainDecisionExplains the decision.
Types:
ExplainDecisionRequestreturnsExplainDecisionResponse
ViewerlistEventsLists events.
Types:
ListEventsRequestreturnsPageResponse<AuditEvent>
ViewergetContextManifestGets the context manifest.
Types:
GetContextManifestRequestreturnsGetContextManifestResponse