A Pune management consultancy was losing leads at 9pm. Visitors filled the contact form, got an auto-reply, and 40% went cold before a human replied the next morning. We built a lead-qualifying website chatbot that asks four scoring questions and books hot leads straight into Calendly — no human in the loop. In month one it booked 31 after-hours meetings that would otherwise have waited until morning. This is the four-day build, with the qualification logic and the Calendly handoff code.
The Answer in 60 Words
You build a chat widget that asks four qualifying questions — budget, timeline, company size, problem — scores the answers, and only offers a Calendly booking to leads above a threshold. Low-score leads get a resource link and an email capture instead. The bot runs on a small Node API plus an LLM for intent, and embeds Calendly's inline widget for the actual booking.
Why This Matters Now (June 2025)
Indian B2B buyers increasingly research and decide outside business hours. A consultancy or agency that only responds 10am–7pm leaks pipeline every evening and weekend. Calendly's developer portal now ships a Scheduling API built specifically for AI assistants and chatbots to suggest times and book on a user's behalf. That closes the old gap where a bot could collect a lead but not actually schedule the meeting. The result: a visitor at 9pm books a 10am slot themselves, and your calendar fills while you sleep.
How Should the Bot Qualify a Lead?
A qualifying bot scores a visitor on a few firmographic and intent signals, then routes them. The mistake most teams make is asking too much — every extra question drops completion. Four questions is the sweet spot we landed on.
The Scoring Logic (Copy This)
Keep scoring transparent and tunable. We used a simple additive model the client could adjust in a config file without redeploying.
| Signal | High (3 pts) | Medium (2 pts) | Low (1 pt) |
|---|---|---|---|
| Budget | Large | Medium | Small |
| Timeline | This month | This quarter | Just exploring |
| Company size | 20+ people | 5–19 people | Under 5 |
| Problem clarity | Specific + in-scope | Vague but relevant | Out of scope |
A lead scoring 9 or above (out of 12) gets the Calendly widget. Below 9, the bot offers a relevant guide and captures email for a slower nurture sequence. This single threshold is the difference between a calendar full of qualified calls and one full of tyre-kickers. As Hrishikesh, our CTO, says about every bot we ship: the routing logic is the product, the chat UI is just the wrapper.
What You'll Need
- A Calendly account with API access (paid tier for the Scheduling API)
- A Node.js backend (we used Node 20 + Express) for scoring and the LLM call
- An LLM API key — we used Claude Haiku for cheap, fast intent classification
- A chat widget — a 200-line React component or an open-source widget
- Your Calendly event-type URI (pulled once from the API)
- A CRM or Google Sheet endpoint to log every lead, booked or not
The 4-Day Build
Here is the day-by-day sequence we ran for the Pune consultancy. Each day ends with something testable.
config.json the client can edit. Verify: run the flow in the terminal, feed sample answers, confirm scores compute correctly for high, medium, and low leads.The Calendly Handoff in Practice
Once a lead scores 9+, the bot swaps the chat panel for Calendly's inline embed, pre-filled from the conversation. The embed script is a few lines.
| Approach | What it does | Best for |
|---|---|---|
| Inline embed | Renders Calendly's booking UI inside your widget | Website visitor self-booking — our choice here |
| Pop-up widget | Opens booking in an overlay on click | Sites where chat stays minimised |
| Single-use scheduling link (API) | One-time link, expires after 90 days if unused | Email or SMS follow-up to a captured lead |
| Scheduling API booking | Bot books a slot on the user's behalf | Voice agents and fully automated assistants |
We pre-fill the embed with the visitor's name and email so they do not retype anything, and pass the matched service category as a UTM-style parameter so the sales team sees context before the call. For after-hours leads that scored just under the threshold, we generate a single-use scheduling link and email it — those links expire after 90 days, which is plenty for a nurture window.
Common Mistakes (When This Goes Wrong)
We have shipped enough of these to know the failure modes. Four to avoid.
First, asking too many questions. Every question past four drops completion sharply. If you need ten data points, collect six on the call, not in the widget. The bot's job is to qualify and book, not to run a full discovery.
Second, no out-of-scope path. If every visitor gets offered a slot, your calendar fills with mismatched calls and your sales team stops trusting the bot. The low-score branch — resource link plus email capture — is mandatory, not optional.
Third, a brittle LLM prompt. If the intent classifier returns free-form text instead of strict JSON, your backend breaks on edge cases. Constrain the output to a fixed enum and validate it. Reject and retry once on malformed responses.
Fourth, no human fallback. Some visitors will type "I just want to talk to a person." Detect that phrase and offer a direct booking or a callback request immediately. Forcing a confused visitor through scoring questions is how you lose a good lead.
When NOT to Build This
A qualifying bot is wrong for some businesses. If your sales motion needs a human to build rapport before any meeting — high-ticket enterprise deals, sensitive advisory — a bot that gates the calendar can feel cold and cost you deals. If your monthly lead volume is under roughly 50, the build cost may not pay back; a shared inbox and fast human replies work fine at that scale. And if your offering is genuinely complex to qualify, four questions cannot capture it, and a poorly-scoped bot books the wrong people. Be honest about which case you are in.
Real Example: The Pune Consultancy
A Pune-based management consultancy — 24 staff, selling 3–6 month engagements to mid-size manufacturers — came to us in May 2025. Their problem was timing, not volume: plenty of evening and weekend form fills, but a morning-only response window meant cold leads by the time anyone called.
The same conversational stack powers our voice work. On TalkDrill, our in-house English-speaking app, we run real-time intent handling on the same Node + LLM pattern used here for the qualifier. We have built related lead-capture and CRM-sync flows for clients like Radiant Finance, and the booking logic pairs naturally with our CRM development work. If you would rather automate the whole funnel, our AI and automation team ships these end to end. For a deeper chatbot pattern, see our guide on building a RAG support bot with Claude and pgvector.
Frequently Asked Questions
Can a chatbot actually book a meeting into Calendly automatically?
Yes. Calendly's inline embed lets a visitor self-book inside the chat widget, and the Scheduling API lets a bot book on a user's behalf. For website widgets we use the embed — the visitor is present to pick a slot — with the API reading availability and event types.
How many qualification questions should the bot ask?
Four is our tested sweet spot. Each question beyond four meaningfully drops completion. Ask budget, timeline, company size, and a problem statement; collect any remaining detail on the call itself rather than in the widget.
What does a build like this cost in India?
The Pune project took four working days, including the scoring logic, LLM intent classification, Calendly handoff, and CRM sync. Costs vary with how many integrations and event types you need.
Which LLM should I use for intent classification?
We use Claude Haiku for cheap, fast classification of the free-text problem into a service category. The key is constraining output to strict JSON with a fixed category enum, then validating it server-side and retrying once on malformed responses.
What happens to leads that score too low to book?
They get a relevant resource link and an email-capture for a slower nurture sequence, often with a single-use Calendly scheduling link by email. Those links expire after 90 days if unused. Never offer every visitor a slot — it floods your calendar with poor-fit calls.
Do I need a paid Calendly plan?
For basic inline embedding, a standard paid plan works. The Scheduling API — needed if you want a bot to book on a user's behalf rather than via the embed — requires API access on Calendly's paid tiers. Check current pricing on Calendly's developer portal.
How do I stop the bot from double-booking my calendar?
Wire Calendly's webhook to your team's real calendar and set buffer rules and availability limits in Calendly itself. The embed reads live availability, so as long as your Calendly calendar reflects reality, the bot only offers open slots.
Want a lead-qualifying bot live on your site this month?
We build qualifying website chatbots with Calendly booking and CRM sync for Indian SMBs in about 4 working days. Suitable if you get after-hours leads and lose them to slow replies. First call is technical, with the engineer who'd lead your build.
Book a 20-min Call
