Book meetings from replies
Instantly + Calendly + HubSpot
Who it's for
Outbound teams who want interested replies turned into booked meetings and logged in the CRM, with a human checking each one.
What you get
Reply triage with drafts waiting for approval. Sample output: every company and person in it is fictional.
Unread replies, last 24 hours: 9 | Lead | Class | Draft | |------------------------------|-------------|----------------------------------------| | Dana Okafor, Fernhill (fict.) | interested | "Happy to show you. Grab a time: [link]" | | Lee Marsh, Larkspur (fict.) | not now | none, follow up in 60 days | | j.park@quarrylane.example | unsubscribe | none, removed from campaign | | Ops inbox, Mossgate (fict.) | other (OOO) | none, retry next week | ...5 more 3 drafts ready, each with a single-use link for 'Intro call (30 min)'. Nothing has been sent. Reply 'send 1, 3' to approve.
Time and cost
Estimate About 10–15 minutes for a day's replies.
Assumptions: A day with about 10 replies, 3 of them interested.
- Instantly: Reads replies, plus up to 3 sends after you approve them. Credit use not confirmed by Instantly.
- Calendly: Availability checks, plus up to 3 single-use links. Credit use not confirmed by Calendly.
- HubSpot: Up to 3 contact updates and 3 logged activities after you approve them. Credit use not confirmed by HubSpot.
Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.
MCP servers
Every server is confirmed in: Claude
-
ClaudeCursorRead + writeCredits not confirmed
https://mcp.instantly.ai/mcp -
ClaudeChatGPTRead + writeCredits not confirmed
https://mcp.calendly.com -
ClaudeChatGPTRead + writeCredits not confirmed
https://mcp.hubspot.com
Set up in a chat app
Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.
- Connect Instantly without code (Claude)
- Connect Calendly without code (Claude, ChatGPT)
- Connect HubSpot without code (Claude, ChatGPT)
Developer setup
Auth setup and mcp.json for Claude Code and Cursor
- Instantly: Paste an API key from the vendor's settings into the config (header or URL). There's no browser login, so it works well headless.
- Calendly: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token. - HubSpot: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token.
Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.
{
"mcpServers": {
"instantly": {
"url": "https://mcp.instantly.ai/mcp",
"headers": { "Authorization": "YOUR_INSTANTLY_API_KEY" }
},
"calendly": {
"url": "https://mcp.calendly.com"
},
"hubspot": {
"url": "https://mcp.hubspot.com"
}
}
}
Step-by-step prompts
- Show my unread Instantly replies from the last 24 hours and classify each one: interested, not now, unsubscribe, or other.
- For each interested reply, check my Calendly availability for the next 5 business days and create a single-use scheduling link for my intro event type.
- Draft a short reply to each interested lead with the link. Show me all drafts. Send only the ones I approve.
- For each one I approve, create or update the contact in HubSpot, set the lifecycle stage to lead, and log the reply as an activity.
Run it on a schedule (optional)
- Run it two or three times a day so interested leads hear back quickly.
- In a scheduled run, stop at the drafts: queue them for a person to approve. Never send unattended.
- Calendly and HubSpot use OAuth. Sign in once interactively before you schedule it.
Where this goes wrong
- Misread replies. Out-of-office messages, sarcasm, and 'not me, try my colleague' get classed as interested. Read the class column before you approve any send.
- Sending to someone who unsubscribed. A reply that says 'stop' in a long thread can be missed. Ask for unsubscribes to be listed first and confirm they were removed from the campaign.
- Duplicate contacts in the CRM. A lead who replies from a personal address creates a second contact. Match on name and company as well as email, and merge before logging.
- Link for the wrong event type. If you have several Calendly event types, name the exact one in the prompt, and check the link in one draft before approving the rest.
Gotchas
- Calendly is OAuth 2.1 with PKCE and Dynamic Client Registration. Clients without DCR support need a different setup.
- Sending replies from Instantly is a real email. Keep a human approval step on every send.
- Instantly also has its own built-in reply agent that can share Calendly links. Use that instead if you don't need Claude in the loop.
- Watch for unsubscribe replies, and never send those leads a link.
Download
Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.
Download book-meetings-from-replies.md
New recipe and breakage notes every week
Vendor sites: Instantly · Calendly · HubSpot. If we join an affiliate program, these links will be labeled as affiliate links.