Tutorials⭐ Featured

Build an AI Receptionist for Heating & Cooling Business

Step-by-step tutorial: Build an AI receptionist that answers calls 24/7, looks up customers in ServiceTitan, dispatches emergency jobs, and books appointments. Complete in 30 minutes with no coding required.

IH
Izhar Hussain

Founder

November 11, 2025
12 min read
Build an AI Receptionist for Heating & Cooling Business

It's 2:47 AM. A family's furnace just died in freezing weather. They call every heating company on Google.

Your phone rings. And rings. And rings.

But you're asleep. The call goes to voicemail.

That family calls your competitor. You just lost a $3,500 emergency repair job.

The real cost:

  • Average emergency call value: $800-3,500

  • Missed calls per week: 15-40 (industry average)

  • Lost revenue per month: $12,000-140,000


What You'll Build (30 Minutes)

An AI receptionist that:

Answers calls 24/7 - Never miss another emergency

Looks up customers - Pulls history from ServiceTitan

Dispatches emergency jobs - Creates urgent jobs and assigns technicians

Books appointments - Schedules maintenance and non-emergency work

Answers questions - Office hours, service areas, pricing

Transfers when needed - Connects complex calls to staff

How It Works

How an AI Receptionist for Heating & Cooling Business works

Real Example:

Customer: "Our AC stopped working and it's 95 degrees!"
AI: "I'm so sorry! Let me help right away. Your phone number?"
Customer: "555-123-4567"
AI: [Looks up] "Thank you, Mrs. Johnson at 123 Oak Street. Let me dispatch a technician immediately."
AI: [Creates emergency job]
AI: "I've dispatched Mike. He'll be there within 2 hours. You'll receive a text with his ETA and photo."

Cost Savings:

  • AI receptionist: $200-400/month

  • Traditional answering service: $500-1,200/month

  • Plus: Capture emergency calls = $12,000-140,000/month in additional revenue


Prerequisites

You'll need:

  1. VoiceInfra account (sign up)

  2. ServiceTitan account with API access

  3. Phone system (PBX, Twilio, or WhatsApp Business)

  4. Business FAQ document

Time: 30 minutes Technical skill: None required!


Step 1: Create Your AI Agent (5 minutes)

VoiceInfra's AI Agent Builder guides you through a questionnaire and auto-generates your AI.

Steps:

  1. Log into VoiceInfra → "Agents""Create New Agent""Use AI Agent Builder"

  2. Fill in the questionnaire:

Agent Name: Heating & Cooling Emergency Dispatcher

Industry: Home Services - Heating & Cooling

What should your AI DO?

1. Answer emergency calls 24/7 for no heat, no AC, urgent repairs
2. Look up customer information in ServiceTitan
3. Dispatch emergency jobs to on-call technicians
4. Schedule appointments for maintenance
5. Answer common questions about services and pricing

What should your AI NOT do?

1. Never quote exact prices (only ranges)
2. Never diagnose complex issues - transfer to technician
3. Never promise specific arrival times (use "within 2 hours")
4. Never handle billing disputes - transfer to office

Key Objectives:

- Capture every emergency call to maximize revenue
- Provide fast, empathetic service during stressful situations
- Reduce burden on office staff during busy seasons
  1. Click "Review & Create"

The AI Agent Builder auto-generates:

  • ✅ Voice Model: OpenAI Realtime (ultra-low latency)

  • ✅ Professional, empathetic voice

  • ✅ Custom system prompt for heating & cooling

  • ✅ Optimized conversation flow

  1. Click "Create Agent"

Done! Agent created in 2 minutes.


Step 2: Add Your Knowledge Base (10 minutes)

Create a simple FAQ document for your AI to reference.

Create FAQ File

File: heating-cooling-faq.txt

COMPANY INFO
Company: [Your Company Name]
Phone: [Your Phone]
Service Areas: [Cities you serve]
Hours: Monday-Friday 8 AM - 6 PM, Saturday 9 AM - 4 PM
Emergency Service: Available 24/7
---
SERVICES
- Emergency Repairs (24/7)
- Furnace Repair & Replacement
- Air Conditioner Repair & Replacement
- Heat Pump Service
- Preventive Maintenance Plans
- Indoor Air Quality Solutions
---
PRICING
Service Call: $89 (waived if repair completed)
Furnace Repair: $150-800 depending on issue
AC Repair: $150-900 depending on issue
Furnace Replacement: $3,000-8,000
AC Replacement: $3,500-9,000
Maintenance Plan: $199/year (2 tune-ups)
---
PAYMENT
We accept: Cash, Check, All major credit cards
Financing available
Senior and military discounts available
---
EMERGENCIES
Call immediately for:
- No heat in winter (below 55°F inside)
- No AC in summer (above 85°F with vulnerable people)
- Gas smell or carbon monoxide alarm
- Strange noises or burning smells
- Water leaking from AC unit
---
COMMON QUESTIONS
Q: How quickly can you get here for an emergency?
A: We dispatch within 2 hours for true emergencies.
-
Q: Do you offer same-day service?
A: Yes, for emergencies and often for non-emergency repairs.
-
Q: What brands do you service?
A: All major brands including Carrier, Trane, Lennox, Rheem, Goodman, York.
-
Q: How often should I replace my air filter?
A: Every 1-3 months depending on usage and pets.
-
Q: Do you install smart thermostats?
A: Yes! We install Nest, Ecobee, Honeywell, and others.

Upload to VoiceInfra

  1. Go to agent → "Knowledge Base" tab

  2. Click "Upload Document"

  3. Select your FAQ file

  4. Description: Company FAQ - Services, Pricing, Common Questions

  5. Click "Upload" "Link to Agent"

Checkpoint: AI can answer questions about your business!


Step 3: Get ServiceTitan API Access (5 minutes)

Get Credentials

  1. Log in to ServiceTitan

  2. Go to Settings Integrations API Application Access

  3. Click "Request API Access" (if needed)

  4. Go to "My Apps" "Create New App"

  5. Fill in:

    • App Name: VoiceInfra AI Receptionist

    • Description: AI voice assistant for call handling

  6. Click "Create"

  7. Copy and save:

    • Client ID

    • Client Secret

    • Tenant ID

Test Connection

Run this CURL command to verify:

curl --request POST \
  --url https://auth-integration.servicetitan.io/connect/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials \
  --data client_id=YOUR_CLIENT_ID \
  --data client_secret=YOUR_CLIENT_SECRET

Success response:

{
  "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6...",
  "expires_in": 900,
  "token_type": "Bearer"
}

✅ If you see an access token, you're ready!


Step 4: Create Functions Using CURL (10 minutes)

VoiceInfra's CURL Function Creator converts CURL commands into functions automatically.

Function 1: Customer Lookup

CURL Command:

curl --request GET \
  --url "https://api-integration.servicetitan.io/crm/v2/tenant/YOUR_TENANT_ID/customers?phone=5551234567" \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  --header "ST-App-Key: YOUR_CLIENT_ID" \
  --header "Content-Type: application/json"

Steps:

  1. VoiceInfra → "Functions" "Create New Function" "Import from CURL"

  2. Paste the CURL command (with your credentials)

  3. Click "Parse CURL"

  4. Change the function name to: lookup_customer

  5. Add description: Look up customer in ServiceTitan by phone number

  6. Click "Create Function"

  7. (Optional) Add instructions (needed if functions are created after the agent; otherwise, the AI builder will automatically manage it):

Use when the customer calls. Ask for the phone number, call this function.
If found: Greet by name and reference service history.
If not found: Ask if they're a new customer.

Function 2: Create Emergency Job

CURL Command:

curl --request POST \
  --url "https://api-integration.servicetitan.io/jpm/v2/tenant/YOUR_TENANT_ID/jobs" \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  --header "ST-App-Key: YOUR_CLIENT_ID" \
  --header "Content-Type: application/json" \
  --data '{
    "customerId": 12345,
    "locationId": 67890,
    "jobTypeId": 100,
    "priority": "Emergency",
    "summary": "No heat - emergency service",
    "businessUnitId": 1
  }'

Steps:

  1. "Import from CURL" → Paste command → "Parse"

  2. Function name: create_emergency_job

  3. Description: Create emergency job in ServiceTitan

  4. Click "Create Function"

  5. (Optional) Add instructions (needed if functions are created after the agent; otherwise, the AI builder will automatically manage it):

Use for EMERGENCIES: no heat, no AC, gas smell, water leak.
Get customer info from lookup_customer first.
Set priority to "Emergency".
Provide 2-hour ETA.

Function 3: Get Available Slots

CURL Command:

curl --request GET \
  --url "https://api-integration.servicetitan.io/jpm/v2/tenant/YOUR_TENANT_ID/appointments/slots?date=2024-03-15&duration=60&businessUnitId=1" \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  --header "ST-App-Key: YOUR_CLIENT_ID"

Steps:

  1. "Import from CURL" → Paste → "Parse"

  2. Function name: get_available_slots

  3. Description: Get available appointment times

  4. Click "Create Function"

  5. (Optional) Add instructions (needed if functions are created after the agent; otherwise, the AI builder will automatically manage it):

Use for NON-EMERGENCY appointments.
Ask customer for preferred date.
Present available times.

Function 4: Book Appointment

CURL Command:

curl --request POST \
  --url "https://api-integration.servicetitan.io/jpm/v2/tenant/YOUR_TENANT_ID/appointments" \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  --header "ST-App-Key: YOUR_CLIENT_ID" \
  --header "Content-Type: application/json" \
  --data '{
    "jobId": 98765,
    "start": "2024-03-15T09:00:00Z",
    "end": "2024-03-15T10:00:00Z"
  }'

Steps:

  1. "Import from CURL" → Paste → "Parse"

  2. Function name: book_appointment

  3. Description: Book appointment in ServiceTitan

  4. Click "Create Function"

  5. (Optional) Add instructions (needed if functions are created after the agent; otherwise, the AI builder will automatically manage it):

CONFIRM all details before booking:
- Customer name
- Service type
- Date and time
- Address

Link All Functions

  1. Go to agent → "Functions" tab

  2. Add all four functions:

    • lookup_customer

    • create_emergency_job

    • get_available_slots

    • book_appointment

  3. Click "Save"

Checkpoint: AI can now interact with ServiceTitan!


Step 5: Set Up Call Transfer (5 minutes)

Configure AI to transfer calls when needed.

When to Transfer

  • Billing disputes

  • Complex technical questions

  • Customer complaints

  • Warranty/refund requests

  • Customer requests a human

Configure

  1. Agent → "Call Transfer" tab

  2. Enable "Allow Call Transfer"

  3. Choose "Warm Transfer" (AI explains the situation first)

  4. Add destinations:

Option A: PBX Extensions

Office Manager: ext. 101
Service Manager: ext. 102
Billing: ext. 103

Option B: Phone Numbers

Office Manager: +15551234567
Service Manager: +15551234568
Billing: +15551234569
  1. Add transfer instructions for each destination

  2. Click "Save"

Checkpoint: AI can transfer calls!


Step 6: Connect Your Phone System (10 minutes)

Choose one option:

Option A: PBX Extension (RECOMMENDED)

VoiceInfra's killer feature! Register as a SIP extension on your existing PBX.

Benefits:

  • ✅ No new phone numbers needed

  • ✅ Transfer to internal extensions (ext. 101, 102)

  • ✅ Works with ANY PBX (3CX, Yeastar, FreePBX, Asterisk, etc.)

  • ✅ 5-minute setup

How it works:

Receive and transfer call to an extension

Setup:

Step 1: Create an Extension in Your PBX

  1. PBX admin → Extensions → Add New

  2. Configure:

    • Extension: 100

    • Name: AI Receptionist

    • Username: ai-receptionist

    • Password: [generate strong password]

  3. Save and copy details

Step 2: Register in VoiceInfra

  1. Phone Number "Add Phone Number" "Configure PBX Extension"

  2. Enter:

Extension: 100
SIP Domain: pbx.yourcompany.com
Username: ai-receptionist
Password: [from Step 1]
Transport: TCP
  1. Click "Register"

  2. Wait for: "Registered"

Step 3: Configure Call Routing

In your PBX, route calls to Extension 100:

  • Ring Group: Include ext. 100 with the office staff

  • Time-Based: After hours → ext. 100

  • IVR: "Press 1 for service" → ext. 100

Step 4: Test

  1. Call your business number

  2. Verify AI answers

  3. Test transfer to the office extension

Done! AI is now part of your phone system!


Option B: Twilio/SIP Provider

  1. Phone Number "Add Phone Number"

  2. Choose: Twilio, or Custom SIP

  3. Enter credentials (Account SID, Auth Token, Phone Number)

  4. Click "Connect"


Option C: WhatsApp Business (Bonus)

  1. Phone Number "Add Phone Number" "WhatsApp Business"

  2. Follow the WhatsApp Business API setup

  3. Need Meta Developer App Token for enabling WhatsApp SIP

Customers can call via WhatsApp (great for international)!


Step 7: Test Everything (10 minutes)

Test 1: Emergency Call

Call and say: "Our furnace stopped working and it's freezing!"

Expected:

  • AI recognizes an emergency

  • Asks for phone number

  • Looks up the customer

  • Creates an emergency job

  • Confirms technician dispatch

  • Provides 2-hour ETA

Verify in ServiceTitan: Emergency job created ✓

Test 2: Appointment Booking

Call and say: "I'd like to schedule a furnace tune-up."

Expected:

  • AI asks for phone number

  • Looks up the customer

  • Asks for preferred date

  • Shows available times

  • Confirms and books

Verify in ServiceTitan: Appointment created ✓

Test 3: FAQ Question

Ask: "What are your office hours?"

Expected: AI answers from the knowledge base ✓

Test 4: Call Transfer

Say: "I have a billing question."

Expected: AI transfers to billing extension ✓

Test 5: After-Hours

Call at 11 PM: "Our AC stopped working!"

Expected: AI answers and dispatches emergency ✓

All tests passing? You're ready for production!


Step 8: Monitor & Improve (Ongoing)

View Analytics

Dashboard → "Analytics"

Track:

  • Total calls handled

  • Emergency jobs dispatched

  • Appointments booked

  • Calls transferred

  • Average call duration

Review Calls

"Call Logs" → Listen to recordings

Identify improvements:

  • Did AI handle correctly?

  • Appropriate tone?

  • Any misunderstandings?

Update Knowledge Base

Add new questions as you discover them:

  • Seasonal promotions

  • New services

  • Updated pricing

  • Holiday hours

Seasonal Adjustments

Summer: Prioritize AC emergencies, add summer promos

Winter: Prioritize heating emergencies, add winter promos


Troubleshooting

AI not answering calls?

  • Check PBX extension registration status.

  • Verify call routing points to the AI extension

  • Check that the firewall allows SIP traffic

  • Check if we need to whitelist VoiceInfra IPs

ServiceTitan API errors?

  • Verify credentials (Client ID, Secret, Tenant ID)

  • Check that the access token hasn't expired

  • Verify API access is enabled

Transfers not working?

  • Verify transfer destinations are correct.

  • Check PBX allows transfers from the AI extension

  • Use E.164 format for phone numbers (+15551234567)

AI misunderstanding?

  • Review call recordings

  • Update system prompt with examples

  • Add more detail to the knowledge base

Poor call quality?

  • Check internet bandwidth (100 kbps minimum per call)

  • Verify codec settings (G.711u/a)

  • Check for network congestion


FAQ

Q: How much does this cost?

A: VoiceInfra: ~$0.20-0.40 per 4-6 minutes of call.

Q: Do I need coding skills?

A: No! Zero coding required. CURL Function Creator does it all.

Q: How long does setup take?

A: 30 minutes or less following this tutorial.

Q: Can I use other scheduling systems?

A: Yes! Works with Jobber, Housecall Pro, FieldEdge, or any system with an API.

Q: What if the AI makes a mistake?

A: Review all calls, cancel/modify jobs in ServiceTitan, and continuously improve.

Q: Can customers tell it's an AI?

A: AI identifies itself. Customers appreciate honesty and 24/7 availability.

Q: Does this work with my existing number?

A: Yes! Using a PBX extension, you keep your existing number.

Q: Will this replace my receptionist?

A: No - it augments your team. Handles after-hours, overflow, and routine tasks.

Q: What's the ROI?

A: Most see ROI in 1-2 months from captured emergency calls and cost savings.

Q: Does this work for other businesses?

A: Yes! Plumbing, electrical, garage door, pool service, locksmith, pest control, etc.


Other Industries This Works For

Same tutorial, just change industry + API:

  • 🔧 Plumbing - Emergency: Burst pipes, sewage backup

  • Electrical - Emergency: Power outage, sparking outlets

  • 🚪Garage Door- Emergency: Won't close, broken spring

  • 🏊 Pool Service - Routine: Maintenance scheduling

  • 🔐 Locksmith - Emergency: Lockouts, broken locks

  • 🐜 Pest Control - Emergency: Wasp nests, infestations


What's Next?

🎉 Congratulations! You've built a fully functional AI receptionist!

Recommended Next Steps:

  1. Go Live Gradually

    • Start with after-hours only

    • Monitor for 1 week

    • Expand to overflow calls

    • Eventually, handle all routine calls

  2. Add Advanced Features

    • Outbound appointment reminders

    • Follow-up calls after service

    • Customer satisfaction surveys

  3. Scale

    • Multiple agents per location

    • Route based on service area

    • Centralized monitoring


Get Help

VoiceInfra Support:

  • Email: hello@voiceinfra.com

ServiceTitan:


Ready to get started? Sign up for VoiceInfra and build your AI receptionist in 30 minutes!


VoiceInfra's AI receptionist integrates with ServiceTitan to handle emergency calls 24/7, dispatch jobs, and book appointments automatically. Works with any PBX system via extension registration, Twilio, or WhatsApp Business. Build your AI receptionist in 30 minutes with no coding required, just paste CURL commands and go.

Article Tags
#voice ai#ai receptionist#servicetitan#dispatch ai#call transfer#knowledge base#247 call answering
IH
About the Author
Izhar Hussain

Founder

Building Voice‑AI and AI‑Upskilling Platforms to Enhance Enterprise Customer Experience and Learning Outcomes

Share this article

Continue Reading

Discover more insights on similar topics

Ready to Transform Your Business Communications?

Discover how VoiceInfra can help you implement the strategies discussed in this article.