S

SLA & Response Time Targets

Control how long reviewers have to act on a request — and what happens automatically when time runs out.

1 — Response time target per Review Group

Every Review Group has a response time target (default: 2 hours). Set it when you create or edit a group — presets include 15 min, 30 min, 1 hr, 2 hr, 4 hr, 8 hr, or a custom value.

50% elapsedIf unclaimed, the request is automatically re-assigned to the next available reviewer in the group.
100% elapsedMarked as SLA breached. A sla.breached webhook event fires and Slack/email notifications go out.

Go to Review Groups, create or edit a group, and pick a response time target.

2 — Workspace-wide timing

In Notifications → Notification Triggers → Timing you control two workspace-level defaults.

Auto-reject unanswered after (hours)

Any PENDING request older than this threshold is automatically rejected by the nightly job. Default: 24 hours. Lower it if your team needs tighter control (e.g. 4 hours for financial actions).

Escalate high-risk after (minutes)

For HIGH-risk requests that have not been decided, this triggers a PagerDuty escalation (if configured). Default: 30 minutes. Only applies when PagerDuty is connected under the same page.

3 — Auto-approve and auto-reject rules

If you want decisions to happen instantly without waiting for a human, use Rules. Rules match on conditions (risk level, action type, AI certainty, agent) and immediately approve or reject — before the request even hits the inbox.

Auto-approve example

Risk is LOW and action is read_database → Approve automatically. Good for routine, low-stakes actions your team always approves anyway.

Auto-reject example

Risk is CRITICAL and outside business hours → Reject automatically. Good for blocking dangerous actions when no reviewers are available.

4 — Per-request expiry (SDK)

For time-sensitive actions (e.g. a limited-time discount, a live trade), your code can set a hard deadline per request. Pass expiresAt and onExpiry when calling the SDK.

Python
result = client.checkpoint(
    action="apply_discount",
    summary="Apply 30% flash discount to order #8821",
    expires_at="2026-06-01T18:00:00Z",  # hard deadline
    on_expiry="reject",                  # "reject" (default) or "approve"
)
on_expiry: "reject" — Default. Automatically declined if nobody acts by the deadline.
on_expiry: "approve" — Automatically approved if the reviewer is unavailable. Use with caution.

Quick reference

I want to…Go to
Set a response time target for a teamReview Groups → Edit group → Response time target
Auto-reject if nobody responds in 4 hoursNotifications → Timing → Auto-reject after
Escalate high-risk to PagerDuty after 15 minNotifications → Timing → Escalate after
Always auto-approve low-risk readsRules → New rule → Auto-approve
Block critical requests outside business hoursRules → New rule → Auto-reject
Set a per-request deadline in codeSDK: expiresAt + onExpiry params