By Sagar Shankaran, Founder of CallSphere
Score >=0.6 triggers a Primary contact ladder with 6 fallbacks. Vapi has no escalation primitives — you build the entire state machine.
Key takeaways
CallSphere's After-Hours Escalation product runs a deterministic escalation ladder: when an emergency scores ≥0.6, the system pages Primary + Secondary + 6 fallback contacts with simultaneous voice call + SMS per position, with a 120-second timeout before advancing. Acknowledgment from any position stops the cascade. Vapi.ai has zero escalation primitives — no ladder model, no ACK detector, no timeout state machine. To match CallSphere you would write the entire orchestrator yourself, debug it under real-emergency stress, and own the operational risk forever. This post breaks down the ladder mechanics with a Mermaid state diagram and a worked tenant emergency example.
The voice on the other end of an emergency call is the visible part. The escalation ladder is the invisible part that decides whether the emergency gets handled. A perfect voice talking to the wrong person at the right time is worse than a serviceable voice talking to the right person.
Marsh McLennan's 2024 commercial property risk study found that the single biggest driver of after-hours incident cost is time-to-acknowledgment — the elapsed time between when the emergency is reported and when a responsible human acknowledges they are responding. Every 15 minutes of delay on a water leak adds an average of $2,400 in remediation. Every 30 minutes of delay on a fire-suppression failure adds compounding liability.
The ladder is the mechanism that minimizes time-to-ACK.
The ladder lives in escalation_ladder_config and on_call_rotations. A ladder for one property at one moment in time looks like:
| Position | Role | Contact | Channels | Timeout |
|---|---|---|---|---|
| 1 | Primary | Jose Hernandez (maintenance) | voice + SMS | 120s |
| 2 | Secondary | Maria Lopez (maintenance) | voice + SMS | 120s |
| 3 | Fallback 1 | Tom Reilly (regional mgr) | voice + SMS | 120s |
| 4 | Fallback 2 | 24/7 plumbing service (Acme) | voice + SMS | 180s |
| 5 | Fallback 3 | District manager (Sarah) | voice + SMS | 120s |
| 6 | Fallback 4 | Backup plumbing service (Beta) | voice + SMS | 180s |
| 7 | Fallback 5 | VP Operations | voice + SMS | 120s |
| 8 | Fallback 6 | CEO emergency line | voice + SMS | 120s |
Each position is paged with simultaneous voice + SMS so the contact gets it through whichever channel they happen to be near. The 120-second timeout per position is empirically tuned — long enough for a sleeping person to wake, find the phone, and respond; short enough that 8 positions exhaust in under 18 minutes if no one responds.
Vapi has voice. To build a ladder on Vapi you write:
This is a 4-8 week engineering project for a senior engineer. CallSphere ships it.
| Capability | After-Hours Escalation | Vapi |
|---|---|---|
| Ladder model in DB | escalation_ladder_config | Build it |
| Primary + Secondary + 6 fallbacks | Default | Build it |
| Simultaneous voice + SMS | Default | Build orchestrator |
| 120s timeout per position | Configurable | Build timer |
| ACK stops the cascade | AckMonitorAgent | Build detector |
| Multi-channel ACK (voice DTMF, SMS YES, callback) | All three | Build all three |
| Per-property ladder config | Yes | Build it |
| Per-time-of-day rotation | on_call_rotations | Build it |
| Audit trail | escalation_logs | Build it |
| Time to deploy | Days | Months |
```mermaid graph TD A[Event Created Score >=0.6] --> B[Build Ladder from Rotation + Config] B --> C[Position = 1: Primary] C --> D[Fire Voice Call + SMS Simultaneously] D --> E[Start 120s Timeout] E --> F{ACK Received?} F -->|YES via SMS| G[AckMonitorAgent: Stop] F -->|YES via Voice DTMF| G F -->|YES via Callback| G F -->|No, timeout| H{Last Position?} H -->|No| I[Advance: Position += 1] I --> J{Service Provider Position?} J -->|Yes| K[Use 180s Timeout] J -->|No| L[Use 120s Timeout] K --> D L --> D H -->|Yes| M[admin_alerts: Page Property Manager] G --> N[Log ACK to acknowledgments Table] M --> O[Log Cascade Exhausted] N --> P[Reply to Tenant: Person En Route] O --> Q[Manual Intervention Required] P --> R[Update daily_metrics] Q --> R ```
The state machine is deterministic. There is no LLM judgment in the ladder advance — that is intentional. You do not want a model deciding whether a tenant emergency has been acknowledged based on vibes. Determinism keeps the system predictable in court and in operations review.
A position is considered acknowledged if any of the following happens within the timeout window:
Hear it before you finish reading
Talk to a live CallSphere AI voice agent for real estate in your browser — 60 seconds, no signup.
The AckMonitorAgent listens on all three channels and writes to acknowledgments with timestamp, position, channel, and response payload. This three-channel design is critical because at 3am, half the on-call population responds via callback (they are confused by the SMS) and half by SMS (they cannot find the phone but read the text).
A tenant calls the after-hours line at 3:42am: "I smell gas in the hallway, it's strong."
Step 1 (DialpadAgent + VoiceAgent): Live conversation. Captures "gas" keyword (0.95 weight). Score = 0.95. Above threshold.
Step 2 (HeadAgent): Creates Event severity=high category=gas. Builds ladder for that property. Note: gas events have a specialized ladder that includes the local utility emergency line as Fallback 1.
Step 3: Position 1 (Jose). Voice + SMS fired simultaneously. Jose's voicemail picks up after 4 rings. SMS unread. 120s timeout.
Step 4 (Advance): Position 2 (Maria). Maria answers the voice call. VoiceAgent says: "Active gas smell at 1234 Main, hallway. Tenant on scene. Press 1 to acknowledge and respond." Maria presses 1.
Step 5 (AckMonitorAgent): Detects DTMF=1. Stops cascade. Writes acknowledgment.
Step 6 (Parallel): Because category=gas, Fallback 1 (utility) is also paged regardless — gas events trigger a non-stop "always notify utility" override. Utility dispatch confirmed.
Step 7 (HeadAgent): Replies to tenant via voice and SMS: "Maria from maintenance is en route, ETA 18 minutes. The gas company has also been called. Please leave the building immediately and wait outside."
Total time from tenant call to first ACK: 3 minutes 8 seconds. From event creation to gas company dispatch: 1 minute 12 seconds.
Gas, fire, and medical emergencies have different ladders than water and HVAC because the response constraints are different. Gas always notifies the utility. Fire always notifies 911 dispatch. Medical always asks the tenant whether they need 911 first. The ladder is a configuration, not a hardcoded behavior.
Vapi has none of this. You write each special case yourself, debug it in production (yikes), and pray.
The SmsAgent uses templated messages with dynamic variables. Sample templates:
Templates are tuned for SMS readability — short, structured, with clear CTAs. Tone is professional-urgent, never panicky. We have iterated on these templates across 18,000+ live emergencies and the current set has the highest first-position ACK rate.
Vapi: write them yourself. Tune them yourself.
Still reading? Stop comparing — try CallSphere live.
See the real estate AI agent handle a real call — complete, industry-specific, and live in your browser. No signup.
The VoiceAgent uses TTS scripts with controlled phrasing. Live emergency-page calls open with a specific cadence — slower delivery, no greetings, urgent vocabulary:
"Active gas leak at 1234 Main, hallway. Tenant on scene. You are position one of eight. Press one to acknowledge and respond, two to decline."
This phrasing is engineered. Slow it down too much and the contact loses urgency. Speed it up and they cannot process the address. We use a 14% slower TTS rate than standard sales delivery and a deeper-pitch voice profile. Vapi-based builds we have audited use default sales-style fast voices for emergency pages, which feel disrespectful to the situation.
A real-world stress: it is a winter night, freeze-thaw cycle hits the property, and 14 units file emergency reports for water leaks within 90 minutes. The system has to triage:
This sophistication is why the platform is built for property management specifically. Vapi has no concept of incident grouping; you build the entire incident-management layer.
Property management firms with 50+ properties across multiple cities need geographic awareness. CallSphere's events carry property + city + region. Ladders are property-specific (each property has its own on-call rotation). When the firm's regional manager has a Friday-night blackout window, the ladder skips them and routes to the regional backup.
on_call_rotations supports timezone-aware schedules so a property in Phoenix has its on-call rotation in MST while a property in Boston is in EST, all without the agent confusing them.
That is the desired behavior for life-safety emergencies. The agent always reminds the tenant to call 911 if they have not, and the property ladder is parallel — the agent dispatches maintenance/utility while 911 handles the life-safety side.
Yes. escalation_ladder_config has per-row timeout. We default to 120s for staff, 180s for service providers (they often need to wake up a dispatcher).
The platform retries SMS via a secondary Twilio subaccount and falls back to voice-only paging if SMS is degraded. This is bundled.
escalation_contacts has an active flag and PTO/vacation overrides. A contact who is on vacation is automatically skipped, and the ladder is recomputed.
escalation_logs is append-only and stored with cryptographic chaining (each row hashes the previous). Full audit trail for insurance and litigation.
Yes. The dashboard surfaces per-property median time-to-ACK, ACK rate by ladder position, cascade-exhausted rate, and false-positive rate. Quarterly reviews surface where the rotation needs adjustment.
Most customers use both initially — CallSphere for immediate triage and ladder paging, the dispatcher service as a fallback if the ladder exhausts. After 90 days, most customers migrate fully to CallSphere because the dispatcher fallback is rarely triggered (under 1% of events).
VoiceAgent leaves a structured voicemail: same urgent tone, full address, callback number, and a "press 1 if you got this" instruction for the next dial.
Book a demo at /demo — we will simulate a tenant emergency on your real ladder configuration and show you the cascade end-to-end.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
Tbilisi professional-services firms serving relocating founders and IT companies use CallSphere AI voice and chat agents to answer enquiries 24/7 in English, Georgian and Russian and book consultations.
A how-to for Colombian education and tutoring SMBs to answer parents and students instantly, book trial classes 24/7 in Spanish and English, and grow enrollment with a CallSphere AI agent.
Ethiopian coffee exporters and cooperatives lose buyer enquiries across time zones. See how a CallSphere AI voice and chat agent answers international coffee buyers 24/7 in Amharic and English.
A practical how-to for Palau eco-resorts and dive operators on capturing every high-value, multilingual enquiry with a CallSphere AI voice and chat agent, while honouring Palau’s marine-conservation commitments.
How salons, spas and wellness SMBs across the UAE, Saudi Arabia and Qatar use CallSphere AI voice and chat agents to capture every booking 24/7 in Arabic, English and expat languages, and cut no-shows.
How estate agents and property managers in Luxembourg City and across the Grand Duchy use CallSphere to capture multilingual viewing and enquiry calls 24/7, GDPR compliant.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI