Browse documentation

How do I route approvals to the right person?

Per-key notification channels work well for a single owner. Once more than one person can resolve approvals, you need a way to notify a team, and to route around who's actually awake right now.

Approver groups: notify a team, not one inbox

On /dashboard/approval-groups, create a group and add org members to it (any existing team member, regardless of role: an approverwho isn't otherwise an admin or developer can still be on a group). Then, on a key's detail drawer, assign that key to the group.

From then on, every require_approval hold for that key emails every member of the group, in addition to any channels (Slack, Teams, Telegram, individual emails) already configured on the key. A key can belong to at most one group; a group can back as many keys as you like.

On-call schedules: route by time, not just by team

On /dashboard/on-call, create a schedule that points at an approver group and defines an active window: a set of days of the week, a start hour and end hour (in a chosen timezone), and an enabled toggle. While the current local time in that timezone falls inside the window, the schedule is activeand that group's members are added to the notification recipients for every held call in the org, on top of whatever the triggering key's own channels and approver group already add.

  • The window is a half-open interval [startHour, endHour): an 09:00–17:00 schedule fires at 09:00 and stops at 17:00, not 17:01. Setting start and end to the same hour means the schedule never fires.
  • Multiple schedules can be active at once (a weekday team plus a weekend escalation group, say); all of their members are notified, not just one.
  • On-call schedules are org-wide: they don't need to be attached to a specific key the way an approver group does.

How the pieces add up

For any held call, the full recipient list is the union of: the key's own notification channels, its assigned approver group's members (if any), the org-level fallback channels configured in Settings, and any approval group whose on-call schedule is currently active. Nothing here replaces the others. They layer, and duplicate emails are de-duplicated automatically.

Resolving the approval still works the same way regardless of how it was routed: from the notification, the in-app approvals inbox, or the Playground. See setting up approvals for the timeout and temporary-allow mechanics that apply once someone responds.