ServiceFlow Pro Docs
Jobs & Scheduling

On-Call Schedule

Elijah Johnson · Published · Updated · 4 min read
Schedule types: The page shows Current on-call at the top when the call service is reachable. The on-call schedule assigns agents (technicians or staff) to time windows. When a caller triggers an emergency path, via IVR option or AI phrase.
Sign in as a user with settings access. Go to Settings to Employee Roster to On-call (/settings/employee-roster?tab=on-call). Embed routes exist for multi-tenant or external admin tools: /embed/on-call-schedule (see your deployment docs). View who is on call right now (name and phone when available). Add schedules with agent, type, and time configuration. Edit, activate/deactivate, or delete existing schedules. Support daily, weekly, and specific block rotation patterns. Emergency routing integrates with the call service, IVR and AI intake must be configured separately. Call service running and connected to your API (local dev: pnpm run calls). Users/agents exist in Settings to Team with valid phone numbers for routing. IVR or AI emergency phrases configured to use on-call lookup (see call. Admin or settings permission to edit schedules. Under Add / Edit Schedule, choose an Agent. Pick day of week, start time, and end time (overnight ranges supported). A Daily row covers the same weekdays every week, such as Monday 5:00 p.m.

Overview

The on-call schedule assigns agents (technicians or staff) to time windows. When a caller triggers an emergency path—via IVR option or AI phrase—the call service routes to whoever is currently on call.
Schedule types:
TypeUse case
Daily (recurring)Same day-of-week and time range every week (for example, Mon 5 PM – Tue 8 AM)
Weekly (date range)Fixed start/end dates with daily time bounds
Specific blocksOne-off or custom datetime ranges
The page shows Current on-call at the top when the call service is reachable.

How to access

  1. Sign in as a user with settings access.
  2. Go to Settings → Employee Roster → On-call (/settings/employee-roster?tab=on-call).
Embed routes exist for multi-tenant or external admin tools: /embed/on-call-schedule (see your deployment docs).

How do you view who is on call right now (name and phone when available)?

View who is on call right now (name and phone when available).
  • View who is on call right now (name and phone when available).
  • Add schedules with agent, type, and time configuration.
  • Edit, activate/deactivate, or delete existing schedules.
  • Support daily, weekly, and specific block rotation patterns.
  • Reload schedule data after changes.
Emergency routing integrates with the call service—IVR and AI intake must be configured separately.

Prerequisites

  • Call service running and connected to your API (local dev: pnpm run calls).
  • Users/agents exist in Settings → Team with valid phone numbers for routing.
  • IVR or AI emergency phrases configured to use on-call lookup (see call center / IVR docs: Call Center documentation if linked in your environment).
  • Admin or settings permission to edit schedules.

Step-by-step

Add a recurring nightly rotation

  1. Open Settings → On-Call Schedule.
  2. Under Add / Edit Schedule, choose an Agent.
  3. Set Type to Daily (recurring).
  4. Pick day of week, start time, and end time (overnight ranges supported).
  5. Save. Confirm the row appears in the schedule table and Active is on.

Cover a holiday week

  1. Choose Weekly (date range).
  2. Set start date, end date, and daily start/end times.
  3. Assign the covering agent and save.

Verify live routing

  1. Check Current on-call at the top of the page.
  2. Place a test call through your emergency IVR or AI phrase.
  3. Confirm the call reaches the displayed agent’s phone.
  4. If loading fails, ensure the call service is running—error messages indicate when it is unreachable.

Temporarily disable coverage

  1. Toggle Active off on a schedule row, or delete the row.
  2. Ensure another active schedule covers the same window to avoid gaps.

Example: weeknight emergency rotation

Settings access is required. Open Settings → Employee Roster → On-call (/settings/employee-roster?tab=on-call). The top of the page shows Current on-call only when the call service can be reached. If that line is empty, the schedule may still be saved and the phone system is the thing that is down.
A Daily row covers the same weekdays every week, such as Monday 5:00 p.m. through Tuesday 8:00 a.m. A Weekly row is a date range with daily start and end times, useful for a holiday week. A Specific block is one datetime range, useful when one technician covers a single Saturday. Add the agent, the type, and the window. Edit, deactivate, or delete when the rotation changes. Deactivate leaves the row for later. Delete removes it. Only one person should be the current match. Overlapping windows make the call service's choice ambiguous, so end the previous window before the next one starts.
When a caller picks the emergency IVR option or the AI call flow hears an emergency phrase, the call service dials whoever is on call at that moment, using the phone on the agent. The schedule does not itself answer the phone and it does not create the job. After the call, the office still creates the job and assigns the technician. An embed at /embed/on-call-schedule exists for an external admin tool. It is the same schedule, not a second rotation.
If nobody is on call, the emergency path has no agent to dial. Check the current-on-call banner before the weekend rather than discovering the gap from a missed call.

Current limitations

  • On-call routing requires the call service; the web UI alone does not forward calls.
  • Overlapping schedules depend on call-service resolution rules—avoid duplicate windows for the same business without confirming priority behavior.
  • No mobile push “accept decline” screen in this settings page; routing is phone-based per agent profile.

Edge cases after you change the rotation

Deactivate is the right control for a technician on vacation next month when you will turn the same window back on. Delete is for a window that should not return. The current-on-call banner is computed from active windows and the clock. A deactivated row disappears from that banner immediately. It does not recall a call already in progress.
Specific blocks override a messy week more safely than editing the daily template, because the daily template repeats. If you stretch Monday's daily window to cover a holiday, every future Monday changes too. Add a specific block for the holiday and leave the weekly pattern alone.
The embed route is for an admin tool that should not show the rest of Settings. It still needs a user who is allowed to manage the roster. It is not a public page and it is not the IVR greeting.

Related features