Chili Piper
A weekend of work, and real gaps remain.
Routes an inbound lead to the right salesperson and books the meeting immediately from the form, rather than emailing a link and hoping.
Build the inbound routing I actually need instead of Chili Piper — and understand where the value is. **It is booking before the visitor leaves the page.** Emailing a scheduling link loses most of the intent; showing available times immediately after the form does not. Everything else is a rules engine. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode - Caddy in front THE DATA MODEL - reps: id, name, email, timezone, is_active, weight, territories_json, max_per_day - rules: id, position, condition_json, target_kind, target_id — company size, country, product interest, existing account owner - assignments: id, submission_id, rule_id, rep_id, at, reason — **append-only, and the record of why a lead went where it did** - bookings: id, submission_id, rep_id, starts_at_utc, ends_at_utc, calendar_event_id, status - calendar_connections and busy_blocks, intervals only - round_robin_state: rep_id, last_assigned_at, assigned_count — so distribution is fair rather than random THE FLOW, WHICH IS THE PRODUCT - The form submits, the server evaluates the rules, picks a rep, computes their availability, and **returns slots in the same response**. No email, no redirect, no waiting - The visitor picks one and it is booked. Three seconds, not three hours - If nobody matching is available inside the horizon, fall back to a wider pool rather than showing nothing. An empty slot list is a lost lead ROUTING - Rules evaluated in order, first match wins, and **the matched rule recorded on the assignment**. 'Why did this lead go to him' must be answerable, or sales operations will not trust it - An existing account owner beats every other rule. Routing a current customer to a new rep is the mistake that causes an internal argument - Round-robin within a matched group, weighted, skipping anybody unavailable, and the state stored so it is genuinely even over a month - A rule tester: paste a submission and see which rule fires and who gets it, before it goes live AVAILABILITY ACROSS A TEAM - The same slot function as any scheduler — rules minus busy minus existing bookings minus buffers — run per rep and unioned - **Every instant UTC, working hours as local times with a named zone**, both daylight-saving transitions tested - A hold while the visitor chooses, released after a couple of minutes, with the final insert re-checking inside the transaction. Two visitors must not take one slot - Recurring events expanded properly, with exceptions. A wrongly expanded weekly meeting means double bookings for a year WHAT TO MEASURE - Time from submission to booked meeting, and the share of submissions that book at all. Those two are the only numbers this tool exists to move - Distribution per rep, so 'it is not fair' is a query rather than an argument - No-show rate per rep, which is the reminder problem again WHAT MATTERS MOST Slots in the same response as the form, and the recorded reason for every assignment. The first is the entire conversion argument; the second is what makes a sales team accept the routing.
What you lose
- Booking at the moment of the form submission, which is where the conversion actually is
- Routing rules a sales operations person configures without a developer
- Round-robin distribution that respects availability and territory
- Calendar edge cases across a whole team at once
If you would rather not build
- A form that shows the owner’s own slots, if there is one salesperson
- A rules table and a slot function, which is the whole thing
The escape hatch
open source · no votes, no paid placement
Cal.com
$0Open-source scheduling with team round-robin and collective availability.
calcom/cal.comfree · open source
Easy!Appointments
$0Self-hosted booking with providers and services.
alextselegidis/easyappointmentsfree · open source
Why this verdict
our own opinion · changed only by a person
44/100
Verdict kinda at 44: the scheduler half is known work, and the value is doing it inside the form submission. The recorded assignment reason is what makes it usable by a team rather than merely correct.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Chili Piper
answered from the record above
Is Chili Piper free?
No — the plan we track is $22.50 a month. From around $22.50 per user per month billed annually, with routing and distribution priced above it.
Can you replace Chili Piper by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 44 out of 100, build time a weekend. Read what you lose before you decide.
How much does Chili Piper cost?
$22.50 a month on Instant Booker — $270 a year. Recorded 14 Aug 2026.
What do you lose by replacing Chili Piper?
Booking at the moment of the form submission, which is where the conversion actually is; Routing rules a sales operations person configures without a developer; Round-robin distribution that respects availability and territory; Calendar edge cases across a whole team at once. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Chili Piper?
Yes: Cal.com, Easy!Appointments. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

