AI Front Office App Overview
The AI receptionist that answers chat, SMS, and phone calls for service businesses β qualifies the request, books the appointment, and hands the work to your operations system.
What is the AI Front Office App?
AI Front Office is the B2C front desk for a service business β the homeowner calling a plumbing company, the customer booking a salon appointment, the renter chatting in for a service request. The AI receptionist handles inbound on web chat, SMS, voice (phone), and web voice (browser mic), qualifies the request, and books the appointment β then hands the booked work to Field Service Suite (or Bookings, etc.) where operations actually delivers it.
Itβs distinct from Mango GTM β thatβs the B2B SaaS sales funnel for the tenant business itself; AI Front Office is the front desk for the tenant businessβs own customers.
Core Value Proposition:
- π Multi-Channel Receptionist β Chat, SMS, voice, and web voice β one agent, one knowledge base, one set of guardrails.
- β±οΈ Speed-to-Lead SLA β Track time-to-first-contact, warn at 25% remaining, breach-notify dispatchers when the window expires.
- π‘οΈ Safety-First Rollout β Shadow mode, after-hours-only mode, and dispatcher-approves-all mode let you pilot without risk.
- π Closed-Loop Win-Back β TCPA-compliant SMS / email outreach to dormant customers, declined estimates, and missed calls.
At a Glance
| β±οΈ Setup Time | π‘ Channels | π‘οΈ Safety Modes | π± Mobile Ready |
|---|---|---|---|
| ~30 minutes | Chat, SMS, Voice, Web Voice | 3 (after-hours, shadow, approve-all) | β Yes |
Perfect For:
- π οΈ Service businesses (plumbing, HVAC, electrical, salons) β Capture and book inbound that would otherwise miss the receptionist.
- π Teams with after-hours demand β Run AI after-hours, humans during the day, to catch jobs that would have voice-mailed.
- π Operations leaders chasing speed-to-lead β Surface and break the SLA window before a competitor beats you to the call-back.
How It Works
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β INBOUND β BOOKED WORK ORDER β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β CUSTOMER βββββββΆβ AI RECEPT- βββββββΆβ BOOKING β β
β β CALLS / SMS β β IONIST β β REQUEST β β
β β / CHATS β β (qualifies) β β (scored) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββ¬ββββββββ β
β β β
β βΌ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β FSS WORK ββββββββ DISPATCHER ββββββββ ROUTING + β β
β β ORDER / β β REVIEW β β CONFIDENCE β β
β β SERVICE- β β (or auto) β β CHECK β β
β β TITAN JOB β β β β β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Channel & Integration Map
βββββββββββββββββββββββββββ
β AI FRONT OFFICE β
β (Receptionist Agent) β
ββββββββββββββ¬βββββββββββββ
β
ββββββββββββ¬βββββββββββ¬ββββββββββββΌββββββββββββ¬βββββββββββ¬βββββββββββ
βΌ βΌ βΌ βΌ βΌ βΌ βΌ
ββββββββ ββββββββ ββββββββββ ββββββββββ ββββββββ ββββββββββ ββββββββββ
β Web β β SMS β β Voice β β Web β β FSS β βService-β β Win- β
β Chat β β(Twi- β β (Vapi+ β β Voice β β Work β β Titan β β Back β
βWidgetβ β lio) β β Twilio)β β(brwsr) β βOrdersβ β Sync β βSMS/Eml β
ββββββββ ββββββββ ββββββββββ ββββββββββ ββββββββ ββββββββββ ββββββββββ
Key Features
π€ AI Receptionist (Multi-Channel)
The Agents::AiFrontOfficeReceptionistAgent runs across every inbound channel with the same toolbox and guardrails.
| Channel | Description |
|---|---|
| Web Chat | Public widget on book.{slug}.workforce.mangoapps.com |
| Inbound SMS | Twilio number β AI receptionist |
| Inbound Voice | Vapi + Twilio (phone), with phone-number binding |
| Web Voice | βTalk nowβ button on the chat widget β browser mic + Vapi |
Built-in safety:
- Pre-LLM topic gate β rejects off-scope and jailbreak attempts before they reach the model
- Per-conversation token + cost guardrails β hard cap (default 50,000 tokens / 200Β’ per voice call); when exceeded the agent escalates to a dispatcher
- Hallucination scan on AI responses (range-only quotes, no fabricated commitments)
Use Case: A homeowner calls at 9pm with a burst pipe. The voice agent answers, qualifies βemergency leak,β collects the address, books the slot, and pushes the urgent BookingRequest to the on-call dispatcherβs mobile.
π‘ Pro Tip: Enable Shadow Mode for the first week. The AI runs end-to-end and logs every conversation, but BookingRequests are tagged
shadowand hidden from dispatchers. Review the transcripts and confidence scores before flipping it live.
π‘οΈ Safety-First Rollout Modes
Three independent modes that compose β keep all three on during the pilot, peel them off as confidence builds.
| Mode | Effect |
|---|---|
| After-Hours Only | AI runs only when business hours are closed (per BusinessHoursService); humans handle business hours |
| Shadow Mode | AI runs end-to-end, but BookingRequests are created with status=shadow and hidden from dispatchers |
| Dispatcher Approves All | Every BookingRequest enters pending_review regardless of confidence β no auto-book |
π‘ Pro Tip: Donβt disable all three modes at once. Order: drop βapproves allβ first (now confidence-gated auto-book is allowed), then βshadow,β then βafter-hoursβ last when you trust the agent on live business-hours traffic.
π Online Booking & Dispatch
The booking pipeline is the core of the app β every channel feeds into it.
| Feature | Description |
|---|---|
| Online booking widget | Public form on the tenant subdomain (no AI conversation required) |
| BookingRequest | Per-request record with confidence score + auto_book_eligible flag |
| Service-area validation | Geocodes the address and checks against the tenantβs coverage zones |
| Customer match | By phone or address β duplicates collapse onto the existing customer |
| Dispatcher routing rules | DispatcherRoutingRule β service-type, zip, urgency match β route to the right dispatcher |
| Confidence floor | geocode_confidence_min (default 0.85) β below floor, never auto-book |
| One-click WorkOrder | Approved BookingRequest converts to a Field Service WorkOrder |
| ServiceTitan sync | Optional β push approved bookings to ServiceTitan as Jobs instead of creating FSS WorkOrders |
β±οΈ Speed-to-Lead SLA
The AiFrontOffice::SpeedToLeadMonitorJob sweeps every open BookingRequest minute-by-minute and notifies dispatchers when the SLA window is at risk.
| Event | When |
|---|---|
| Warning | 25% of the window remains |
| Breach | 100% of the window has elapsed |
| Default window | 5 minutes (configurable) |
One-shot flags (sla_warning_sent, sla_breach_sent) ensure each event fires at most once per booking.
Use Case: A new lead lands at 9:42am with a 5-minute SLA. At 9:45:45 the dispatcherβs mobile pings β β1:15 left.β If unanswered, at 9:47am a breach notification fires and the lead is flagged red on the queue.
π¨ Urgent Booking Push + Sentiment Escalation
| Feature | Description |
|---|---|
| Urgent Booking Push | DispatcherUrgentBookingPushJob β mobile push to dispatchers when an emergency or same-day BookingRequest lands; skips when shadow mode is on |
| Sentiment Escalation | SentimentEscalationEvaluator β when the visitor shows sustained frustration (default: 2 consecutive negative turns), escalate to a dispatcher automatically |
| Voice Frustrated-Lost Tracking | Voice calls also get a post-call frustrated_lost OutcomeEvent for analytics |
π B2C Win-Back Campaigns
Closed-loop outreach to customers who slipped through the funnel β dormant customers, declined estimates, missed calls.
| Feature | Description |
|---|---|
| Audience builders | Dormant customers, declined estimates, missed calls β all WinbackAudienceService-backed |
| AI-drafted copy | WinbackOutreachDrafter writes tenant-voice SMS / email |
| Outbound delivery | WinbackDeliveryService + WinbackOutreachMailer |
| TCPA-compliant consent | Opt-in tracked, STOP keyword honored, per-tenant suppression list |
| Outbound voice follow-up | Optional β OutboundCallScheduler schedules a follow-up call after a customer_declined_estimate decline (gated by outbound_voice_decline_followup_enabled) |
| Abandonment recovery | Optional β when a chat / SMS conversation is marked abandoned and a phone is on file, schedule an outbound recovery call |
| Per-phone rate limit | Default 3 outbound attempts per phone per 7-day window β hard cap across all trigger kinds |
ποΈ Call Coach (AI Scoring)
CallCoachService scores conversations on four rubric dimensions; CsrCallScorecard stores the result.
| Dimension | What it measures |
|---|---|
| Greeting | Did the rep open per the script? |
| Diagnosis | Was the problem qualified before any pricing or scheduling? |
| Booking attempt | Did the rep ask for the appointment? |
| Objection handling | How did the rep respond to pushback? |
Rubrics are tenant-configurable via CallCoachRubric.
π Knowledge Base
When the ai_front_office_kb_enabled flag is on, the receptionist gets a lookup_knowledge_base tool that searches the tenantβs authored FAQ articles before escalating (βdo you service brand X?β, βwhatβs the warranty?β).
AiKnowledgeBaseService powers the lookup; tenants author articles per-business.
π‘οΈ Compliance & Safety
| Feature | Description |
|---|---|
| Two-party recording consent | State-aware disclosure on voice calls |
| TCPA opt-in / STOP / suppression | Full consent lifecycle on win-back outreach |
| PII auto-redaction | Transcripts redacted after 90 days (configurable) |
| Hallucination scan | Range-only quotes; no fabricated commitments |
π Analytics
The AnalyticsService powers the analytics dashboard at /apps/ai_front_office/analytics.
Reception Metrics:
- Inbound conversations by channel (chat / SMS / voice / web voice)
- Booking conversion rate per channel
- Auto-book vs manual-review breakdown
- Speed-to-Lead warning + breach counts
Win-Back Metrics:
WinbackAnalyticsServiceβ outreach sent, replies, recovered revenue- Per-message ROI (configurable cost: 0.5Β’ SMS / 0.1Β’ email default)
Call Coach Metrics:
- Score distribution by rubric dimension
- Trend over time per CSR
β° Background Jobs
| Job | What it does |
|---|---|
AiFrontOffice::SpeedToLeadMonitorJob |
Minute-cadence SLA sweep (warning + breach) |
AiFrontOffice::DispatcherUrgentBookingPushJob |
Mobile push for urgent BookingRequests |
AiFrontOffice::OutboundCallJob |
Places scheduled outbound calls (decline / abandonment follow-up) |
AiFrontOffice::EnrollWinbackCampaignJob |
Enrolls eligible customers in a win-back campaign |
AiFrontOffice::SendWinbackEnrollmentJob |
Sends the enrolled outreach (SMS / email) |
π Notifications
| Channel | When |
|---|---|
| Mobile push (dispatcher) | Urgent / same-day BookingRequest lands |
| Mobile push (dispatcher) | Speed-to-Lead warning (25% window remaining) |
| Mobile push (dispatcher) | Speed-to-Lead breach |
| Email (customer) | Win-back outreach via WinbackOutreachMailer |
| SMS (customer) | Win-back outreach + appointment confirmations |
User Roles & Permissions
| Role | Capabilities |
|---|---|
| Member | No access by default (configurable via allowed_roles) |
| Manager | Review conversations, approve / decline BookingRequests, view analytics, view scorecards |
| Admin / Super Admin | Everything Manager can do, plus configure routing rules, win-back campaigns, knowledge base, channel toggles, safety modes, SLA window, cost caps, ServiceTitan sync |
Defaults: allowed_roles = [manager, admin, super_admin], admin_roles = [admin, super_admin].
How We Compare
AI Front Office sits in the AI receptionist for service businesses category, alongside RingDNA-style call answering and AI dispatchers like Goodcall and Numa. Verified differentiators:
| Feature | MangoApps Workforce | Goodcall | Numa | RingDNA |
|---|---|---|---|---|
| Multi-channel (chat + SMS + voice + web voice) | β | β‘ | β‘ | β‘ |
| Native handoff to FSS WorkOrder | β | β | β | β |
| ServiceTitan sync | β | β | β | β |
| Speed-to-Lead SLA tracking | β | β | β‘ | β |
| Shadow / after-hours / approve-all modes | β | β | β | β |
| Closed-loop B2C win-back | β | β | β‘ | β |
| Built-in TCPA + STOP-keyword handling | β | β | β | β |
| Legend: β Included | β Not Available | β‘ Limited / partial |
Why MangoApps Workforce?
- π Unified Platform β Booked appointments flow straight into Field Service WorkOrders, into Mango Spend reimbursements, into the same analytics surface as the rest of operations.
- π‘οΈ Safety-First Rollout β Shadow + after-hours + approves-all modes are first-class settings, not feature requests. You can pilot for a week before any customer talks to the AI live.
- π€ AI-Native β Receptionist agent, win-back drafter, call coach, and KB lookup all built on the same
LlmConnectionManagerstack as the rest of MangoApps β not a third-party plug-in.
Getting Started
For Administrators
- Enable the app β In Admin β Apps Marketplace, find AI Front Office and toggle
app_enabledon. - Bind a phone / channel β Add a
TenantPhoneNumber(Twilio) orTenantWebChannelfor the chat widget. Voice channels also need a Vapi assistant binding. - Configure business hours β
BusinessHoursServicereads the tenantβs hours; the AI uses these to enforce after-hours-only mode. - Pilot in shadow mode β Keep
ai_receptionist_shadow_mode = trueandai_receptionist_dispatcher_approves_all = true. Enable one channel (chat is easiest) and let it run for 5β7 days. - Review transcripts β Conversations tab shows every IntakeConversation with its confidence score and outcome. Look for misqualifications and fix the routing rules / KB articles.
- Drop approves-all β Once confident, disable
dispatcher_approves_all. Now high-confidence bookings auto-route; low-confidence still queues for review. - Drop shadow mode β When ready, real BookingRequests start flowing to dispatchers.
- Set the SLA β Tune
speed_to_lead_minutes(default 5). Most service businesses aim for 5β15 minutes. - Turn on win-back β Configure
winback_campaigns_enabled, build an audience (start with declined estimates), and let the drafter generate the first outreach for review.
For Dispatchers / Managers
- Bookmark the queue β AI Front Office β Booking Requests β pending_review is your daily driver.
- Approve or decline β Each request shows the AIβs confidence, the conversation transcript, and the proposed time slot.
- Watch the SLA panel β At-risk bookings surface here automatically.
- Use Call Coach β Review your teamβs CSR scorecards weekly; the rubric dimensions point at where to coach.
Best Practices
- β Always pilot in Shadow Mode first β A week in shadow catches misqualifications and routing gaps before any customer experiences them.
- β
Tune the geocode confidence floor β Set
geocode_confidence_minhigher in dense urban markets where one street has multiple addresses; lower in rural where geocoding is fuzzy. - β
Author the KB before turning on KB tool β
lookup_knowledge_baseis only as good as the FAQs you write. Empty KB β AI escalates anyway. - β Watch per-call cost cap during voice rollout β The default 200Β’ is conservative; raise it only after youβve verified average voice costs in shadow mode.
- β Honor STOP, every time β TCPA-compliant suppression isnβt optional. The platform handles it; donβt bypass it for βjust one more reach-out.β
- β Review Call Coach scorecards weekly β The rubric is most valuable when used as coaching feedback, not a leaderboard.
Frequently Asked Questions
Q: Is the voice channel production-ready?
A: Voice (inbound phone) ships behind ai_receptionist_voice_enabled and is a beta capability β the underlying Vapi + Twilio Media Streams integration is in place but is gated for tenants who explicitly opt in. Web voice (browser mic) and chat / SMS are the most stable channels at GA.
Q: How is this different from Mango GTM?
A: Mango GTM is the B2B SaaS sales funnel for the tenant business itself β capturing prospects, qualifying SQLs, scoring deals. AI Front Office is the B2C front desk for the tenant businessβs own customers β the homeowner, the salon client, the rental tenant. Different audience, different agent, different outcomes.
Q: What happens if the AI doesnβt know the answer?
A: The agent has a strict allowlist of tools β lookup_knowledge_base (if KB enabled), create_booking_request (which goes through dispatcher review), and escalate_to_dispatcher. When confidence drops, it escalates. Thereβs no path from the agent to an unsupervised write β every booking creation goes through the dispatcher review queue when in approves-all mode, or is confidence-gated otherwise.
Q: How does TCPA compliance work for win-back?
A: Outbound SMS only goes to phones with a recorded opt-in; replies of STOP (and variants) auto-suppress; suppression is per-tenant and persists. Outbound voice follow-up additionally respects the per-phone outbound cap (default 3 per 7-day window) so a single number canβt be re-dialed indefinitely.
Q: Can I send approved bookings to ServiceTitan instead of FSS?
A: Yes β toggle servicetitan_sync_enabled on (requires a connected ServiceTitan integration). When ON, approved BookingRequests are pushed to ServiceTitan as Jobs instead of creating Field Service WorkOrders. The integration is one-way (push only).
Q: Whatβs the cost cap actually doing?
A: max_tokens_per_conversation (default 50,000) is a hard ceiling β when exceeded, the agent escalates to a dispatcher mid-conversation. per_call_cost_cap_cents (default 200) is the equivalent for voice. These are guardrails, not budgets β most conversations finish far under both caps.
Related Resources
- Apps Overview β Full marketplace catalog
- Field Service Suite β Where approved BookingRequests become WorkOrders
- Bookings β Appointment-style booking surface
- Mango GTM β The B2B sales-side counterpart (different audience entirely)
Inbound chat, SMS, voice, web voice β qualified, booked, dispatched. The AI receptionist for service businesses.