Skip to main content
When a request needs a yes or no from specific people, such as an expense that finance signs off, insert an approval block. Approvers approve or reject it in place, and either decision locks the block.
src/app.ts

Props

State and actions

State is { status: "pending" | "approved" | "rejected", decidedBy? }, starting at pending. Approve is the block’s primary button. Reject can’t take that slot because it’s destructive. When you list approvers, the recipe sets audience on its Actions, so only they see the two buttons. A member who isn’t a listed approver gets a notice instead of a decision. The block is insertable by default, so members can add it from the slash menu.

Labels

pending, approved, rejected, approve, reject, requestedBy, confirmTitle, confirmBody, notAllowed.