DEV Community

Yashwardhan
Yashwardhan

Posted on

How We Built a 67-Node AI Inside Sales Agent That Books Appointments While Contractors Sleep

Home service businesses — garage door repair, pest control, mobile detailing, moving companies — live and die by response speed. Industry data has shown for years that a lead contacted within 5 minutes converts dramatically better than one contacted an hour later. Most small contractors simply can't hit that window. They're on a roof, under a sink, or driving between jobs.

So we built an AI Inside Sales Agent (ISA) to close that gap. Here's how it works under the hood.

The problem with "just add a chatbot"

Most lead-response tools stop at "send an auto-reply." That's not enough. A real ISA needs to:

  • Qualify the lead (budget, timeline, service type, location)
  • Handle objections in natural language
  • Check real calendar availability
  • Book the appointment without double-booking
  • Hand off cleanly to a human when the conversation goes off-script
  • Log everything somewhere the business owner can actually see That's a workflow problem, not a prompt problem.

The architecture

We built this as a 67-node workflow in n8n, orchestrated around:

  • GPT-4o-mini for conversation and intent classification — cheap enough to run on every inbound message without blowing up margins
  • Twilio for SMS-based conversation (most homeowners won't download an app or use a web chat widget for a garage door quote)
  • Google Calendar API for real-time availability checks and booking
  • Google Sheets as a lightweight CRM backbone — searchable, exportable, and something a non-technical business owner can actually open and understand
  • Slack for internal handoff alerts when a lead needs a human The key design decision was keeping the qualification logic outside the LLM prompt as much as possible — structured branching in n8n, with GPT-4o-mini handling only the parts that genuinely need natural language understanding (interpreting free-text replies, detecting objections, tone-matching). This keeps costs predictable and behavior debuggable, instead of relying on one giant system prompt to carry the entire conversation.

Why this matters for contractors specifically

Home service leads are unforgiving. A homeowner with a broken garage door is usually messaging 3-4 companies at once. Whoever responds first — and sounds competent doing it — tends to win the job. An ISA that replies in under a minute, asks the right qualifying questions, and books directly onto the calendar removes the single biggest leak in a contractor's funnel: the lag between "lead comes in" and "someone picks up the phone."

Lessons from building this

  1. Don't let the LLM own scheduling logic. Calendar conflicts are a deterministic problem — hand them to code, not a language model.
  2. Log every message, even failed ones. The failure cases taught us more about real customer language than any amount of prompt engineering.
  3. Build the human handoff path first, not last. The fastest way to lose a contractor's trust is an AI that gets stuck in a loop with a live customer.
  4. Small models are enough for 90% of turns. GPT-4o-mini handled almost everything; we reserved anything heavier for edge cases. ### Wrapping up

If you're building similar lead-response or scheduling automation — whether with n8n, LangChain, or a custom stack — I'd genuinely like to compare notes in the comments.

We do this kind of build for home service contractors and real estate agents at Xmel Automations — feel free to check it out if you're working on something similar.

Top comments (0)