Approval steps
A workflow waits for a person to approve before it carries on.
Built on Inngest
Plans: Every plan, including the free app
What you get
- A workflow that waits for a yes or no
- Requests sent by email, Slack or webhook
- An approval page with approve, reject and a note
- Approvers chosen by role, group or person
- Requests that expire if nobody decides
- Every decision recorded in the audit log
How it works
Your coding agent adds an approval step to a workflow, naming who should decide and what they are deciding. The workflow pauses at that step. Whisk notifies those people and shows the request on an approval page in the dashboard.
The approver can be a role such as admin, a group such as finance, or one person by email. A role includes the roles above it, and an owner can always decide. The decision, who made it and any note go back to the workflow, which then carries on or stops.
The wait uses the wait-for-event feature of Inngest, the open-source workflow engine, so the app can sleep while the workflow waits. Each decision is written to the audit log.
Example
A building supplier lets sales reps request a higher credit limit for a trade customer. Requests over a set amount wait for the credit team. They get an email, open the request with the account details and approve or reject it.
For your coding agent
const ok = await approval(step, runId, "credit-approval", {
to: "group:credit",
title: `Credit limit for ${customer.name}`,
data: { current: customer.limit, requested: input.limit },
});
if (ok.decision !== "approved") return;approval is a short helper every template ships. whisk approvals list shows what is waiting and who decides. The details are in the agent instructions.