Freshsales logoThe AI Receptionist for Freshsales
Trusted by 100+ service businesses

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

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 Freshsales
Bookings land here in real time
Freshsales logoWorks with Freshsales
§ 02 — Questions you'd ask before buying

FAQ — Freshsales integration.

Does this actually work with my Freshsales account?
Yes. AnyCRM uses Freshsales' official API via a standard account-scoped API key. Every captured caller lands as a Contact with the right team member as Sales Owner, the right Lifecycle Stage, Lead Source, and a first Note from the call. Meetings land as native Freshsales Appointments on the right team member's calendar, linked to the Contact (and to the Deal or Lead when one exists) so they show on every activity timeline.
Will it create duplicate Contacts in Freshsales?
No. AnyCRM resolves the existing Contact first (normalising email and mobile) before writing. A returning caller becomes a new Note on the existing record, never a second Contact, and the existing Sales Owner is preserved.
Can it route different leads to different team members?
Yes. AnyCRM reads your Freshsales user roster once at setup. Every active team member, with their lane (AE/SDR/CS), Sales Team, Territory, default Sales Pipeline, and timezone. Sales-side, qualification-side, and customer-side calls each route differently, and existing Contact ownership in Freshsales is always preserved.
Where do the meetings actually live, calendar or Freshsales?
Both. AnyCRM writes the meeting as a native Freshsales Appointment with the Contact as target and the team member as attendee, the right times, and the right duration. Which makes Freshsales' Google/Outlook calendar sync fire automatically (assuming the team member has connected their calendar in their Freshsales profile, which setup verifies). You see one Appointment on the Contact timeline, one calendar invite on the team member's calendar, one source-attributed Contact.
Can it cancel or reschedule a meeting from a phone call?
Yes. The caller gives their email, AnyCRM finds the soonest upcoming Appointment linked to the matching Contact, the AI Receptionist reads it back, and AnyCRM either reschedules in place or flags the Appointment cancelled the way Freshsales' reporting expects (with the reason captured on the Contact timeline). Never a deletion that would strip the audit trail.
What if a caller has two upcoming Appointments in Freshsales?
AnyCRM returns every upcoming Appointment for that Contact (title, date, time, team member) 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 caller's country/timezone, AnyCRM converts the meeting time into the format the Freshsales Appointment requires, and the AI Receptionist reads the time back to the caller in their local timezone. No customer-facing UTC strings, no off-by-an-hour confirmations.
Does it create Deals?
Not directly. AnyCRM stays focused on the conversation surface: capturing the Contact, matching the right team member, booking the Appointment. Deal creation is YOUR business policy, and that policy lives inside your CRM, in the receiving flow we wire up for you at onboarding. Every contact-create and every meeting-book in AnyCRM sends a lead event straight into that flow (tagged with source AI Receptionist Call or AI Receptionist Web). Your flow decides which Sales Pipeline, which Deal Stage, which Lead Source tag, which workflow trigger. 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 / chatflow) flows through a single conversion pipe. It lands in your CRM for business 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 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 / chatflows AND the AI Receptionist 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 does this work alongside Freddy AI?
Cleanly. Freddy AI scores Contacts, surfaces deal-risk signals, drafts emails, and resolves duplicates inside Freshsales — all valuable, all happening AFTER a record lands. AnyCRM is the layer that gets the record in there in the first place from a phone call or chat, with the right Sales Owner, the right Lifecycle Stage, and a clean Contact for Freddy to score. The two are complementary.
How long until it's actually capturing leads into Freshsales?
Most teams are live the same afternoon. The API key takes a minute. The team roster, Sales Pipelines, Lifecycle Stages, and Appointment Outcomes 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.
Freshsales logoWorks with Freshsales
§ 03 — Availability & Booking

Captures the website inquiry or caller as a Freshsales Contact, books the meeting if there's real intent, and feeds one unified conversion pipe for your website forms AND your AI Receptionist.

Every caller who lands on the line becomes a Freshsales Contact (with the right Sales Owner, the right Sales Account, and the right Lifecycle Stage). When they want a meeting, AnyCRM creates a Freshsales Appointment on the matched team member's calendar. 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) so your Freshsales workflows and your Google / Facebook / LinkedIn Ads both stay in sync.

A.01

Every caller becomes a Freshsales Contact, not a stray missed call

The AI Receptionist captures first name, last name, work email, mobile, Sales Account, and call intent. Then AnyCRM writes the record into Freshsales with the right team member as Sales Owner, the right Lifecycle Stage, and a first Note attached DURING the call.

A.02

Books meetings as native Freshsales Appointments

The meeting lands as a Freshsales Appointment with the assigned team member as organiser, the Contact linked, and a duration that matches your configured appointment type. So it shows on the Contact's activity timeline and on the team member's Google or Outlook calendar exactly the way Freshsales expects.

A.03

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

AnyCRM does not pretend to know your deal-creation rules. Every contact-create and every meeting-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 Deal, set the Sales Pipeline, assign the Stage, fire the workflow. We set up the receiving end inside your CRM for you during onboarding, tuned to your industry and your Sales Pipeline 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 businesses on Freshsales run two completely separate conversion-tracking stacks: one for the website (forms, chatflows, page-load pixels) and a totally absent one for the phone and the AI Receptionist. So Google Ads and Facebook Ads only learn from form-fills, the bidding optimises for the wrong audience, attribution is broken, and analytics double-count or miss real conversations entirely. AnyCRM closes that gap by running BOTH surfaces through a single conversion pipe.

1. Capture

A lead arrives either through your website form / chatflow OR through the AI Receptionist on phone / chat. Either way, AnyCRM produces the same clean lead-event shape, tagged at source with either 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 wired up for you at onboarding. Your Freshsales business logic decides what happens next: which Sales Pipeline, which Deal Stage, which workflow, which IntelliAssign rule. You don't have to maintain two sets of rules. 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 revenue (not just form-fill noise), your Facebook Ads campaigns see the high-intent traffic that picks up the phone, your analytics platform sees a single unified funnel, and attribution stops fragmenting between web and voice.

Most competitor AI Receptionists try to maintain rules for when a Deal is created, what Sales Pipeline it goes in, and which Lead Source 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 business 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 industry, ad mix, and analytics setup.

We'll be candid: as far as we can tell, none of our competitors have thought of this yet. They sell AI Receptionists as a 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 your developer: how this wires into Freshsales

The AI Receptionist asks AnyCRM for availability against the team members on your roster and gets back open slots in the caller's timezone. No double bookings. Busy time on existing Appointments and Tasks is always respected. Every AnyCRM call prevents duplicate Contacts, creates or links the Sales Account, sets the team member as Sales Owner (matched from your team), writes the Appointment so Freshsales' calendar sync to Google/Outlook fires automatically, 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 the AnyCRM Conversion Lift pipeline (covered in the next capability) so your Google, Facebook, and LinkedIn Ads start optimising against the call and chat leads that actually pick up the phone.

getFreshsalesAvailability()createFreshsalesContactAppointment()
POST/mcp/tools/getFreshsalesAvailability
{
  "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/createFreshsalesContactAppointment
{
  "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://..."
}
Freshsales logoWorks with Freshsales
§ 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, 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 high-intent buyer who picked up the phone at 7pm 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. 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. That's why your Cost per Lead looks low but your sales team complains the leads are weak. The high-intent 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 people closer to ready-to-buy; and Customer Acquisition Cost shrinks because more of your Ad budget reaches buyers who will actually convert into customers.

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 and chatflows through the same pipeline. So a lead from a Google Ad that fills a form on your website AND a lead from a Facebook Ad that called the AI Receptionist three days later both end up tagged, attributed, and counted in exactly the same way. Your Ads platform stops double-counting, your analytics stop fragmenting, and your CRM stops being half-blind to where your leads actually came from.

Imagine you spend $5,000/month on Google Ads. Today, you see 80 form-fills and assume that's the full picture. With AnyCRM running, you'll also see (say) 60 phone calls and 45 web chats the AI Receptionist handled, all flowing into Google Ads as real conversions. Suddenly Google sees 185 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 buyer. Same $5,000 spend, more real conversations, lower Cost per Lead, higher revenue. 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 Freshsales

Every contact-create and Appointment-book fires through AnyCRM's Conversion Lift pipeline. The lead event lands inside your CRM for business 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 run through the same pipeline, so Web and Voice conversions feed the SAME training signal.

createOrUpdatesFreshsalesContact()createFreshsalesContactAppointment()
Freshsales logoWorks with Freshsales
§ 05 — Search, Reschedule & Cancel

Manages the full Appointment lifecycle inside Freshsales for anyone calling or chatting.

Every "push the demo to Thursday" or "actually, cancel that" lands with the AI Receptionist instead of in your email inbox. AnyCRM reschedules update the existing Freshsales Appointment in place. Cancellations follow Freshsales' own idiom. Outcome flagged, reason captured on the Contact timeline. Instead of issuing a raw DELETE that erases the audit trail, you get crystal clarity on when an Appointment was created, and when and why it was updated by your AI Receptionist.

B.01

Finds the Appointment by email in a single step without needing an Appointment ID

Customers DO NOT quote Appointment IDs over the phone. We've tested with hundreds of callers and each time they were asked 'Can you tell me the appointment id from your email?', the response was the same: 'Why can't you find it yourself?'. AnyCRM gives the AI Receptionist an easy way to find the soonest upcoming Appointment linked to the matching Contact. And the AnyCRM response forces the AI Receptionist to be human. It reads back the title, date, time, and assigned team member before changing anything.

B.02

Reschedules in place and keeps the Appointment record clean

Rescheduling updates the existing Appointment in a single confirmation. No cancel-then-rebook round-trip means the Appointment history, the Contact link, the Deal link, and the calendar invite all stay intact. Failed reschedules leave the original Appointment untouched.

B.03

Cancels without erasing the audit trail

When a caller cancels, AnyCRM flags the Appointment cancelled the way Freshsales' own reporting expects. Then it writes the caller's reason as a Note on the Contact timeline, instead of issuing a raw DELETE and stripping WHY the meeting fell through. This lets you intuitively track changes for Freshsales Appointments created or updated by your AI Receptionist.

For your developer: reschedule & cancel by email

AnyCRM's search, reschedule, and cancel all accept just an email. The soonest upcoming Appointment linked to the matching Contact is resolved inside AnyCRM. No Appointment IDs at the AI Receptionist layer.

searchFreshsalesAppointments()rescheduleFreshsalesAppointment()cancelFreshsalesAppointment()
POST/mcp/tools/searchFreshsalesAppointments
{
  "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/rescheduleFreshsalesAppointment
{
  "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/cancelFreshsalesAppointment
{
  "email": "jane@example.com",
  "reason": "Customer is unwell"
}
200response
{
  "cancelled_event_uuid": "a7c1f4e9-...",
  "status": "cancelled",
  "reason": "Customer is unwell"
}
Freshsales logoWorks with Freshsales
§ 06 — Match Specialists & Services

Routes every caller to the right team member. And maintains the existing Sales Owner looking after the lead instead of randomly reassigning to someone else.

Freshsales accounts run on Users, Sales Teams, and Territories. At setup AnyCRM imports your Freshsales user roster into its database and enriches each team member with lane, expertise, languages, timezone, and bookable appointment-type duration. The AI Receptionist then routes each caller to the team member who actually handles that lane. Existing Contact ownership in Freshsales is honoured as the source of truth.

C.01

Routes by lane: AE vs SDR vs CS

"I'd like to talk to someone about pricing" routes to your AE pool. "I'm still evaluating" routes to an SDR for qualification. "I'm already a customer and have a question" routes to the CSM looking after the account. And the existing Sales Owner on the Contact is always preserved.

C.02

Honours existing Sales Owners in Freshsales

If a Contact already has a Sales Owner in Freshsales, the AI Receptionist doesn't reassign them. The Appointment and the Note attach to the existing Contact under the existing Sales Owner. No orphaned duplicate, no lead poached off a team member's pipeline.

C.03

Matches fresh inbound callers and website chatters to the right person on the team

New leads with no existing Freshsales Contact get matched to a team member on the lane you've designated (AE, SDR, CS), honouring Territory rules, Sales Team membership, and any auto-assignment policy you've encoded in Freshsales. The AI Receptionist doesn't fight the rules you already use.

For your developer: specialist roster & per-service routing

Team details live in AnyCRM's database, pulled once from Freshsales at setup, enriched with lane, expertise, languages, timezone, default Sales Pipeline, and appointment-type duration (valuable context for the AI Receptionist that Freshsales' user object doesn't carry). At runtime, one read of the team roster matches caller → lane → team member. New Contacts get assigned to the right Sales Owner. Existing Contacts keep theirs. AnyCRM does NOT cache your Sales Pipelines, your Deal Stages, or your IntelliAssign workflows. That policy stays inside your CRM, where it belongs.

listFreshsalesTeamMembers()getFreshsalesUserProfile()
POST/mcp/tools/listFreshsalesTeamMembers
{}
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/getFreshsalesUserProfile
{
  "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 }
  ]
}
Freshsales logoWorks with Freshsales
§ 07 — Setup & why it's not just another Freshsales wrapper

Setup in 3 steps. Battle-tested on real Freshsales accounts.

You connect Freshsales once. AnyCRM imports your team roster, your Sales Pipelines, your Deal Stages, your Lifecycle Stages, and your Appointment Outcomes. AnyCRM also wires up the receiving end inside your CRM so lead events from the AI Receptionist land where your business logic can act on them. Then the AI Receptionist starts capturing leads and booking meetings the same afternoon. No middleware. No prompt-engineering by you.

S.01

Connect Freshsales (API key, 60 seconds)

Generate a Freshsales API key from your profile → API Settings and paste it into AnyCRM along with your bundle alias (yourdomain.myfreshworks.com). AnyCRM scopes its requests to the least amount of access needed for the booking lifecycle. Nothing for marketing journeys, nothing for billing, nothing for Freddy AI internals. You can revoke the key at any time from your Freshsales profile. Every update AnyCRM makes is attributable in Freshsales' audit trail so it's easy to track what the AI Receptionist did when you audit.

S.02

Import the team. Lock in your pipelines, stages, Lifecycle Stages, and Appointment Outcomes. Wire up your CRM's lead-receiving flow.

AnyCRM imports every active Freshsales user as a bookable team member with lane, expertise, languages, timezone, and appointment-type duration. AnyCRM also reads your Sales Pipelines and Deal Stages (so new leads land in the right place), freezes your Lifecycle Stage and Lead Source values, and freezes your Appointment Outcome values (so cancellations map to the Cancelled outcome that actually exists in your account, not a free-text string). AnyCRM also freezes inbound-call source attribution (always AI Receptionist Call or AI Receptionist Web) so reporting stays consistent. During onboarding we set up the receiving flow inside your CRM so the lead events from the AI Receptionist land where your business logic can act on them. AnyCRM does NOT replicate your Sales Pipelines, Deal Stages, or 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 Freshsales 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 Freshsales' IntelliAssign + Web Forms + Freddy AI?

Freshsales' IntelliAssign auto-assignment rules, Web Forms, and Freddy AI's contact scoring and deal insights are excellent at the steps AFTER a lead has chosen to come to you via your website. Freddy scores Contacts, surfaces deal-risk signals, drafts emails, and resolves duplicates inside Freshsales. It does not pick up the phone. A new caller at 9pm gets a missed call, not a Contact record. A Web Form sits in the Contacts list until someone reads it. Freddy AI rates the lead once it lands but doesn't qualify a live conversation. The AI Receptionist is the layer BEFORE all of that. It picks up the call, asks the right qualifying questions, books the meeting as a native Freshsales Appointment on the right team member's calendar, writes a clean Contact (with the source set to AI Receptionist Call or AI Receptionist Web, the right Lifecycle Stage, and a call summary as the first Note), AND sends the same lead event straight into your CRM's downstream business logic plus your ad platforms server-side. So your Freshsales workflows, IntelliAssign rules, Freddy scoring, analytics, and Google / Facebook Ads bidding all start optimising on a real conversation, not a name and a missed call.

For your developer: the enrichment layer (raw Freshsales 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, Sales Account linking, Lifecycle Stage resolution, appointment-type duration math, attendee assembly, timezone math, 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 lead

Raw APIWriting a Contact straight into Freshsales looks simple. But Freshsales does NOT implicitly dedup on the create endpoint. Send the same caller twice and you get two Contacts with two different Sales Owners, two timelines, two Lifecycle Stages. Lifecycle Stage and Lead Source are not free-text values either. They are account-scoped values that differ portal by portal. Send a value that doesn't exist and the whole write fails. Custom fields live under admin-defined keys. Pass one that doesn't exist on the account and the whole request rejects. And nothing in raw Freshsales fires a server-side conversion event to your ad platforms, so call-driven and chat-driven leads never get optimised for.
Our MCPcreateOrUpdatesFreshsalesContact accepts name, email, phone, note, sales_account, lead_intent, plus the matched team member. AnyCRM handles dedup on email then mobile, picks the surviving record (or creates a new one with the right values in the right order), creates or links the Sales Account, sets the team member as Sales Owner, resolves Lifecycle Stage and Lead Source from the frozen setup values, appends the Note, 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.

Booking the meeting

Raw APICreating an Appointment directly against Freshsales is a tight contract. The start and end times have to be ISO-8601 with explicit offsets (Freshsales rejects naive datetimes), the duration has to be computed from the appointment type the API doesn't store on the appointment record itself, and the Contact target plus the team-member attendee have to be assembled as two separate structural fields. Get the attendee shape wrong and the Appointment writes into Freshsales but never lands on the team member's actual Google or Outlook calendar. Skip the Contact target and the Appointment won't surface on the Contact's activity feed either. The Appointment's creator is auto-set to the user behind the API key regardless of which team member it's meant for, so without admin scope it's the wrong team member on every record.
Our MCPcreateFreshsalesContactAppointment takes email, scheduled_datetime (a naive date and time, no offset needed), invitee_timezone, and appointment_type. AnyCRM resolves the right team member from the lane, handles the timezone and duration math, builds the Contact target and team-member attendee correctly so the calendar sync fires, links the Appointment to the Deal or Lead if one exists, overrides the creator to the team member of record, 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 an Appointment in Freshsales strips it off the Contact timeline entirely. No reason, no audit trail, no signal to the team member of WHY it fell through. Freshsales' own best practice is to flag the Appointment cancelled (with the Cancelled outcome) instead of deleting it, so it stays queryable in reporting and on the timeline. Doing that cleanly takes several round-trips: read the Appointment, write a Note with the reason, then update the Appointment outcome.
Our MCPcancelFreshsalesAppointment takes email and reason. AnyCRM resolves the soonest upcoming Appointment, records the reason on the Contact timeline, and flags the Appointment cancelled the Freshsales-native way. All in one AnyCRM call. No deletion, full audit trail, Appointment stays on the timeline and in the team member's reporting.

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

  • Naive datetimes in, Freshsales-native shape out. The AI Receptionist passes 2026-05-15T11:00:00 and a timezone string. AnyCRM converts it into whatever shape the Freshsales Appointment requires, on both start and end.
  • Email is the identity. Cancel and reschedule never need an Appointment ID at the AI Receptionist layer. Email and soonest-upcoming resolves inside AnyCRM.
  • Lifecycle Stage, Lead Source, and Sales Pipeline come from setup, not the LLM. The AI Receptionist can't invent a Lifecycle Stage or a Lead Source. It inherits the values you configured at setup.
  • Existing Sales Owners are sacred. If a Freshsales Contact already has a Sales Owner, AnyCRM preserves it. New Contacts only get the matched team member when no Sales Owner exists.
  • Cancellation preserves the audit trail. Freshsales' best practice for cancelled Appointments is honoured so the timeline stays intact and reporting still counts the meeting under the right outcome.
  • Every lead event leaves AnyCRM in two places at once. Your CRM gets the lead event so your business logic can run. Your ad platforms get the server-side conversion event so bidding optimises against real conversations. 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 Freshsales 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 Freshsales Appointment is preserved. The customer never ends up with nothing.

Multi-team-member setup. Team roster, lanes & system-prompt assembly

If you run more than one team member on Freshsales, AnyCRM imports the team roster once, you link each team member to the lanes they actually cover (AE / SDR / CSM / pre-sales), 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 handles what.

  1. Team roster import. AnyCRM imports your Freshsales team members once and writes each one into its database keyed by crm_user_id (with name, role, lane, timezone, Sales Team, Territory).
  2. Per-team-member pipelines and appointment types. For each team member AnyCRM resolves their default Sales Pipeline, the appointment types they actually book, and the duration per type. 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 deal-creation policy lives. AnyCRM doesn't try to own it.
  5. System-prompt assembly. The cached team roster, lane, and appointment-type JSON 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 team members, lanes, or appointment types re-run the cache. The AI Receptionist picks them up on its next deploy.

The end result: the AI Receptionist can match "I'd like to demo the platform with someone on the sales team" → the AE team → that team member's demo appointment type → that team member's calendar availability → a booked Freshsales Appointment on the right team member's calendar → 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 B2B SaaS sales teams, agencies, consultancies, and inside-sales orgs. Anyone whose pipeline is in Freshsales but whose phone keeps ringing after the AE has logged off.

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

How most AI Receptionists built on Smith.ai, My AI Front Desk, or Goodcall fail for B2B SaaS sales teams, agencies, consultancies, and inside-sales orgs that use Freshsales. And why AnyCRM can't.

Most AI Receptionists fail on Freshsales in the same handful of ways. Duplicate Contacts, Appointments that never sync to the team member's real calendar, invented Lifecycle Stages and Lead Sources, the wrong team member's calendar, deletions that destroy the audit trail, hardcoded deal-creation 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 deal-creation 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 Contacts

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensFreshsales does NOT implicitly dedup on the Contact create endpoint. Send the same caller twice with a slightly different email casing, with whitespace, or by phone alone, and you get a second Contact with a different Sales Owner and a different timeline. Smith.ai's Freshsales integration (documented as a Make / Zapier-style scenario with a Smith.ai "New Calls" trigger pointed at a Freshsales "Create a Lead" action) is a single API call that hands the caller's email straight at Freshsales. Same caller, slightly different casing? Duplicate. Phone-only? Duplicate. My AI Front Desk ships a Freshsales Classic integration with single-step actions like "Create Lead" and "Update Lead Status" — same one-shot create, same fragmentation. Goodcall writes Contacts via the Freshsales API as a call-logger, with no documented dedup step. None of these can do a "search-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 Freshsales on a normalised lowercased + trimmed email, then on a normalised mobile, then decides whether to update the existing Contact or create a new one. A returning caller lands on the existing record with a new Note on the timeline, never as a duplicate. This costs us an extra API call per contact-create. We do it anyway, because the alternative is the duplicate-contact mess Smith.ai, My AI Front Desk, and Goodcall users live with. We do two checks where Smith.ai/My AI Front Desk/Goodcall do one.

Appointments that don't reach the team member's real calendar

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensWriting an Appointment to Freshsales looks like it creates a calendar event. And it does, but only inside Freshsales. Whether it actually syncs to the team member's Google/Outlook calendar depends on the Appointment being assembled correctly — the Contact target as one field, the team-member attendee as a separate field, the right time format with explicit offset. My AI Front Desk's Zapier-style Freshsales action posts whatever it has straight at the API — no checking the time format, no validating the attendee shape, no confirming the team member actually has a connected calendar. Smith.ai's Freshsales integration (via Make) does not document a Create Appointment action at all — the receptionist logs a Lead, the meeting is booked manually afterwards by a human. Goodcall is positioned as a call-logger that writes a Contact and a Note via the Freshsales API, with no documented path for the dual Contact-target + team-member-attendee shape required for calendar sync. Either way, the team member opens their calendar and the meeting isn't there.
Why ours can'tAnyCRM does multiple things in one call: looks up the team member's Freshsales user record, validates the time format Freshsales' calendar sync requires, builds the Contact target + team-member attendee as two separate structural fields the way Freshsales expects, then writes the Appointment. The Appointment lands in Freshsales AND on the team member's Google/Outlook calendar atomically. We do four checks where Smith.ai/My AI Front Desk/Goodcall do one (or zero). That's why a meeting booked through AnyCRM is never missing from the team member's calendar.

Inventing Lifecycle Stages, Lead Sources, and Appointment Outcomes that don't exist in your account

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensFreshsales' Lifecycle Stage, Lead Source, and Appointment Outcome are all account-scoped — the actual values differ from account to account. My AI Front Desk's Zapier-style action takes whatever the AI generates and posts it. There is no "read your account's real values first" step in a Zapier path; it's a single action. So the AI invents a value like "Hot Lead" when your account only accepts "New," the write fails (or worse, succeeds silently with a default value), and your reporting silently breaks. Smith.ai's Make scenario passes whatever the receptionist or AI logged, with no enum-awareness step. Goodcall's call-logger writes Contacts with default or missing Lifecycle Stage values, which means Freddy AI's scoring and your own segmentation queries treat the inbound call as an unknown-stage record. The architecture is one-shot; there is no "check the account first" step.
Why ours can'tAnyCRM reads your account's real Lifecycle Stage, Lead Source, and Appointment Outcome values at setup, in a separate call, and bakes them into the AI Receptionist's system prompt as a frozen table. So when the AI Receptionist captures a lead, it CAN ONLY pick from values that actually exist in your account. This is extra setup-time API calls that Smith.ai, My AI Front Desk, and Goodcall don't make — and it's the difference between writes that always succeed and writes that silently rot your reporting.

Booking the wrong team member's calendar

Affects:Smith.aiGoodcallMy AI Front Desk
Why it happensFreshsales happily accepts any user on an Appointment, including deactivated users or users from another Sales Team whose calendar isn't connected. My AI Front Desk's Zapier action takes whichever team-member name the AI generates and posts it — no "is this person still active?" check, no "does this person own the existing Contact?" check. So an SDR-side qualification call gets booked on the CSM's calendar, or worse, on a deactivated former employee. Goodcall has no visible Sales Team / Territory awareness — the captured Contact lands in one bucket, and IntelliAssign-style routing inside Freshsales has to run afterwards, after the chance to route the caller to a live team member is gone. Smith.ai's human receptionists rely on the receptionist's memory of who handles 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 lane (AE / SDR / CSM) from the call's intent, looks up the right team member from the AnyCRM team roster, filters out deactivated users, honours Territory rules, AND checks whether the existing Freshsales Contact already has a Sales Owner. If the existing Sales Owner contradicts the inferred lane, AnyCRM refuses to overwrite — instead, the AI Receptionist surfaces the conflict so the call respects who is already on the Contact. Smith.ai/My AI Front Desk/Goodcall can't do this because their architecture is one-shot.

Cancelling by deletion instead of by outcome

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensA raw DELETE against a Freshsales Appointment strips it off the Contact timeline entirely. No reason, no cancellation outcome, no audit trace. My AI Front Desk's Zapier-style cancel action (where it exists at all) issues a single delete — that's the only Freshsales operation surfaced. The Appointment vanishes, the team member gets no signal of WHY it fell through, and "meetings booked vs cancelled" reporting breaks because the Appointment no longer exists to be counted. Goodcall's integration is capture-first; cancellation is left to the human team member inside Freshsales afterwards, so no structured outcome is captured from the call at all. Smith.ai receptionists ask the caller why, but the cancellation lands as a Note on the Contact rather than as a properly outcome-flagged Appointment, so Freshsales' reporting doesn't count it correctly.
Why ours can'tAnyCRM's cancellation is multi-step: find the soonest upcoming Appointment, capture the caller's reason, write the reason onto the Contact timeline as a Note, AND flag the Appointment cancelled the Freshsales-native way (mapped to your account's Cancelled Appointment Outcome value frozen at setup). The Appointment stays on the timeline, 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 deal-creation policy in the prompt or in middleware

Affects:My AI Front DeskGoodcallSmith.ai
Why it happensMy AI Front Desk's Freshsales Classic integration ships single-step actions including "Create Lead" and "Update Lead Status" that fire on every inbound call. There is no "only create the Lead if the caller is actually ready to buy" logic — the action is single-step, so every call becomes a Lead in the default pipeline, clogging your forecast with unqualified records. Worse, the moment you change your Sales Pipeline structure or add a new Deal Stage, you have to go back into the Zapier-style configuration and rebuild it. Smith.ai's Make scenario hardcodes "Create a Lead" on every New Call trigger and any deal-policy logic has to live in additional Make modules that drift out of sync with your real Freshsales configuration. Goodcall's integration applies whatever default behaviour the underlying connector ships with — change your business, and the connector keeps doing what it did six months ago.
Why ours can'tAnyCRM does not encode your deal 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 Sales Pipeline? Update the flow. New Deal Stage? Update the flow. New Lead Source scheme? 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 Make/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 / chatflow conversions. None of them fire a real conversion event into Google Ads, Facebook Ads, or LinkedIn Ads when the AI Receptionist closes a call. 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 high-intent 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 has thought to close.

Freshsales logoWorks with Freshsales
§ 09 — Side-by-side comparison

AnyCRM vs Smith.ai, My AI Front Desk, Goodcall on Freshsales

CapabilityAnyCRMSmith.aiMy AI Front DeskGoodcall
Live Freshsales Appointment booked DURING the call Yes. Native Freshsales Appointment, team-member-matched, calendar-synced.No. Lead logged via Make for manual follow-up.Partial. Zapier-style "Create Lead" / "Log Call Activity" without structural detail for calendar sync.No. Call-logger writes a Contact and Note; no Appointment path documented.
Dedup-before-write on email and phone Yes. Always.No. Make scenario fires "Create a Lead" with no lookup step.No. Zapier-style "Create Lead" is exact-match at best.No published guarantee.
Preserves existing Freshsales Sales Owner on returning callers Yes. Existing Sales Owner is sacred.Implicit, not guaranteed.No. "Update Lead Status" can overwrite.Depends on the underlying connector's defaults.
Routes by lane (AE / SDR / CSM) Yes. Lane is part of AnyCRM's team roster.Manual, depends on the receptionist.No.No. IntelliAssign has to run afterwards inside Freshsales.
Lead Source, Lifecycle Stage & Appointment Outcome frozen from your real account values Yes. Read at setup, baked into the prompt as a frozen table.Not enforced.No. Writes can fail on unknown values.No structural guard.
Cancellation preserves the audit trail (outcome-flagged, not deleted) Yes. Freshsales-native cancellation.Manual.No. Deletion strips the timeline.No. Cancellation left to a human inside Freshsales afterwards.
Reschedule in place (no cancel-then-rebook) Yes.Manual.No.No.
Deal-creation 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 Make or in the receptionist's training.No. Hardcoded "Create Lead" action.No. Connector-default behaviour.
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. Web and voice run on separate stacks.
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.Whatever the underlying connector defaults to.
Scale ceiling Bounded by Freshsales API limits, not by staffing.Bounded by human receptionist staffing.Bounded by Zapier-style rate limits and action contracts.Bounded by the call-logger pattern.
Freshsales logoWorks with Freshsales
§ 10 — Your Freshsales data passes through. It doesn't stick.

Your Freshsales data passes through AnyCRM. It doesn't stick.

AnyCRM processes your Freshsales 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. Contacts, Leads, Deals, Appointments, Notes, Sales Accounts. All of it stays in Freshsales, owned by your Freshworks 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 Contact records, no caller PII.

What AnyCRM doesn't

Caller names, emails, phone numbers, Freshsales Contact IDs, your Sales Pipelines, your Deal Stages, your Lifecycle Stages, your Sales Account 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 Freshsales account and in whatever systems your CRM's flow forwards lead events to. Contacts, Leads, Deals, Appointments, Notes all live in Freshsales. Source-attributed (always AI Receptionist Call or AI Receptionist Web), attributable to AnyCRM in Freshsales' audit log, revocable. AnyCRM does not build a shadow CRM alongside yours.

Revocation

Regenerate or revoke the AnyCRM API key in your Freshsales profile → API Settings 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

Freshsales uses an account-level API key tied to a user's permissions. AnyCRM only touches the smallest set of endpoints required for the contact + Appointment capture lifecycle. Nothing for marketing journeys, nothing for billing, nothing for Freddy AI internals, nothing for deal-policy enforcement (that's your CRM's job).

  • Contacts (read + write). Read and write Contacts, dedup against existing records on email then mobile, set source attribution and Lifecycle Stage, append Notes.
  • Sales Accounts (read + write). Create or link the caller's Sales Account and associate it with the Contact and Appointments.
  • Users / Sales Owners (read). Read your team roster at setup so the AI Receptionist knows who exists and who owns existing Contacts.
  • Appointments (read + write). Read existing Appointments (for reschedule and cancel) and write new ones on the right team member's calendar.
  • Leads & Deals (read). Read existing Leads and Deals so an inbound call from a customer in pipeline attaches to the right record, not an orphan.
  • Account values (read). Read your account-specific Lifecycle Stage, Lead Source, and Appointment Outcome values at setup, so AnyCRM writes only valid values.
  • Not requested: marketing journeys, sales-sequence content, Freddy AI scoring writes, billing / subscription data, your other integrations, deals (deal-creation policy stays inside your CRM's own flow).

Same API key any Freshsales integration uses. Just a smaller surface. AnyCRM holds the key (every write is attributable to AnyCRM in Freshsales' audit log). The LLM never sees the key, and every tool call is logged with the operation name, never the raw payload.

Freshsales logoWorks with Freshsales
§ 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.
Freshsales logoWorks with Freshsales
§ 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.
Freshsales logoWorks with Freshsales
§ 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 Freshsales

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.

Freshsales logoWorks with Freshsales
§ 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.

Freshsales logoWorks with Freshsales