Solution guide · Field Service Management

Custom Software With an AI Voice Agent That Books Jobs: Feasibility, Cost, and the Parts Nobody Quotes

The short answer

Adding an AI voice agent that books real jobs into an existing scheduling product typically runs $15,000 to $60,000 over 5 to 9 weeks in our delivery experience. As part of a first release it runs $50,000 to $130,000 in 10 to 16 weeks, and a full multi-tenant platform with dispatch logic, telephony compliance, and an evaluation harness runs $150,000 to $350,000 over 6 to 12 months. The demo takes a weekend. The part that survives 400 calls a week is the other 95 percent of the budget.

What this really involves once real callers touch it

A voice agent that books jobs is a distributed write path running under a hard 800 millisecond conversational deadline, driven by an unreliable narrator (the caller), over an 8 kHz phone line, into a calendar that other humans are editing at the same time.

Here is the exact failure we have cleaned up more than once. Friday 4:50pm. The agent is on the phone, the caller accepts the last Tuesday 2pm slot, and the agent fires book_job into the field service CRM (Customer Relationship Management). The CRM takes 9 seconds because Friday afternoon is its peak. The HTTP client times out at 8 seconds and retries. Both writes land. The agent says "you're all set for Tuesday at 2." Monday morning dispatch sees two jobs, same address, same slot, two different job IDs, and sends two trucks. The caller gets two confirmation texts and calls back angry, which the voice agent answers, and it has no idea either job exists because it reads availability, not duplicates.

Nothing in that chain is exotic. It is a missing idempotency key and a tool timeout that nobody budgeted for. That is the shape of every real problem in this build: the language model works fine, the systems engineering around it is where the money goes.

The latency budget, and why your demo sounds better than production

Callers tolerate roughly 800 milliseconds of silence before they think the line dropped and start talking again. That budget has to cover endpointing (waiting to be sure the caller stopped talking, typically 300 to 700ms of trailing silence), the final speech-to-text result, model time to first token (300 to 600ms), text-to-speech time to first byte (75ms on ElevenLabs Flash, higher elsewhere), and network. You are already over budget before a single database query.

Competent builds attack it in specific places. Stream everything, and start TTS on the first sentence boundary rather than waiting for the model to finish. Tune endpointing per intent: an address needs a longer silence window than a yes or no, because callers pause mid address. Configure barge-in so the caller can interrupt, then handle the thing that ruins naive barge-in, which is backchannel. When the caller says "mhm" or "yeah" while the agent is speaking, a plain voice activity detector treats it as an interrupt and stops the agent mid word. You need a short classifier or a minimum-duration plus confidence gate before you cancel the response and flush the audio queue.

The one that surprises everyone: your demo ran at 24 kHz over WebRTC from a laptop microphone. Production runs over PSTN as G.711 mulaw at 8 kHz, narrowband, with carrier compression. Street names, unit numbers, and postcodes degrade badly. "Fifteen" and "fifty" become a coin flip. The fixes are keyword boosting on your actual local street list and service catalog, a numeric readback confirmation before any write, and a DTMF fallback so the caller can key the house number on the keypad. If a vendor has not mentioned mulaw to you, they have only ever demoed this.

Booking is a write, not a conversation

The single most important architectural rule: the language model never computes availability, never quotes a price, and never decides a slot. It calls a scheduler that owns those decisions, and it speaks the scheduler's answer. The moment availability logic lives in the prompt, you are one model update away from confidently invented appointments.

What that scheduler owes you:

  • Soft holds. Before the agent says the words "Tuesday at 2," write a hold row with a 90 to 120 second expiry. Two callers racing for the last slot is not a rare event on a Monday after a storm, it is a weekly one. A unique constraint on (technician_id, slot_start) plus a row lock is the difference between a real system and a demo.
  • Idempotency keys. One key per call leg plus intent hash, honored by your own API and passed to the CRM where supported. This is what would have prevented the two-truck scene above.
  • At-least-once webhooks. ServiceTitan, Jobber, and Housecall Pro all deliver webhooks with retries and without ordering guarantees. Reconcile on job ID and updated timestamp, never on arrival order, and expect to receive the same event twice.
  • Real constraints. Drive time between the previous job and this address, technician skill matrix, parts availability, and business unit capacity. If your slot logic ignores drive time, dispatch will override every booking the agent makes and the project quietly dies within a month.

Then there is the tool call clock. You have about 1.5 seconds before the silence is audible. Competent builds stream a filler line ("let me check the calendar for that") the instant the tool fires, set a hard 4 second deadline, and on breach fall back to a human transfer or a callback promise rather than dead air. Warm transfer means SIP REFER to a real queue with the transcript pushed ahead of the call, not "please hold" followed by a ring into nothing.

Telephony and compliance, the line item nobody quotes

This is where fixed-price quotes from generalist shops go wrong, because none of it is visible from the product spec.

STIR/SHAKEN. Outbound callbacks and confirmations need proper attestation, or carrier analytics engines label your number "Spam Likely" and answer rates collapse. You register the numbers, you keep the attestation level at A, and you monitor reputation.

A2P 10DLC. Confirmation texts from a local number require brand and campaign registration with The Campaign Registry through your carrier. Vetting takes days to weeks and gates your throughput tier. Start it in week one, not the week before launch, because it is the most common cause of a slipped go-live date on this capability.

Recording consent. Two-party consent states including California, Illinois, Florida, Pennsylvania, Massachusetts, and Washington require disclosure before recording, which means the disclosure has to be in the recording, spoken by the agent, before anything else. Your consent state logic keys off the caller's number, and you need a policy for numbers that do not resolve.

AI disclosure and TCPA. Synthetic voice on outbound calls falls under artificial voice rules, and several states now require the agent to identify itself as AI. Build the disclosure into the first turn and keep it configurable per jurisdiction. Also tune answering machine detection: false positives hang up on live humans, and the default settings are tuned for dialers, not for a booking agent.

Grounding and the evaluation harness you cannot skip

Prompt changes are code changes with no compiler. The only thing that catches a regression is a fixture set of real recorded calls, replayed through the actual pipeline including the mulaw path, asserting on the tool calls made rather than on transcript wording. We build 150 to 300 fixtures for a production agent: accents, background noise, a barking dog, a caller who changes the address halfway through, a caller who asks for a price the agent must not give, and a caller who says "actually never mind."

Pin model versions explicitly. Voice and language model endpoints get deprecated on the provider's schedule, not yours, and an auto-upgraded model that changes its tool-calling behavior will find out in production if you did not.

Observability for voice is its own build. You need one timeline per call with audio, transcript, tool calls, latency per turn, and the scheduler decision, all aligned. Without it, "the agent messed up my booking" is unfalsifiable and you will spend weeks guessing.

Cost and timeline, from Digital Heroes delivery experience

Across 2,000+ projects, this capability lands in three bands.

$15,000 to $60,000, 5 to 9 weeks: adding the voice agent to a product that already has a working scheduler, a job model, and an API. You are building the voice layer, the tool contract, holds and idempotency, the eval harness, and the compliance path.

$50,000 to $130,000, 10 to 16 weeks: voice agent as part of a first release, where the scheduling engine, dispatch view, and CRM integration are being built alongside it.

$150,000 to $350,000, 6 to 12 months: a multi-tenant platform where each customer has their own catalog, pricing rules, technicians, phone numbers, and compliance profile.

What specifically drives this capability's number up, in order of impact: the number of downstream systems the agent writes to (each CRM is its own auth model, rate limit, and duplicate behavior, and the second integration costs almost as much as the first); real dispatch constraints like drive time and skills matrices; multi-language, since Spanish plus English roughly doubles the eval corpus and the prompt surface; regulated outbound calling; and the size of the fixture set you are willing to fund. Run cost is separate and small by comparison: all in, telephony plus speech-to-text plus model plus text-to-speech typically lands around $0.10 to $0.25 per minute at public list prices, so a shop taking 400 calls a month at 3 minutes each is spending roughly $120 to $300 a month on inference and minutes.

When you should not build this

If you are a single-location trades business under about 150 calls a week, running a stock Jobber, Housecall Pro, or ServiceTitan setup, do not build this. Buy Rosie, Goodcall, Slang.ai, or Avoca at roughly $50 to $500 a month, spend a day on the configuration, and put the $40,000 into a second van. Those products already carry the 10DLC registration, the consent handling, and the carrier reputation work, and their booking logic is good enough when your scheduling rules are "any tech, any slot."

Build custom in exactly three situations. One: your scheduling logic is a real constraint solver that no off-the-shelf agent can reach, involving drive time, part inventory, certifications, or SLA windows. Two: you are the software vendor and the voice agent is a feature you resell to your own customers, which makes multi-tenancy and margin per minute your problem by definition. Three: your CRM is homegrown or heavily customized, so no vendor integration exists and you would be paying them to build one anyway.

The middle case, a growing operator with 200 to 500 calls a week on a standard CRM, should start with the managed product for 90 days, measure the booking rate and the containment rate, and only then decide. That data makes the custom build brief itself.

How to brief and vet a developer for this

Brief them with numbers, not adjectives: calls per week, peak hour concentration, average handle time, which CRM and which API version, the states you operate in, the constraints a booking must respect, and what happens today when a booking is wrong. Then ask these, and listen for specifics rather than reassurance:

  • What is your p95 turn latency target, and what is in it? Anyone who cannot break the number into endpointing, model, and TTS has not measured it.
  • How do you tell barge-in from backchannel? "We use VAD" is the wrong answer.
  • Two callers want the last 2pm slot at the same second. Walk me through the writes.
  • The CRM booking call times out at 8 seconds. What does the caller hear, and how many jobs exist afterward?
  • How does 8 kHz mulaw change your address capture, and what do you do about it?
  • Show me your evaluation set. How many fixtures, and do they assert on tool calls or on text?
  • Who owns the 10DLC registration and when does it start?
  • How does the agent handle a price question it must not answer?

A developer who has shipped this will get animated on at least three of those and will have a story attached to each. A developer who has not will talk about the model. The model is the easy part.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Timefold reports field service operations moving to automated route optimization typically see 10-25% fuel savings and 15-30% drive-time reductions, and documents a case where a global services firm cut drive time 33% and distance 43% while eliminating overtime. Source: Timefold (2025) →
  2. IBM frames first-time fix rate as a core field service KPI, noting the industry average sits around 80% (roughly one in five jobs needs a return visit). Correction: IBM cites best-in-class providers at 89-98%, not '85%+'. Source: IBM (2024) →
  3. Almost half of all the activities people are paid almost $16 trillion in wages to do in the global economy have the potential to be automated by adapting currently demonstrated technologies. Source: McKinsey Global Institute (2017) →
  4. Companies in the top quartile of McKinsey's Developer Velocity Index had 2014-18 revenue growth four to five times faster than bottom-quartile peers, showing that software-building capability is a driver of business performance, not just a support function. Source: McKinsey & Company (2020) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to add an AI voice agent that books jobs to our software?
In our delivery experience it runs $15,000 to $60,000 over 5 to 9 weeks when you already have a working scheduler and API to write into. That covers the voice pipeline, the tool contract, slot holds and idempotency, an evaluation fixture set, and the telephony compliance path. If the scheduling engine does not exist yet, it belongs in the $50,000 to $130,000 first-release band instead.
We have a $20,000 budget. What can we actually get?
A production-grade agent for a single CRM, a single language, inbound only, with a narrow intent scope: book, reschedule, cancel, and transfer anything else to a human. That is a real, useful system. What $20,000 does not buy is multi-language, outbound calling with its compliance surface, multiple CRM integrations, or a large evaluation corpus, so expect a tighter fixture set and a lower containment rate in month one.
Is $150,000 to $350,000 for a full platform realistic, or is that padding?
It is realistic when you are the vendor reselling this to your own customers. That band buys multi-tenancy, per-tenant catalogs and pricing rules, per-tenant phone numbers and compliance profiles, a dispatch engine with drive-time and skills constraints, and the observability to debug a customer's call six weeks later. A single operator automating their own phone line should never be quoted that number.
How long does it take to build?
Five to nine weeks inside an existing product, 10 to 16 weeks as part of a first release, and 6 to 12 months for a multi-tenant platform. The schedule risk is rarely the code. A2P 10DLC brand and campaign registration takes days to weeks and gates your confirmation texts, so it should start in week one.
Can you add this to our existing app?
Usually yes, and it is the cheapest version of this build. What determines the price is whether your app already owns availability logic behind an API. If your scheduler is a set of database queries embedded in your UI code, the first job is extracting a real booking service, because the voice agent must never compute availability itself.
What breaks at scale?
Three things, in order. Slot races and duplicate bookings when two callers or a retried tool call hit the same slot, which is why idempotency keys and soft holds are non-negotiable. CRM rate limits and slow peak-hour responses, which surface as dead air on the line. And silent quality drift after a prompt or model change, which only an evaluation harness replaying recorded calls will catch.
Should we use a third-party service like Rosie or Slang.ai instead?
If you are a single location under about 150 calls a week on a standard Jobber or Housecall Pro setup, yes, buy it. Those products cost roughly $50 to $500 a month and already carry the 10DLC registration, consent handling, and carrier reputation work. Build custom only when your scheduling rules are genuinely complex, when your CRM is homegrown, or when you are reselling the agent to your own customers.
What does it cost to run per month?
At public list prices, telephony plus speech-to-text plus model plus text-to-speech typically lands around $0.10 to $0.25 per minute all in. A business handling 400 calls a month at three minutes each spends roughly $120 to $300 on inference and minutes. Run cost is almost never the deciding factor here; the build and the maintenance of the evaluation set are.
Will callers know they are talking to a bot, and does that matter legally?
Yes to both. Synthetic voice on calls falls under artificial voice rules, several states require the agent to identify itself as AI, and two-party consent states including California, Illinois, Florida, and Washington require a recording disclosure spoken before anything else. Build the disclosure into the first turn, key the policy off the caller's number, and keep it configurable per jurisdiction.
How much would it cost to build something like ServiceTitan just for my company?
A true ServiceTitan clone would cost millions and you do not need one, because companies that bring this request to Digital Heroes typically use 20 to 30 percent of its features. Building that slice, shaped to your exact dispatch board and technician day, runs $80,000 to $200,000 depending on offline requirements and integrations. The field service builds that succeed copy a workflow, not a product.
Who owns the code when an agency builds our field service software?
You should own it outright, and the contract must say so: source code, designs, documentation, and every account (hosting, app stores, domains) registered to your company rather than the agency's. Work-for-hire terms with ownership transferring on payment are standard at reputable agencies, and it is how Digital Heroes contracts every build. Walk away from any proposal where you license the platform instead of owning it, because that recreates the vendor lock-in you were leaving ServiceTitan to escape.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
What features should the first version of a custom field service app include?
Version one needs the daily loop and nothing else: job creation, a drag-and-drop dispatch board, a technician mobile app that works offline, photo and signature capture, and invoicing that reaches your accounting system. Customer portals, route optimization, inventory, and reporting dashboards belong in phase two. The test for every feature is whether a dispatcher or technician touches it every day; if not, cut it.
We're outgrowing Jobber. Should we move up to ServiceTitan or build our own?
Move to ServiceTitan if the problem is missing features on a standard residential trades workflow, because migrating between products is far cheaper than building. Build custom when the problem is fit: multi-day commercial jobs, subcontractor crews, or pricing rules that neither Jobber's Grow plan (about $199 per month billed annually, up to 15 users) nor ServiceTitan models cleanly. In Digital Heroes scoping calls, about half the teams asking this question turn out to need an integration or add-on rather than a new platform, so name the exact workflow gap before committing either way.
How big a team does it take to build field service management software?
The standard Digital Heroes team for a field service build is five to six people: a project lead, a designer, two or three developers split across the mobile app and backend, and a QA tester who works on real devices in real signal conditions. Bigger is not better; experience with offline sync is. The riskier pattern is the opposite, a single developer quoting the entire system alone.
Should I hire a freelancer or an agency to build my field service software?
An agency in almost every case, because a field service build spans a mobile app, a dispatch web console, a backend, offline sync, and accounting integrations, which is four or five specialties one person rarely covers. A freelancer is the right choice for a single integration or a well-scoped add-on under $15,000. The solo-built field service systems Digital Heroes inherits fail most often at handover, when the freelancer has moved on and nobody can safely modify the sync engine.
Can a custom field service app sync with QuickBooks and the payment processor we already use?
Yes, and it should be scoped as a named workstream rather than a finishing task. QuickBooks Online, Xero, Stripe, and Square all offer mature APIs, and a two-way invoice and payment sync typically adds $8,000 to $20,000 to a build depending on how items, taxes, and customers map. The decision that matters most is source of truth: agree which system owns customer records and pricing before development starts, or you will reconcile duplicates forever.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?