All work
AI Agents

FrontLine

An AI employee for service businesses that answers every call and message, books appointments, chases unpaid invoices, and fills quiet slots in the diary.

Role
Full-stack development, voice and conversation system design, integrations
Year
2022–2024
Stack
React · Node.js · Twilio Voice · WhatsApp Business API · OpenAI · PostgreSQL

The problem

Small service businesses were losing money every time the phone rang unanswered. A group of clinics and salons was missing a large share of incoming calls during busy hours, and every missed call was a lost booking that often went straight to a competitor. The owners couldn't justify a full-time receptionist for after-hours or overflow coverage, but the cost of a missed booking added up fast, and unpaid invoices were piling up because no one had time to chase them politely and consistently.

Off-the-shelf chatbots weren't the answer. Customers wanted to call or message the way they always had; they just needed someone to actually pick up.

The approach

One system, three jobs: reception, collections and diary-filling. FrontLine answers calls and WhatsApp messages in a natural voice or text reply, checks calendar availability, books directly into the client's existing calendar, and follows up on overdue invoices automatically. I built the system end to end: the voice and messaging pipeline, the booking and calendar integration, the invoice-chasing workflow, and the owner-facing dashboard.

Incoming calls are answered by a voice agent that can check availability, answer common questions and book a slot without a human ever picking up. WhatsApp and SMS follow the same logic in text form. In the background, a separate workflow watches the accounting system for overdue invoices and sends escalating, polite reminders until they're paid, stopping instantly the moment a payment lands.

  • Real-time voice agent for inbound calls with natural conversation
  • WhatsApp and SMS booking flow with calendar write-back
  • Invoice-chasing workflow (Xero, QuickBooks, Sage integration)
  • Missed-call instant text-back
  • Owner dashboard showing bookings made and revenue recovered

The agent handles the routine. A person still handles the exception.

42% → ~0
Unanswered calls
2x
Faster invoice payment
24/7
Coverage, no added headcount
1 booking
Saved pays for the month

Illustrative figures.

System design

Propose and act on the routine, escalate the exceptional. The system is built around a simple split: anything routine — booking, rescheduling, answering a repeat question, a standard payment reminder — is handled end to end by the agent. Anything sensitive or ambiguous, such as a complaint, a dispute over an invoice or an unusual request, is handed to a human immediately rather than the agent guessing. Every action the agent takes is logged to the dashboard so the owner always has a clear picture of what happened and why.

Invoice chasing follows the same principle: escalation happens gradually (friendly nudge, firmer reminder, final notice), replies like "already paid" or a dispute are recognised and handled without a human needing to intervene, and a kill switch lets the owner pause the whole workflow instantly if needed.

Reliability and rollout

Built for owners who would never trust an AI answering their phone by default. Trust was the whole adoption question, not accuracy in the abstract. I built the dashboard to make every action visible and reversible: every booking, every message sent, every invoice reminder shows up in a live log, and nothing outside the agent's defined scope happens without owner approval, especially anything customer-facing like a marketing offer or a win-back campaign. Language detection meant the same agent could serve customers in whichever language they messaged in, without separate setup per language.

The one-week trial model meant the tool had to prove itself fast: owners could see exactly what the coverage recovered in bookings and payments before deciding whether to keep it running.

Outcome

Owners could see exactly what the coverage recovered in bookings and payments within a one-week trial, before deciding whether to keep it running.

Built with

  • React
  • Node.js
  • Twilio Voice
  • WhatsApp Business API
  • OpenAI
  • PostgreSQL