Functional DemoSaaS

RoundRobin Dial OS

Multi-tenant SaaS command center that parallel-dials opted-in leads and routes only answered calls to available agents.

RoundRobin DialOS dashboard with outbound-operations stat tiles for team, agents, dials, answer rate, and talk time, plus compliance alerts and recent activity.
Dialer dashboard

What it solves

Outbound calling teams waste money on idle agents, blind managers, and legacy dialers that either underutilize agents or create compliance risk through reckless over-dialing. Legacy platforms are heavy, hard to configure, and enterprise-priced. Teams need to raise calling volume without adding headcount while staying compliant.

Built for Outbound calling teams — sales teams, appointment setters, contractors, service businesses, call centers, lead buyers, and agencies.

Overview

RoundRobin Dial OS places high-volume parallel outbound calls to opted-in leads and instantly routes every live, human-answered call to an available agent. Dial volume is a computed value — the minimum of human capacity, campaign ceilings, answer-probability budget, routing capacity, abandonment budget, provider limits, and compliance gating — never a raw admin input. Managers get a live sales-floor control tower and admins a command center for teams, campaigns, numbers, compliance, and analytics. It is compliance-aware by design with consent tracking, opt-out management, call-window rules, and audit trails.

What this demonstrates

A deterministic adaptive-pacing engine expressed as documented state machines for campaigns, leads, agents, and calls, driving a real-time dial loop. Telephony sits behind an adapter (mock by default, Twilio when configured), answered calls route over Socket.IO in real time, and background work runs through BullMQ, with encrypted provider secrets and webhook signature verification.

What makes it different

This is not a dumb dialer. It is an adaptive outbound routing platform where dial volume is a computed minimum of every safety constraint — never the maximum a manager typed.

  • Adaptive dialingnew_dials = min of capacity, campaign ceiling, answer budget, routing capacity, abandonment budget, provider limits, and compliance — never blind-max.
  • Compliance supersedes efficiencyWhen pacing or routing conflicts with opt-out, DNC, calling window, or abandonment threshold, compliance always wins.
  • Eligibility is checked thriceAt selection, at reservation, and immediately before call creation.
  • Reservations gate dialing; presence gates routingNo dial without a live lead reservation; no route to a non-Available agent.
  • Single source of truthLive dashboards, analytics, and leaderboards all derive from the same event stream.
  • Every state change is observableEach transition and outcome is timestamped, audited where sensitive, and emits an analytics event.
  • Ties are never randomEvery selection with a possible tie has an explicit, stated tiebreaker.

Core capabilities · 17

  • Pacing EnginePrime Rule of Dial Volume

    Computes recommended new dials as the minimum of all constraints each tick, with risk level and throttle reason.

  • Campaign State Machine

    Eight-state campaign lifecycle with only legal transitions, all audited and evented.

  • Agent State Machine

    Agent presence states where only Available agents are selectable for a routed call.

  • Lead Eligibility Engine

    AND of eleven conditions — consent, DNC, window, attempts, retry delay — re-verified before each dial.

  • Lead ReservationAtomic reservation

    Atomic acquire with TTL that guarantees exactly one dial per lead and self-heals on worker crash.

  • Dialing Modes

    Preview, Progressive, Power, and Predictive — each with its own ratio and abandonment profile.

  • Answered-Call Routing

    Deterministic answered-call routing to exactly one Available agent, or an abandoned/fallback path.

  • Routing Strategies

    Round Robin, Longest Idle, Weighted Round Robin, and Skill-Based selection with logged decisions.

  • Call Outcome Engine

    Every call ends in exactly one stored outcome that drives lead status, metrics, and retry.

  • Retry Scheduler

    Outcome-driven retries that honor max attempts, delay, window, consent, suppression, and campaign status.

  • Opt-Out & DNC SuppressionOrg-wide suppression

    Org-wide permanent suppression by phone number that overrides every other rule.

  • Disposition Engine

    Configurable dispositions with note requirements, conversion, and opt-out triggers, deterministic once set.

  • Live Dashboard

    Event-driven, near-real-time deltas that reconcile with underlying event counts.

  • Analytics Event Pipeline

    Immutable, tenant-scoped, idempotent events ordered per correlation for accurate lifecycle metrics.

  • Leaderboards

    Reproducible, tie-broken, time-zoned rankings derived from analytics events.

  • Failure Handling

    Idempotent recovery for provider, worker, and webhook failures with no silent data loss.

  • Audit Log

    Immutable, append-only, attributable entries for every sensitive action.

How dial volume is computed

Recommended new dials

  • Capacity allowance

    Based on available human agent capacity.

  • Campaign setting ceiling

    Calls-per-available-agent and max concurrent — a ceiling, not a target.

  • Answer probability budget

    How many answers the pool can safely absorb.

  • Routing capacity

    Agents able to take answered calls right now.

  • Abandonment budget

    Headroom under the compliance abandonment threshold.

  • Provider limits

    Provider CPS and concurrent-call caps.

  • Compliance allowance

    Calling window, consent, and DNC gating.

How it works

  1. Select an eligible lead (AND of all conditions)
  2. Reserve it atomically with a TTL
  3. Pacing engine computes safe dial volume as the min of all constraints
  4. Place the call per the campaign's dialing mode
  5. On answer, route to one Available agent via the chosen strategy
  6. Bridge and connect the agent to the live call
  7. Agent submits a disposition after the call
  8. Store the final outcome; update lead, metrics, and analytics
  9. Schedule a retry or suppress per outcome — opt-out overrides all

Data model

  • Campaign
  • Agent
  • Lead
  • Call
  • Reservation
  • Disposition
  • Analytics Event
  • Audit Entry

Screens · 11

Live Floor screen with ready-to-run, agents, answer-rate, and talk-time tiles, three paused campaign cards with Start session buttons, and a recent-sessions list.
Live Floor campaigns
Start session modal, step 1 'What to call', selecting the Demo List (472 leads ready) over a QA list before proceeding.
Start session — pick list
Start session modal, step 2 'Who's calling', with four agents checked; three offline and admin online, noting routing is bound to the selection.
Start session — pick agents
Start session modal, step 3 'How hard', with a simultaneous-calls slider set to 30 and a flight-plan summary of list, agents, and pacing before going live.
Start session — call volume
Live Floor with an active Demo Campaign, live metrics for calls/min, live talks, answer and abandon rate, four agents on calls, and an outbound-calls list.
Live campaign running
Live Floor with Demo Campaign throttled, one agent ready and others talking, a critical dialer notice holding back due to the abandon-rate cap, and calls waiting.
Campaign throttled at abandon cap
Session report modal for Demo Campaign showing 13 calls, 6 answered, 4 talks, 1 conversion, talk time, abandoned count, and a per-agent breakdown.
Session report
Analytics screen with total calls, conversations, talk time, and active-agents tiles, an agent leaderboard by conversations, and an agent-metrics table.
Dialer analytics
Compliance screen with a phone-number opt-out/DNC form, empty opt-outs and internal DNC lists, and a compliance-alerts log of abandon-rate warnings.
Compliance and opt-outs
Telephony screen showing an active Mock Provider and a phone-numbers form to add a caller-ID number, with no numbers added yet.
Telephony providers
Settings screen with organization details, a members list with roles and invites, and a roles-and-permissions grid for Admin, Agent, Compliance, Manager, and Owner.
Org settings and roles

How it is built

A pnpm/Turbo monorepo with a Next.js web app and an Express API, a Prisma + Postgres data model, Redis for sessions/presence and BullMQ queues, and Socket.IO for the live floor; telephony providers are pluggable and Docker Compose runs the stack.

APIs and services

Twilio

Classification

Related work

CRM Empire

Functional Demo

Central CRM that unifies a cluster of home-service apps under one role-based platform.

SiteFlow Daily

In Development

Visual jobsite handoff and project timeline platform for construction crews and management.

Admin Portal

Functional Demo

Central analytics and management console for a suite of home-services sub-apps.

Building something with similar Workflow Automation, Analytics, Dashboards functionality?

Start a project and reference this one — the conversation begins with what you have already seen.

Start a project