Skip to content
Apkar

Product

Human in the Loop

Pause a run, review the state, approve or amend, and resume from the same step.

Gates can be unconditional or predicated on the run's own state — approve refunds over a threshold, or anything touching a named account. A paused run holds its checkpoint for 72 hours and resumes exactly where it stopped.

Consequence first

The dialog leads with what will happen, not the payload that will be sent.

Recorded

Approvals enter the audit trail with the reviewer's identity and any amendment they made.

Routed

Requests can go to a channel, an individual, or an on-call rotation.

.step("stripe.refund")
.approval({
  when: (ctx) => ctx.amount > 100_00,
  notify: "#billing-approvals"
})

Measured outcome

Refunds under a hundred dollars go straight through. Anything above waits for a human, who sees the amount and the customer before either button.

Docs