Housecall Pro logoThe AI Receptionist for Housecall Pro
Trusted by 100+ service businesses

An AI Receptionist that books, reschedules & cancels appointments — 24/7 — and writes them straight into Housecall Pro logoHousecall Pro.

Plugs into your website and phone line. Voice in 30+ languages. Live by tonight, booking customers by tomorrow. No Zapier, no n8n, no code.

Intentionally cheap so you can prove it works before spending more.
SalonsHair stylistsBarbershopsMed spasNail studiosLash barsDental clinicsChiropractorsPhysiotherapyMassage therapistsWellness clinicsDermatologyVeterinary clinicsPet groomingHome servicesPlumbersElectriciansHVACCleaning servicesLawn careTutorsPersonal trainersYoga studiosPilates studiosLaw firmsAccountantsReal-estate agentsPhotographers SalonsHair stylistsBarbershopsMed spasNail studiosLash barsDental clinicsChiropractorsPhysiotherapyMassage therapistsWellness clinicsDermatologyVeterinary clinicsPet groomingHome servicesPlumbersElectriciansHVACCleaning servicesLawn careTutorsPersonal trainersYoga studiosPilates studiosLaw firmsAccountantsReal-estate agentsPhotographers
§ 01 — See it in action

Talk to the agent on the left. Watch the booking appear on the right.

This is the same agent shape you'll deploy. Ask it about a haircut on Tuesday, a reschedule, or a cancel — it'll write the appointment straight into the calendar.

Live AI chat → connected to Housecall Pro
Bookings land here in real time
Housecall Pro logoWorks with Housecall Pro
§ 02 — Questions you'd ask before buying

FAQ — Housecall Pro integration.

Does this actually work with my Housecall Pro account?
Yes. AnyCRM uses Housecall Pro's official API. Every captured caller lands as a customer with a normalised service address and a first note from the call. Jobs land as native Housecall Pro jobs on the right technician's dispatch board, with line items pre-populated from your catalog so the invoice is ready before the truck arrives.
Will it create duplicate customers in Housecall Pro?
No. AnyCRM searches Housecall Pro on the caller's email then mobile against your existing customers before writing. A returning caller becomes a refreshed note and an updated service address on the existing record, never a second customer, and their job history stays intact.
Can it route different calls to different technicians on my team?
Yes. AnyCRM reads your Housecall Pro employee roster once at setup. Every active employee, with their trade lane (HVAC / plumbing / electrical / install / service / warranty), service zone, certifications, and per-job-type duration. Service calls, install quotes, warranty work, and recurring-plan visits each route differently, and returning-customer affinity with a specific technician is honoured.
Where do the jobs actually live, calendar or Housecall Pro?
On Housecall Pro's dispatch board, on the assigned technician's mobile app, and in reporting. AnyCRM writes the job as a native Housecall Pro job with the right technician, the right arrival window in the customer's timezone, and line items populated from your catalog. No external calendar surface. The dispatch board is the source of truth.
How is this different from Housecall Pro's own CSR AI?
CSR AI lives inside Housecall Pro and answers calls and books jobs 24/7. It's a great phone-answering product. AnyCRM is a different layer. AnyCRM treats voice as one of two equally weighted entries into a unified lead-event pipe that ALSO fires server-side conversion events into Google Ads, Facebook Ads, and LinkedIn Ads using the origin of your registered domain. CSR AI doesn't expose that pipe. So if you spend real money on Ads, AnyCRM compounds CSR AI's job-booking value with measurable Cost per Lead reductions and ROAS lift. They aren't the same product.
Can it cancel or reschedule a job from a phone call?
Yes. The caller gives their email or mobile, AnyCRM finds the soonest upcoming job linked to the matching customer, the AI Receptionist reads it back, and AnyCRM either reschedules in place or flags the job cancelled the Housecall Pro-native way (with the reason captured as a note on the job and the customer). Never a DELETE that would strip the audit trail.
What if a caller has two upcoming jobs in Housecall Pro?
AnyCRM lists every upcoming job for that customer (service address, arrival window, job type, assigned technician) and the AI Receptionist asks which one to change before doing anything. It never assumes.
Does it handle timezones correctly?
Yes. The AI Receptionist confirms the service address's timezone, AnyCRM books the job in the technician's local timezone with the correct offset, and the AI Receptionist reads the arrival window back to the caller in their local timezone. No customer-facing UTC strings, no off-by-an-hour confirmations.
Does it create jobs or estimates?
Both, by intent. Booking calls ("my AC is out, please come fix it") land as Housecall Pro jobs on the dispatch board. Shopping calls ("how much for a new water heater?") land as estimates against the customer. Not phantom jobs at 8am next Tuesday that nobody runs. Recurring-plan members get attached to the existing service plan. Job creation and the deeper dispatch policy are YOUR business rules, and that policy lives inside your CRM, in the receiving flow we wire up for you at onboarding. AnyCRM doesn't try to encode policy that will drift out of date the moment your business changes.
How does the conversion tracking work?
Every lead event AnyCRM produces (from a phone call, a chat conversation, OR a website form / online-booking submission) flows through a single conversion pipe. It lands in your CRM for dispatch logic. AND it fires server-side into Google Ads, Facebook Ads, and your analytics platform, using the origin of the domain you registered with AnyCRM. Server-side means the conversion can't be blocked by ad-blockers and doesn't degrade under iOS / Safari tracking restrictions. The result: higher ROAS, lower ad costs, enriched analytics, and attribution that doesn't fragment between web and voice. As far as we can tell, none of our competitors (not Smith.ai, not My AI Front Desk, not Goodcall, not even Housecall Pro's own CSR AI) have built this yet.
What about my existing website forms? Do they go through the same pipe?
Yes. That's the whole point. Web forms, online-booking submissions, chat AND the AI Receptionist all produce the same lead-event shape with the same source taxonomy. They land in the same place in your CRM, and they fire the same server-side conversion event into your ad platforms. So your bid strategy optimises against unified, real conversions instead of fragmenting across web-only and voice-only stacks.
How long until it's actually booking jobs into Housecall Pro?
Most shops are live the same afternoon. The Housecall Pro API key takes a minute. The roster, job-types, and line-item-catalog import is automatic. We wire up the lead-receiving flow inside your CRM during onboarding. The phone integration is usually under an hour. Web chat is faster.
Housecall Pro logoWorks with Housecall Pro
§ 03 — Availability & Booking

Captures the after-hours caller as a Housecall Pro customer, books the job in the same call, and feeds one unified conversion pipe for your website AND your AI Receptionist.

Every after-hours call about a leaking water heater or a no-cool AC lands as a Housecall Pro customer with the right service address, the right job type, and a scheduled job on the right technician. AnyCRM writes the record into Housecall Pro DURING the call. AND the same lead event flows through one unified pipe (with the same shape, same source attribution, and same server-side conversion path used by your website forms and online booking) so your dispatch board and your Google / Facebook / LinkedIn Ads both stay in sync.

A.01

Every caller becomes a Housecall Pro customer. Not a missed dispatch.

The AI Receptionist captures the homeowner's name, mobile number, email, full service address (with the second address line, city, state, ZIP, and access notes), and the nature of the issue. Then AnyCRM writes it into Housecall Pro as a customer with the service address attached DURING the call. Tagged with the inbound-call tag so the dispatch board can filter it later.

A.02

Books native Housecall Pro jobs against a technician's real schedule

The job is created with the right job type, the right customer, the right service address, and a scheduled arrival window that honours drive time and the technician's working hours. Line items come pre-populated from the job-type template. So the technician arrives with the dispatch already on their mobile app, not as a phone-tag breadcrumb at 7am the next morning.

A.03

Sends the lead event straight to your CRM. You decide what happens next.

AnyCRM does not pretend to know your dispatch rules. Every customer-create and every job-book sends a lead event straight to your CRM (with source: "AI Receptionist Call" or source: "AI Receptionist Web") where YOUR business logic takes over. Open the estimate. Convert the recurring-plan visit. Trigger the post-job survey. We wire up the receiving flow inside your CRM during onboarding, tuned to your trade and your dispatch configuration. AnyCRM doesn't get in the way of policy you've already encoded.

One conversion pipe for your website forms AND your AI Receptionist.

Most home-services shops run two completely separate conversion-tracking stacks: one for the website (online-booking widget, contact forms, chat) and a totally absent one for the phone and the AI Receptionist. So Google Ads and Facebook Ads only learn from web form-fills, bidding optimises for the wrong audience, attribution is broken, and the high-intent emergency caller at 9pm stays invisible to your Ad stack. AnyCRM closes that gap by running BOTH surfaces through a single conversion pipe.

1. Capture

A lead arrives either through your website (online-booking widget, contact form, chat) OR through the AI Receptionist on phone / chat. Either way, AnyCRM produces the same clean lead-event shape, tagged at source with AI Receptionist Call, AI Receptionist Web, or your website's form identifier. One vocabulary across both surfaces.

2. Deliver to your CRM

AnyCRM sends the lead event straight to your CRM, into the receiving flow we wire up for you at onboarding. Your dispatch logic decides what happens next: which job type, which technician, which arrival window, which line items, which follow-up SMS. Web leads and AI Receptionist leads both arrive through the same door.

3. Fire server-side conversion to your ad platforms

The same lead event fires server-side into Google Ads, Facebook Ads, and your analytics platform, using the origin of the domain you registered with AnyCRM. Server-side means the conversion can't be blocked by ad-blockers, doesn't degrade under iOS / Safari tracking restrictions, and lands with full attribution context.

4. Optimise, attribute, report

Because website conversions AND AI Receptionist conversions flow through the same pipe with the same source taxonomy, your Google Ads bid strategy now optimises against real booked jobs (not just web form noise), your Facebook Ads campaigns finally see the after-hours emergency callers who picked up the phone, and your analytics platform sees one unified funnel instead of two half-blind ones.

Most competitor AI Receptionists try to maintain rules for when a job is created, which technician it goes to, and which tag to apply. That approach breaks the moment your business changes. And it ignores the conversion-tracking surface entirely. AnyCRM inverts the responsibility. AnyCRM stays focused on the conversation (capture, dedup, route, book, cancel) and delivers a clean lead event to the two destinations that matter: your CRM (for dispatch logic) and your ad platforms server-side (for conversion optimisation, attribution, and ROAS). This is a custom service baked into the AI Receptionist package. We configure the lead-receiving flow inside your CRM AND the server-side conversion tracking at onboarding, matched to your specific trade, ad mix, and analytics setup.

We'll be candid: as far as we can tell, none of our competitors have thought of this yet. Even Housecall Pro's own CSR AI sells itself as a 24/7 phone-answering product. AnyCRM treats the AI Receptionist as one of two equally weighted entries into a unified lead-event pipe, and that's where the real compounding value sits for a shop spending real money on Google and Facebook Ads.

For your developer: how this wires into Housecall Pro

The AI Receptionist asks AnyCRM for availability against the technicians on your team and gets back open arrival windows in the customer's timezone. Drive time and busy time on other jobs are always respected. Every AnyCRM call prevents duplicate customers, normalises the service address, resolves the job type, assigns the right technician, writes the job so it lands on the technician's mobile app immediately, AND sends the lead event straight into your CRM tagged with <code>AI Receptionist Call</code> or <code>AI Receptionist Web</code>. The same lead also feeds AnyCRM's Conversion Lift pipeline (covered in the next capability) so your Google, Facebook, and LinkedIn Ads start optimising against the high-intent calls that actually pick up the phone.

getHousecallproAvailability()createHousecallproContactAppointment()
POST/mcp/tools/getHousecallproAvailability
{
  "invitee_timezone": "America/New_York",
  "start_time": "2026-05-15",
  "end_time":   "2026-05-17",
  "event_type_uuid": ["b050bcf6-b5b0-42a8-9359-aba11e711311"],
  "multi_day": true,
  "include_scheduling_url": false
}
200response
{
  "date_range_label": "Friday, May 15, 2026 – Sunday, May 17, 2026",
  "event_types": [{
    "event_type_uuid": "b050bcf6-b5b0-42a8-9359-aba11e711311",
    "total_slots": 15,
    "available_times_by_date": {
      "Friday, May 15, 2026": [
        { "start_time": "2026-05-15T10:00:00-04:00", "status": "available" },
        { "start_time": "2026-05-15T10:30:00-04:00", "status": "available" },
        { "start_time": "2026-05-15T11:00:00-04:00", "status": "available" }
      ]
    }
  }]
}
POST/mcp/tools/createHousecallproContactAppointment
{
  "name": "Jane Doe",
  "email": "jane@example.com",
  "phone": "+14155551234",
  "scheduled_datetime": "2026-05-15T11:00:00",
  "invitee_timezone": "America/New_York",
  "event_type_uuid": "b050bcf6-b5b0-42a8-9359-aba11e711311",
  "questions_and_answers": []
}
200response
{
  "event_uuid": "a7c1f4e9-...",
  "start_time": "2026-05-15T11:00:00-04:00",
  "start_time_utc": "2026-05-15T15:00:00Z",
  "invitee_timezone": "America/New_York",
  "reschedule_url": "https://...",
  "cancel_url": "https://..."
}
Housecall Pro logoWorks with Housecall Pro
§ 04 — Ads Conversion Lift

Turns every call and chat into a real conversion event your Google, Facebook, and LinkedIn Ads can actually optimise against. So Cost per Lead drops, ROAS goes up, and CAC stops being a guess.

If you run paid Ads on Google, Facebook, or LinkedIn for your trade, here is the uncomfortable truth: those platforms only get smarter when they see real conversions. Today, a website form-fill counts. A real phone call from a homeowner with a dead AC at 8pm does NOT count. So Google bids harder on the audience that fills forms (often the cheaper, lower-intent one) and ignores the audience that actually calls. Cost per Lead looks fine on paper. CAC quietly creeps up. ROAS looks misleading. AnyCRM fixes this. Every call and chat the AI Receptionist handles is sent as a real conversion event to Google Ads, Facebook Ads, AND LinkedIn Ads. The bidding algorithm finally sees what's actually working.

1b.01

Every phone call and every chat becomes a tracked conversion. Not just website form-fills.

Today, Google Ads and Facebook Ads probably think your only conversions are website form-fills or online-booking submissions. That's why your Cost per Lead looks low but your dispatcher complains the leads are weak. The high-intent emergency traffic is calling you instead of filling a form, and the Ad platforms have no idea. AnyCRM sends every call and every chat the AI Receptionist handles into your Ad platforms as a real conversion event. Suddenly Google, Facebook, and LinkedIn can see the FULL picture of who is converting from your Ads.

1b.02

Lower Cost per Lead. Better ROAS. Smaller CAC.

Once your Ad platforms can see the phone calls and chats as real conversions, they re-train on a better signal. Bidding shifts toward audiences that actually pick up the phone, not just the audience that loves filling out forms. In practice this means: Cost per Lead drops because you stop overpaying for low-intent form-fills; Return on Ad Spend goes up because the Ads now find homeowners closer to ready-to-buy; and Customer Acquisition Cost shrinks because more of your Ad budget reaches buyers who will actually book a job.

1b.03

The same pipe carries your website forms too. One source of truth across Ads, CRM, and Analytics.

AnyCRM doesn't just track AI Receptionist conversions. It also runs your existing website forms, chat, and online-booking submissions through the same pipeline. So a lead from a Google Ad that filled out your booking widget AND a lead from a Facebook Ad that called the AI Receptionist three days later both end up tagged, attributed, and counted exactly the same way. Your Ads platform stops double-counting, your analytics stop fragmenting, and your dispatch board stops being half-blind to where your leads actually came from.

Imagine you spend $5,000/month on Google Ads for emergency HVAC service. Today, you see 80 web form-fills and assume that's the full picture. With AnyCRM running, you'll also see (say) 90 phone calls and 35 web chats the AI Receptionist handled, all flowing into Google Ads as real conversions. Suddenly Google sees 205 conversions a month instead of 80. It re-trains on that bigger, better signal. Within weeks, the bidding finds you more of the right kind of homeowner: the one with a dead AC at 7pm, not the one casually shopping a quote. Same $5,000 spend, more real booked jobs, lower Cost per Lead, higher revenue per truck-roll. That is what "AI Receptionist with AnyCRM" actually means for the bottom line. Not just "it answers the phone."

For your developer: how the Conversion Lift pipeline works with Housecall Pro

Every customer-create and job-book fires through AnyCRM's Conversion Lift pipeline. The lead event lands inside your CRM for dispatch logic, AND fires a real conversion event server-side into Google Ads, Facebook Ads, and LinkedIn Ads using the verified origin of your registered domain. Server-side means the conversion can't be blocked by ad-blockers, doesn't degrade on iOS or Safari, and arrives with full attribution context so the Ad platforms' bidding algorithms can re-train on it. Your existing website forms and online-booking submissions run through the same pipeline, so Web and Voice conversions feed the SAME training signal.

createOrUpdatesHousecallproContact()createHousecallproContactAppointment()
Housecall Pro logoWorks with Housecall Pro
§ 05 — Search, Reschedule & Cancel

Owns the full job lifecycle inside Housecall Pro.

Every "can you push the Tuesday morning slot to Wednesday?" or "actually, cancel that, my brother-in-law's a plumber" lands with the AI Receptionist instead of on the dispatcher's missed-call list. Reschedules update the job's arrival window in place. Cancellations follow Housecall Pro's own idiom. The job is flagged cancelled the way Housecall Pro's reporting expects, with the reason captured as a note on the job and the customer. Instead of a DELETE that erases the audit trail.

B.01

Finds the job by email or phone. No job IDs on the call.

Customers DO NOT quote job IDs over the phone. The AI Receptionist asks AnyCRM for the soonest upcoming job linked to a customer matched on the caller's email or mobile number, then reads back the address, arrival window, and assigned technician before changing anything.

B.02

Reschedules in place. Same job record.

Rescheduling updates the existing job's arrival window in a single confirmation. No cancel-then-rebook round-trip means the job number, the customer link, the line items, and the technician assignment all stay intact. Failed reschedules leave the original job untouched.

B.03

Cancels with the reason on the timeline, not by deletion

The AI Receptionist flags the job cancelled the Housecall Pro-native way and writes the caller's reason as a note on both the job and the customer. Instead of issuing a DELETE that strips the job from reporting and erases WHY the slot opened up. The dispatcher walks in and can immediately see WHY they got a slot back.

For your developer: reschedule & cancel by email

AnyCRM's search, reschedule, and cancel all accept just an email (or a phone number). The soonest upcoming Housecall Pro job linked to the matching customer is resolved inside AnyCRM. No job IDs at the AI Receptionist layer.

searchHousecallproAppointments()rescheduleHousecallproAppointment()cancelHousecallproAppointment()
POST/mcp/tools/searchHousecallproAppointments
{
  "email": "jane@example.com"
}
200response
{
  "meetings": [{
    "event_uuid": "a7c1f4e9-...",
    "event_type_name": "Haircut Only | $50",
    "start_time": "2026-05-15T11:00:00-04:00",
    "status": "active"
  }]
}
POST/mcp/tools/rescheduleHousecallproAppointment
{
  "email": "jane@example.com",
  "scheduled_datetime": "2026-05-16T14:00:00",
  "invitee_timezone": "America/New_York",
  "reason": "Customer asked to move 1 day later"
}
200response
{
  "cancelled_event_uuid": "a7c1f4e9-...",
  "new_event_uuid": "f0e22c91-...",
  "new_start_time": "2026-05-16T14:00:00-04:00",
  "new_start_time_utc": "2026-05-16T18:00:00Z"
}
POST/mcp/tools/cancelHousecallproAppointment
{
  "email": "jane@example.com",
  "reason": "Customer is unwell"
}
200response
{
  "cancelled_event_uuid": "a7c1f4e9-...",
  "status": "cancelled",
  "reason": "Customer is unwell"
}
Housecall Pro logoWorks with Housecall Pro
§ 06 — Match Specialists & Services

Routes every caller to the right job type and the right technician. And respects existing dispatch instead of randomly reassigning.

Housecall Pro accounts run on employees, job types, and a daily dispatch board. At setup AnyCRM imports your Housecall Pro employee roster into its database and enriches each technician with trade lane (HVAC / plumbing / electrical / install / service / warranty), expertise, certifications, service zones, languages, timezone, and per-job-type duration. The AI Receptionist then routes each caller to the job type that fits the symptom AND the technician who actually covers that trade in that zone. Existing customer-to-technician affinity (when a returning customer says "send Mike again") is honoured as the source of truth.

C.01

Routes by trade lane: service call vs install vs warranty

"My AC isn't blowing cold" routes to your HVAC service technicians with a Service Call job type. "I want a quote on a new system" routes to your sales/comfort advisor with an estimate. "You installed this six months ago and it's leaking" routes to whoever ran the original job, and the warranty job type is selected automatically.

C.02

Honours existing customer-technician affinity

If a returning customer has had three jobs run by the same technician, the AI Receptionist offers that technician's next opening first. Not a stranger from the round-robin. The customer's existing Housecall Pro record is updated in place, never duplicated.

C.03

Matches fresh inbound callers to the right person on the team

Net-new callers with no existing Housecall Pro customer record get matched to a technician on the lane and zone you've designated, with on-shift status and existing job density honoured. The AI Receptionist doesn't fight whatever dispatch rule you already encode on the board.

For your developer: specialist roster & per-service routing

Team details live in AnyCRM's database, pulled once from Housecall Pro at setup, enriched with trade lane, expertise, certifications, service-zone polygons, languages, timezone, and per-job-type duration (valuable context for the AI Receptionist that Housecall Pro's employee object doesn't carry by default). At runtime, one read of the team roster matches caller → trade lane → service zone → technician. New customers get the routed-to technician on the job. Existing customers keep their affinity technician where one exists. AnyCRM does NOT cache your dispatch automations, your tags, or your follow-up workflows. That policy stays inside your CRM, where it belongs.

listHousecallproTeamMembers()getHousecallproSpecialistServices()
POST/mcp/tools/listHousecallproTeamMembers
{}
200response
{
  "total_members": 3,
  "members": [
    { "user_uuid": "3d2ed2c0-...", "name": "Michelle Arcona", "role": "user",  "timezone": "America/New_York" },
    { "user_uuid": "2b00d6f3-...", "name": "Casey",           "role": "user",  "timezone": "America/New_York" },
    { "user_uuid": "1809c459-...", "name": "Cielona Boco",    "role": "owner", "timezone": "America/New_York" }
  ]
}
POST/mcp/tools/getHousecallproSpecialistServices
{
  "user_uuid": "3d2ed2c0-a8fc-45d7-9f67-fc3e6b898bb2"
}
200response
{
  "user_name": "Michelle Arcona",
  "user_timezone": "America/New_York",
  "services": [
    { "event_type_uuid": "b050bcf6-...", "name": "Haircut Only | $50",                 "duration": 50  },
    { "event_type_uuid": "9a858539-...", "name": "Fine Density Haircut & Finish | $70",  "duration": 60  },
    { "event_type_uuid": "c1f70bb1-...", "name": "Full Head + Gloss + Finish | $335",    "duration": 210 },
    { "event_type_uuid": "3c01fa3d-...", "name": "All Over Keratin Treatment | $300",    "duration": 240 }
  ]
}
Housecall Pro logoWorks with Housecall Pro
§ 07 — Setup & why it's not just another Housecall Pro wrapper

Setup in 3 steps. Battle-tested on real Housecall Pro accounts.

You connect Housecall Pro once. AnyCRM imports your technicians, your job types, your line-item catalog, your tags, and your service zones. AnyCRM also wires up the receiving end inside your CRM so lead events from the AI Receptionist land where your dispatch logic can act on them. Then the AI Receptionist starts capturing calls and booking jobs the same afternoon. No middleware. No prompt-engineering by you.

S.01

Connect Housecall Pro (API key, 60 seconds)

Generate a Housecall Pro API key from My Apps → API in your Housecall Pro account (admin-only) and paste it in. AnyCRM scopes to the least amount of access needed for the booking lifecycle. Nothing for invoicing, payments, or marketing. You can always revoke the key at any time from the same My Apps screen. Every update AnyCRM makes to your Housecall Pro is tagged with the inbound-call tag so it's easy to track what the AI Receptionist did when you audit.

S.02

Import technicians, job types, line items, tags & service zones. Wire up your CRM's lead-receiving flow.

AnyCRM imports every active Housecall Pro employee as a bookable technician (with role, mobile, color tag, and timezone), reads your job types (so the AI Receptionist can only book types you actually run), freezes your line-item catalog (so estimates are populated from your real prices, not LLM guesses), and locks the default tag for inbound-call jobs so every record is attributable to the AI Receptionist in the dispatch board's filters. Service zones are confirmed in the AnyCRM dashboard. During onboarding we set up the receiving flow inside your CRM so the lead events from the AI Receptionist land where your dispatch logic can act on them. AnyCRM does NOT replicate your dispatch rules, your tags, or your follow-up workflows. Your CRM decides what happens after a lead is captured. AnyCRM just delivers a clean event.

S.03

Drop the AI Receptionist on your phone line and your site

Forward your business number to the AI Receptionist's number and paste the chat widget into your site. The same AI Receptionist (same team roster, same Housecall Pro account, same lead-event pipe into your CRM and your ad platforms) answers both voice and web. Live the same afternoon.

Why not just use Housecall Pro's Online Booking, CSR AI, and voicemail?

Housecall Pro's Online Booking widget is excellent at the steps AFTER a homeowner has decided to come to you on your website. It doesn't pick up the phone. CSR AI (Housecall Pro's own AI customer-service rep) does answer calls and book jobs 24/7, and it's tightly integrated inside the Housecall Pro UI. But it sells itself as a phone-answering product. It doesn't run your website forms, your chat, AND your phone through one unified lead-event pipe. And it doesn't fire server-side conversion events into Google Ads, Facebook Ads, or LinkedIn Ads using the origin of your registered domain. So your bidding still optimises against the form-fill subset of your traffic. AnyCRM is the layer that captures the call, books the Housecall Pro job natively, writes a clean customer with the call summary as the first note (sourced AI Receptionist Call or AI Receptionist Web), AND sends the same lead event straight into your CRM's downstream dispatch logic plus your ad platforms server-side. So your Housecall Pro dispatch board, your analytics, and your Google / Facebook Ads bidding all start optimising on a real conversation, not just a name and a missed call.

For your developer: the enrichment layer (raw Housecall Pro API vs our MCP tools)

Every tool the AI Receptionist calls is an opinionated wrapper inside AnyCRM. AnyCRM does the messy work for you. Dedup, address normalisation, job-type resolution, arrival-window math, technician assignment, line-item lookup, pagination, error handling, lead-event delivery into your CRM, and server-side conversion tracking into your ad platforms. All of it happens before the LLM ever sees a response. So the AI Receptionist reasons over clean, AI-aligned payloads instead of raw CRM internals.

Capturing a new inquiry

Raw APIWriting a customer straight into Housecall Pro looks simple. But Housecall Pro doesn't dedup for you, and a customer with no service address is functionally useless for dispatch. The service address is a nested structure on the customer object with required fields and a type-tag that has to be set correctly. Get it wrong and the customer is created without a service address, leaving the dispatcher unable to book a job against them later. Mobile and home numbers are separate fields. Sending the caller's phone to the wrong one means the technician's mobile app texts a number nobody answers. And nothing in raw Housecall Pro fires a server-side conversion event to your ad platforms, so call-driven and chat-driven leads never get optimised for.
Our MCPcreateOrUpdatesHousecallproContact accepts name, email, mobile, service_address (a single string AnyCRM parses), note, and the inferred trade lane. AnyCRM searches by email then mobile, picks the surviving record (or creates a new one with a properly-shaped service-address entry and the phone on the mobile field), creates or links the service address, assigns the routed-to technician, appends the note, tags the customer with the inbound-call tag so the record is attributable to AnyCRM in the dispatch board's filters, sends the lead event straight into your CRM (with source AI Receptionist Call or AI Receptionist Web), AND fires a server-side conversion event into your ad platforms using the origin of your registered domain. All in one AnyCRM call. Three raw operations collapsed to one, with rollback on partial failure.

Booking the job

Raw APICreating a job directly against Housecall Pro is a tight contract. The job type isn't free text. It must match an existing job type defined in your account exactly. The assigned-technician field is a flat array of UUIDs. Pass a single string and the request fails. Leave it empty and the job lands on the dispatch board unassigned, with no technician notified. The schedule is a nested object with three separate datetime fields, all in ISO-8601 with timezone offsets. Naive datetimes are silently interpreted as UTC and the technician shows up four hours late. Line items must be an array of structured objects with prices in CENTS. Send ten dollars as the integer 10 and Housecall Pro stores it as ten cents and the customer is invoiced for a dime.
Our MCPcreateHousecallproContactAppointment takes email, scheduled_datetime (a naive date and time, no offset needed), invitee_timezone, job_type, and an optional arrival-window length. AnyCRM resolves the right technician from the trade lane, looks up the job-type identifier by name against your imported job-type table, handles the timezone and duration math, populates line items from the job-type template with prices in cents, sends the same lead event straight into your CRM with the booking context, fires the server-side conversion event into your ad platforms, and returns both local and UTC start times in the response.

Cancelling with a reason

Raw APIDeleting a job in Housecall Pro strips it off the customer's history, removes it from reporting, and clears the dispatch board entry. No reason, no cancellation outcome, no audit trail. The technician's mobile app simply loses the entry. The dispatcher gets no signal of WHY the slot opened up. Housecall Pro's own best practice is to flag the job cancelled the customer-cancelled way instead of deleting it, so it stays queryable in reporting and on the customer history. Doing that cleanly takes several round-trips against the raw API.
Our MCPcancelHousecallproAppointment takes email and reason. AnyCRM resolves the soonest upcoming job, writes the reason as a note on both the job and the customer, and flags the job cancelled the Housecall Pro-native way. All in one AnyCRM call. No deletion, full audit trail, job stays queryable in reporting, and the dispatcher can see exactly why the slot opened up.

Every AnyCRM tool for Housecall Pro follows the same AI-alignment contract, so the AI Receptionist never has to think about transport:

  • Naive datetimes in, Housecall Pro-native shape out. The AI Receptionist passes 2026-05-15T11:00:00 and a timezone string. AnyCRM converts to whatever shape the Housecall Pro job-schedule requires.
  • Email is the identity. Cancel and reschedule never need a job ID at the AI Receptionist layer. Email and soonest-upcoming resolves inside AnyCRM.
  • Job type, line items, and tags come from setup, not the LLM. The AI Receptionist can't invent a free-text job type. It inherits the values you configured at setup.
  • Existing customer-technician affinity is sacred. If a returning customer has run jobs with a specific technician, AnyCRM offers that technician first. Round-robin only applies to net-new customers.
  • Cancellation preserves the audit trail. Housecall Pro's idiom for customer-cancelled jobs is honoured so reporting stays accurate and the dispatcher can see why the slot opened up.
  • Service addresses are first-class. Every customer write attaches a normalised service-address entry. No orphan customers with no place to send a truck.
  • Prices are in cents. AnyCRM handles the dollar-to-cents conversion so line items quote ten dollars, not ten cents.
  • Every lead event leaves AnyCRM in two places at once. Your CRM gets the lead event so your dispatch logic can run. Your ad platforms get the server-side conversion event so bidding optimises against real booked jobs. Both happen on the same AnyCRM call. No race conditions, no missing events.
  • Flat, deterministic shapes. Every AnyCRM response has the same top-level keys across every tool, so the AI Receptionist's prompt never grows with edge-case branching.
  • Errors are messages, not codes. An error from Housecall Pro becomes a one-sentence reason the AI Receptionist can repeat to the caller without translation.
  • Idempotent reschedules. If a reschedule fails mid-flight, the original Housecall Pro job is preserved. The customer never ends up with no truck on the way.

Multi-technician setup. Team roster, trade lanes & system-prompt assembly

If you run more than one technician on Housecall Pro, AnyCRM imports the team roster once, you link each employee to the trade lanes and service zones they actually cover, and AnyCRM bakes the result into the AI Receptionist's system prompt at setup time. Not at runtime. The AI Receptionist doesn't query your team roster on every call. It already knows who covers what.

  1. Team roster import. AnyCRM imports your Housecall Pro employees once and writes each active one into its database keyed by crm_user_id (with name, role, trade lane, timezone, mobile, color tag).
  2. Per-technician job types & zones. For each technician AnyCRM resolves the job types they actually run (with the typical duration per type), their certifications, and their service-zone polygons. One call per person, cached.
  3. Lane visibility. Each lane is flagged Public, Private or Ignored. The AI Receptionist only routes to and books on Public lanes. You toggle this in the AnyCRM dashboard without re-deploying.
  4. Lead-event receiving flow inside your CRM. During onboarding we wire up the flow inside your CRM that receives lead events from AnyCRM. That's where your dispatch policy lives. AnyCRM doesn't try to own it.
  5. System-prompt assembly. The cached team roster, lane, job-type, and zone data is prepended to the AI Receptionist's system prompt before the humaniser splits (personality, etiquettes, tone, speech style). So the AI Receptionist reads the team before it reads its own instructions.
  6. Runtime stays minimal. On a live call the AI Receptionist makes at most one availability call and one booking call. Never a team roster lookup. Updates to technicians, lanes, or job types re-run the cache. The AI Receptionist picks them up on its next deploy.

The end result: the AI Receptionist can match "my AC isn't cooling and I'm in 90210" → the HVAC service lane → a technician on shift in that zone → that technician's diagnostic service-call job type → that technician's next arrival window → a booked Housecall Pro job with the customer, service address, and line items populated → a lead event delivered straight into your CRM → a server-side conversion event in your ad platforms. Without a single team roster query during the call.

Currently running for HVAC, plumbing, electrical, garage doors, appliance repair, pest control, cleaning, and other home-services trades. Anyone whose dispatch is in Housecall Pro but whose phone keeps ringing after the office closes.

Housecall Pro logoWorks with Housecall Pro
§ 08 — How AI receptionists usually fail, and why ours can't

How most AI Receptionists built on Smith.ai, My AI Front Desk, Goodcall, or Housecall Pro's own CSR AI fail for HVAC, plumbing, electrical, and other home-services shops that use Housecall Pro. And why AnyCRM can't.

Most AI Receptionists fail on Housecall Pro in the same handful of ways. Duplicate customers, customers with no service address, jobs that land on the board unassigned, free-text job types and decimal-place pricing errors, the wrong technician's dispatch, DELETEs that erase the audit trail, hardcoded dispatch rules that drift away from your real policy, and conversion data that never reaches your ad platforms server-side. AnyCRM can't fail in any of these ways, because each failure was solved one layer down inside AnyCRM. And because AnyCRM delegates dispatch policy to your CRM's own flow rather than trying to encode it, AND runs web and AI Receptionist conversions through a single unified conversion pipe instead of two disconnected stacks.

Duplicate customers

Affects:My AI Front DeskGoodcallSmith.ai (AI tier)
Why it happensRaw customer-create against Housecall Pro will happily create a second record for the same homeowner. Same email, same mobile, different record. Housecall Pro has no implicit dedup. You have to search first and decide whether to update the existing record. My AI Front Desk runs on a Zapier-style "Create Customer" action — a single API call that hands the caller's email straight at Housecall Pro with no dedup. Same caller, slightly different casing? Duplicate. Phone-only? Duplicate. Goodcall writes through a connector that does the same single-step create. Smith.ai's AI tier logs the customer after the call through a similar one-shot create. Housecall Pro's own CSR AI writes directly inside the Housecall Pro UI and benefits from some native dedup, but only on exact email match. None of these can do a multi-step "search-on-email, then search-on-phone, then write" because their architecture is one call in, one call out.
Why ours can'tAnyCRM does NOT do a one-shot create. AnyCRM first searches Housecall Pro on the caller's email, then on the caller's mobile number, then decides whether to update the existing customer or create a new one. A returning caller lands on the existing record with a new note and a refreshed service address. Never as a duplicate. This costs us an extra API call per customer-create. We do it anyway, because the alternative is the duplicate-customer mess Smith.ai, My AI Front Desk, and Goodcall users live with.

Customers with no service address

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensHousecall Pro's customer-create accepts a customer object with no service address at all. The customer is created, the call is logged, the dispatcher feels productive. And then nobody can book a job against them because Housecall Pro requires a service address on every job. My AI Front Desk's Zapier-style "Create Customer" action typically flattens the address into a single free-text field with no type-tag, producing customers no dispatcher can actually book against. Goodcall's connector hands whatever the AI produces through to Housecall Pro the same way. Smith.ai's human receptionists ask the caller for the address but log it as note text rather than as a properly-shaped service-address entry. CSR AI captures the address inside the Housecall Pro UI, but won't normalise the second-address-line, ZIP+4, or access notes the way a USPS-style cleanup pass would.
Why ours can'tAnyCRM always builds a properly-shaped service-address entry from the caller's free-text address, normalises it (USPS-style cleanup, ZIP+4 if available), and refuses to write the customer without one. The dispatcher never gets a customer they can't dispatch.

Jobs that land on the dispatch board unassigned

Affects:My AI Front DeskGoodcallSmith.ai (AI tier)
Why it happensHousecall Pro's job-create accepts an empty assigned-technician array. The job lands on the dispatch board at 8am next Tuesday, no technician notified, no entry on anyone's mobile app, until the dispatcher manually drags it onto someone's row in the morning. My AI Front Desk's Zapier-style "Create Job" action posts whatever the AI generates and has no way to assemble the assigned-technician array structurally. Goodcall's booking flow is described as "collect a preference, hand off to the dispatcher" — so the dispatch board sees requests rather than booked jobs. Smith.ai's AI tier logs the inquiry; the job is booked by the dispatcher manually afterwards, so the technician-assignment never happens in the same transaction.
Why ours can'tAnyCRM resolves the right technician from the trade lane + zone + on-shift roster and always passes a single-element, correctly-shaped UUID array on the job. The technician's mobile app gets the dispatch instantly. The job never lands unassigned. We do three checks (lane, zone, on-shift) where Smith.ai/My AI Front Desk/Goodcall do one.

Inventing job types and line-item prices

Affects:My AI Front DeskGoodcallSmith.ai (AI tier)
Why it happensHousecall Pro's job-type identifier is not free text. It must match an existing job type defined in your account. Send "Service Call" as a string and the request fails. Send the wrong identifier and the job lands with the wrong category in reporting. Line-item prices are in CENTS. Send ten dollars as the integer 10 and Housecall Pro stores it as ten cents and the customer is invoiced for a dime. My AI Front Desk's Zapier-style action takes whatever the AI generates and posts it — there is no "read your account's real job-types first" step in a Zapier path. Goodcall's connector applies a static default that distorts reporting. Smith.ai's AI tier picks values from a generic playbook that doesn't match your account's catalog. The architecture is one-shot. There is no "check the account first" step.
Why ours can'tAnyCRM reads your account's real job-type identifiers and your real line-item catalog (with cents-denominated prices) at setup and bakes them into the AI Receptionist's system prompt as a frozen table. So when the AI Receptionist books a job, it CAN ONLY pick job types that exist in your account and populate line items with the prices you actually charge. Invalid-identifier failures and decimal-place pricing errors are structurally impossible.

Booking the wrong technician. Or an inactive one.

Affects:My AI Front DeskGoodcallSmith.ai (human tier)
Why it happensHousecall Pro happily accepts any employee identifier on a job, including inactive employees or office admins who never run jobs. My AI Front Desk's Zapier action takes whichever technician name the AI generates — no "is this person still active?" check, no "does this person cover this trade in this zone?" check. So an HVAC service call gets dispatched to your accountant, or to a technician who quit two months ago. Goodcall's technician routing is implicit. No published model for trade lanes, service zones, or returning-customer affinity. Smith.ai's human receptionists rely on the receptionist's memory of who covers what (fine on a Tuesday morning, less reliable on a Friday at 8pm with a relief receptionist).
Why ours can'tAnyCRM does the heavy work in multiple steps. Matches the trade lane from the call's symptom, filters the team roster to active field technicians, intersects with the service-zone polygons for the caller's address, AND checks for returning-customer affinity before falling back to round-robin. The AI Receptionist can't dispatch to a technician who isn't currently rostered for that trade in that zone. We do four checks where Smith.ai/My AI Front Desk/Goodcall do one.

Cancelling by DELETE instead of by outcome

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensDeleting a job from Housecall Pro strips it off the customer's history entirely. No reason, no cancellation outcome, no audit trace. The dispatcher gets no signal of WHY the slot opened up. My AI Front Desk's Zapier-style cancel action issues a single DELETE — that's the only operation Zapier exposes for it. The job vanishes, the technician gets no signal, and "jobs booked vs cancelled" reporting breaks because the job no longer exists to be counted. Goodcall's cancellation goes through its scheduler, not the Housecall Pro job — so the scheduler is updated but the dispatch board never reflects the cancellation reason. Smith.ai receptionists ask the caller why, but the cancellation lands as a note rather than as a properly outcome-flagged job, so Housecall Pro's reporting doesn't count it correctly.
Why ours can'tAnyCRM's cancellation is multi-step. Find the soonest upcoming job, capture the caller's reason, write the reason as a note on both the job and the customer, AND flag the job cancelled the Housecall Pro-native way. The job stays queryable in reporting, with the reason attached. Three operations where Smith.ai/My AI Front Desk/Goodcall do one (and usually the wrong one).

Encoding your dispatch policy in the prompt or in middleware

Affects:My AI Front DeskGoodcallSmith.ai (AI tier)
Why it happensMy AI Front Desk ships a hardcoded "Create Job" action that fires on every inbound call. There is no "only create the job if the caller actually wants a truck rolled" logic. The action is single-step, so every call becomes a job on the board — clogging the dispatcher's morning with quotes that nobody will run. Worse, the moment you change your job-type structure or add a new trade lane, you have to go back into Zapier and rebuild the zap. Goodcall's connector applies whatever default behaviour the underlying integration shipped with. Change your business, the connector keeps doing what it did six months ago. Smith.ai's AI tier and human receptionists work from playbooks that drift out of date as your real dispatch policy evolves.
Why ours can'tAnyCRM does not encode your dispatch policy at all. AnyCRM sends a clean lead event straight to your CRM, into the receiving flow we wire up for you at onboarding. YOUR flow decides what happens: new job type? Update the flow. New trade lane? Update the flow. New follow-up SMS? Update the flow. AnyCRM's behaviour stays consistent because AnyCRM's job stops at the conversation. Smith.ai/My AI Front Desk/Goodcall can't separate these concerns because their architecture forces business policy into either Zapier middleware or a hardcoded action.

Web leads and AI Receptionist leads run on two separate conversion-tracking stacks

Affects:Smith.aiMy AI Front DeskGoodcall
Why it happensSmith.ai, My AI Front Desk, and Goodcall all treat phone and chat conversions as separate from web form / online-booking conversions. None of them fire a real conversion event into Google Ads, Facebook Ads, or LinkedIn Ads when the AI Receptionist closes a call. Housecall Pro's own CSR AI books jobs natively but doesn't expose a server-side conversion path to your ad platforms in its published materials either. So your Ad platforms only see the website form-fills, the bidding optimises for that (lower-intent) audience, your Cost per Lead looks deceptively low, ROAS reporting becomes a fiction, and the after-hours emergency traffic that picks up the phone stays invisible to your Ad stack. Worse, when these competitors DO fire any tracking, it's client-side. Blocked by ad-blockers and degraded under iOS / Safari tracking restrictions.
Why ours can'tAnyCRM runs your website conversions AND your AI Receptionist conversions through the same Conversion Lift pipeline. Same event shape, same source taxonomy, same delivery to your CRM, AND the same server-side conversion event into Google Ads, Facebook Ads, and LinkedIn Ads. Using the verified origin of your registered domain. Server-side means it can't be blocked client-side and doesn't degrade on iOS or Safari. The result is what Smith.ai/My AI Front Desk/Goodcall structurally can't deliver: lower Cost per Lead, higher ROAS, smaller CAC, complete analytics funnels, and attribution that doesn't fragment between web and voice.

The AI Receptionist is honest because AnyCRM doesn't let it lie. And AnyCRM is sophisticated because it doesn't pretend to own policy that belongs inside your CRM, while quietly fixing the conversion-tracking gap nobody else (not even Housecall Pro's own CSR AI) has thought to close.

Housecall Pro logoWorks with Housecall Pro
§ 09 — Side-by-side comparison

AnyCRM vs Smith.ai, My AI Front Desk, and Housecall Pro's own CSR AI on Housecall Pro

CapabilityAnyCRMSmith.aiMy AI Front DeskHCP CSR AI
Live Housecall Pro job booked DURING the call Yes. Native Housecall Pro job, technician-matched, dispatch-board-synced.Partial. Booking depends on the integration path. AI tier logs the inquiry; human tier books manually.Partial. Zapier-style "Create Job" without structural detail for technician assignment.Yes. Native, but only inside the Housecall Pro UI.
Dedup-before-write on email AND phone Yes. Always. Two searches before any write.Manual.No. Zapier dedup is exact-match only.Partial. Native dedup, but exact email match only.
Preserves existing customer-technician affinity Yes. Returning customers get their affinity technician first.Receptionist memory only.No. Can overwrite.No published affinity model.
Routes by trade lane & service zone (HVAC / plumbing / install / warranty) Yes. Lane + zone is part of AnyCRM's team roster.Manual, depends on the receptionist.No.No structural trade-lane routing.
Job types & line-item prices frozen from your real Housecall Pro catalog Yes. Read at setup, baked into the prompt as a frozen table. Prices in cents.Not API-enforced.No. Writes can fail on unknown job types or quote a dime instead of ten dollars.Yes. Native to Housecall Pro.
Cancellation preserves the audit trail (outcome-flagged, not deleted) Yes. Housecall Pro-native customer-cancelled flow.Manual.No. DELETE strips the customer history.Partial. Cancellation happens in the Housecall Pro UI, reason capture varies.
Reschedule in place (no cancel-then-rebook) Yes.Manual.No.Yes.
Dispatch policy delegated to YOUR CRM's own flow Yes. Lead event delivered straight into your CRM, into the receiving flow we wire up at onboarding.No. Policy lives in Zapier or in the receptionist's training.No. Hardcoded "Create Job" action.No. Policy lives inside CSR AI's settings, not in your CRM-side flow.
Unified conversion pipe: web forms AND AI Receptionist → CRM + ad platforms server-side Yes. Same shape, same source taxonomy, same server-side delivery to your CRM and your ad platforms.No. Web and voice run on separate stacks.No. Web and voice run on separate stacks.No. Phone-answering product. No server-side conversion path published.
Server-side conversion events sent to Google Ads, Facebook Ads, and analytics (origin = your registered domain) Yes. Every call and chat lead lands server-side.No.No.No.
Source attribution stays consistent across web and voice Yes. AI Receptionist Call, AI Receptionist Web, plus your web form identifiers.Manual / inconsistent.No standardised taxonomy.Inbound call data only. No web-side parity.
Scale ceiling Bounded by Housecall Pro API limits, not by staffing.Bounded by human receptionist staffing.Bounded by Zapier rate limits and action contracts.Bounded by CSR AI's per-seat licensing inside Housecall Pro.
Housecall Pro logoWorks with Housecall Pro
§ 10 — Your Housecall Pro data passes through. It doesn't stick.

Your Housecall Pro data passes through AnyCRM. It doesn't stick.

AnyCRM processes your Housecall Pro data to answer the call. Then forgets it. The only thing AnyCRM persists is a conversation history ID so the AI Receptionist can recognise a returning caller. Customers, addresses, jobs, estimates, line items. All of it stays in Housecall Pro, owned by your Housecall Pro account.

What AnyCRM stores

Conversation history IDs only. So the AI Receptionist can pick up where it left off if a caller hangs up and rings back. No call audio, no transcripts of customer records, no caller PII.

What AnyCRM doesn't

Caller names, emails, phone numbers, service addresses, Housecall Pro customer IDs, your technician roster, your job types, your line-item catalog, your estimate data. None of it. AnyCRM reads what it needs, hands it to the LLM, fires the events, and discards the payload.

Where data lives

In your Housecall Pro account and in whatever systems your CRM's flow forwards lead events to. Customers, addresses, jobs, estimates, notes all live in Housecall Pro. Source-attributed (always AI Receptionist Call or AI Receptionist Web), tagged with the inbound-call tag, revocable. AnyCRM does not build a shadow dispatch system alongside yours.

Revocation

Revoke the AnyCRM API key in Housecall Pro under My Apps → API and the AI Receptionist loses access immediately. There is no "export your data" step because there is no data to export. It was never AnyCRM's to hold.

For your developer: OAuth scopes & the smallest-surface principle

Housecall Pro uses a single account-level API key with the admin's full permissions. AnyCRM only touches the smallest set of endpoints required for the booking lifecycle. Nothing for invoicing, nothing for payments, nothing for marketing.

  • Customers (read + write). Read and write customer records, dedup against existing customers, append notes.
  • Service addresses (read + write). Write the service address against the customer so dispatch has somewhere to send the truck.
  • Jobs (read + write). Read availability and write jobs on the assigned technician's dispatch board. Reschedule and cancel through the Housecall Pro-native customer-cancelled flow.
  • Estimates (read + write). Open estimates when the caller is shopping rather than booking. Convert when they're ready.
  • Employees (read). Read your technician roster at setup so the AI Receptionist knows who exists and who covers each trade lane.
  • Job types & line-item catalog (read). Read your job-type and line-item catalogs at setup so the agent can only book real job types with real prices.
  • Not requested: invoices, payments, expense entries, payroll data, dispatch automations (dispatch-creation policy stays inside your CRM's own flow), your other integrations.

Same API key any Housecall Pro integration uses. Just a smaller surface. AnyCRM holds the key (every write is tagged with the inbound-call tag so each customer and job change is attributable to AnyCRM in the dispatch board's filters). The LLM never sees the key, and every tool call is logged with the operation name, never the raw payload.

Housecall Pro logoWorks with Housecall Pro
§ 11 — Pricing & the Transparency Ladder

$36 to get started. No monthly subscription. No commission on voice minutes. Ever.

The AI Receptionist industry has settled into a quiet little racket: wrap a public voice provider (usually Eleven Labs) and a public chat platform in your own UI, sell it back on a monthly subscription with a metered minute allowance, and pocket a 3–5× markup on every minute your customer's caller spends on the phone. The customer never sees the underlying price. We did not want to build that business.

AnyCRM uses Eleven Labs for voice. We say that out loud because it is true and because pretending otherwise would be the start of a small lie that grows. You pay Eleven Labs directly — at Eleven Labs' published price — and AnyCRM charges 0% commission on top. We make money from the Quickstart, the DIY Upgrades, and the optional Custom Implementation. Not from your call volume. The more customers call your business, the better — for you, not us.

The Transparency Ladder — you choose how far up you climb.

Most AI Receptionist products sell one thing: a monthly plan with a minute cap. AnyCRM sells five things, ordered by how much we do for you. Start at $36 with a prompt-and-pasted DIY agent. Stop there if it's enough. Or keep climbing through the upgrades to a full custom implementation with MCP tools, conversion tracking, and a CRM-side flow we configure for you.

Step 1
The Quickstart
$36 one-time

A prompt pack and a deployment guide. You wire up a basic AI Receptionist on web chat and voice using OUR humanizer prompts and OUR step-by-step videos.

  • Two humanizer prompts (warmth, pacing, filler words)
  • Web chat + voice setup videos
  • Same-afternoon live deployment
  • No MCP tools (no booking writes into your CRM)
  • No conversion tracking
  • No CRM-side lead-event flow
Step 1b · Order bump
30-min 1:1 Setup Call
+$63 one-time

Add this at checkout. We walk through your setup together so the Quickstart lands faster, without you reading the docs alone.

  • Live setup walkthrough
  • Humanizer prompt tuning to your voice
  • Q&A about your industry's quirks
Step 2
Availability & Booking Upgrade
$98–$196 one-time

Adds the first round of MCP tools so the AI Receptionist actually books appointments into your CRM (not just talks about booking them).

  • getAvailability + createContactAppointment MCP tools
  • Live booking into your CRM
  • Dedup-before-write on email and phone
  • Still DIY — you wire the tools yourself with our videos
Step 3
Full Lifecycle Upgrade
$196–$392 one-time

Adds search, reschedule, and cancel MCP tools. Now the AI Receptionist owns the whole appointment lifecycle — the same one we describe in the Availability and Lifecycle sections above.

  • Search + reschedule + cancel MCP tools
  • Audit-preserving cancellation
  • Specialist / team-member routing if your CRM supports it
  • Still DIY — conversion tracking and CRM flow not included

How AnyCRM stacks up against the monthly-subscription crowd.

Here is what you would pay each provider to handle 500 voice minutes a month — a fair mid-volume number for a service business that picks up after hours. Sourced directly from each vendor's published pricing page.

Cost & structure AnyCRM Smith.ai My AI Front Desk Vocaly AI
Pricing model One-time fee ($36 → $850+) + you pay Eleven Labs directly Monthly subscription, billed per call Monthly subscription, billed per minute Monthly subscription, billed per minute
Entry tier $36 one-time $300/mo (30 calls) $99/mo (200 voice min) $399/mo (2,500 min)
Cost for ~500 voice min / month $0 to AnyCRM + ~$25–85 paid directly to Eleven Labs ~$2,100/mo (Pro tier, ~300 calls) $99 + 300 overage min @ $0.25 = $174/mo $399/mo (2,500 min cap)
Commission / markup on voice minutes 0%. You pay Eleven Labs directly. Bundled (per-call pricing hides minute markup) ~3–5× markup on Eleven Labs' published rate Bundled (rate not disclosed)
Hard monthly minute cap No cap. Eleven Labs scales with your traffic. Yes, by call count Yes (200 min on $99 tier) Yes (2,500 min on $399 tier)
Underlying voice provider disclosed Yes — Eleven Labs. We say it openly. N/A (human receptionists) Not disclosed Not disclosed
CRM-side lead-event flow built for you Yes (Custom Implementation, tuned to your industry) No No (Zapier action list only) No (custom tier only, opaque)
Server-side conversion tracking to Google / Facebook / LinkedIn Ads Yes (Custom Implementation) No No No
Cost over 12 months at ~500 min/mo $36–$850 one-time + ~$300–$1,020 paid to Eleven Labs ~$25,200 ~$2,088 ~$4,788

Pricing as listed on each vendor's published pricing page (Smith.ai, My AI Front Desk / Frontdesk, Vocaly AI, Eleven Labs) at time of publication. Eleven Labs Conversational AI is currently $0.05–$0.17/min depending on plan; "$25–85 paid directly" assumes you sit on the Free, Starter, or Creator plan for low-volume usage. Smith.ai is human-staffed; My AI Front Desk & Vocaly AI are AI-only.

The math is uncomfortable for the industry. A service business paying My AI Front Desk $174/mo for 500 voice minutes is paying roughly $0.35/min, when Eleven Labs' own published rate for that traffic is $0.05–$0.17/min. The difference is pure margin sitting between you and the underlying provider. AnyCRM removes that layer. The Quickstart is $36 once. The Custom Implementation is a one-time quote. You pay your voice provider at their price. We never touch your call volume.
Housecall Pro logoWorks with Housecall Pro
§ 12 — The arithmetic

One backend. Six channels. Stacked ROI.

Indicative monthly numbers based on what service businesses already see from a single channel — multiplied by the channels you switch on. Update the agent once; every channel reflects it.

Channel
Customer reach
Leads / mo
Conv. value
Monthly ROI
Website ChatChatKit by OpenAI
100%
45–80
$150 / lead
$6,750 – $12,000
Voice AIEleven Labs
85%
30–50
$200 / lead
$6,000 – $10,000
WhatsAppBird Platform
78%
35–60
$125 / lead
$4,375 – $7,500
Instagram DMsBird Platform
65%
25–45
$100 / lead
$2,500 – $4,500
MessengerBird Platform
55%
20–35
$100 / lead
$2,000 – $3,500
TelegramBotFather direct
35%
15–25
$100 / lead
$1,500 – $2,500
Combined deployment
170–295
$23,125 – $40,000
The single-backend advantage. Six channels, one agent. Update the prompt once and every surface reflects it instantly — no middleware subscriptions, no fragmented flows, no Zapier per-execution billing.
Housecall Pro logoWorks with Housecall Pro
§ 13 — How it works

Four steps. One afternoon.

No Zapier. No n8n. If you can copy and paste, you can do this.

01

Open the Quickstart

You get the prompt pack, the humaniser prompts, and the deployment guide.

02

Connect Housecall Pro

One API key. The agent reads contacts and writes appointments — both ways.

03

Pick your channel

Web chat, voice line, or both. Same backend, same brain.

04

Go live

Test five calls yourself. Send the number to your team. Done.

Housecall Pro logoWorks with Housecall Pro
§ 14 — Get started

Live by tonight. Booking customers by tomorrow.

$36 once. If it doesn't work for your business, you've lost less than dinner.

Housecall Pro logoWorks with Housecall Pro