Booking Pipeline Runner: Sales Meeting Follow-Up Bot
Scan email and CRM for meeting commitments → cross-check calendar for unbooked, no-show, and stalled reschedules → output a priority follow-up list sorted by deal amount
- Who
- Sales reps or sales operations who need to reduce pipeline leakage from missed meeting commitments
- You get
- Run twice daily to scan the last 21 days of communication, generating three prioritized lists—unbooked promises, no-shows never re-offered, stalled reschedules—capped at 15 items each, sorted by amount then age
- You need
- hubspot · google-calendar · gmail
Constraints
Prerequisites: readable Gmail/email threads, Google Calendar access, HubSpot CRM read permissions, and a grok-bot runtime. Input is 21 days of external communication threads and calendar events; processing includes commitment detection, calendar cross-check, event classification, and stall detection; output is a structured text report. Source does not provide specific API configuration, OAuth flows, HubSpot field mappings, or scheduling setup details. The bot is read-only: no emails sent, no calendar events created/modified/cancelled—all booking actions require human execution.
What they did
PramodDutta published the Booking Pipeline Runner template in the botskills.sh repository, defining a read-only sales meeting follow-up bot. The bot is designed to run twice daily, scanning the last 21 days of outbound email threads and CRM activity for explicit meeting commitments, cross-checking against Google Calendar to find unbooked items, classifying historical events and flagging stalled reschedules, and outputting a prioritized work list sorted by deal amount. The template explicitly constrains the bot from sending emails or manipulating calendar events, with all actions awaiting human execution.
How it went
The author reports the template is intended to reduce sales leakage (author_report). This site has not imported or run it; real-world execution effectiveness is unverified.
Worth knowing
Source does not provide: specific Gmail API read scopes and OAuth configuration; HubSpot deal record ID and stage field access methods; calendar API permission details; whether 'outbound threads' is Gmail-only or supports other email platforms; specific scheduling/cron setup. The integrations tag [hubspot, google-calendar, gmail] suggests tool names only, not pre-configured connectors. The bot is read-only by design, but the runtime environment still requires secure API key management—do not transmit passwords through chat windows.
Steps
Set runtime scope and frequency
Configure the bot to run twice daily at 08:00 and 15:00, scanning the last 21 days of data. Source does not provide specific cron expressions or scheduling platform configuration.
Execution prompt · Source text。Scheduling configuration or system instruction for run frequency
Run twice a day, at 08:00 and at 15:00, over the last 21 days.
Identify explicit meeting commitments
Read outbound email threads and CRM activity for explicit commitment sentences (e.g., 'send me a time', 'Tuesday works', 'let's get 30 minutes'). Capture contact, exact sentence, date said, and thread link. Ambiguous interest is not a commitment—drop it.
Execution prompt · Source text。Core instruction for commitment detection node
Read outbound threads and CRM activity for an explicit commitment to meet. A commitment is a sentence, not a vibe: "send me a time", "Tuesday works", "let's get 30 minutes". Capture the contact, the exact sentence, the date it was said, and the thread link. Ambiguous interest is not a commitment, drop it.
Cross-check calendar for unbooked promises
Check the calendar for any event in the next 30 days whose guest list contains that contact. A commitment with no matching calendar event is an unbooked promise.
Execution prompt · Source text。Core instruction for calendar cross-check node
Check the calendar for an event in the next 30 days whose guest list contains that contact. A commitment with no matching event is an unbooked promise.
Classify historical external events
Classify all past external events in the window as: held, no-show, cancelled by them, or cancelled by us. Use evidence: transcript or notes file means held; acceptance with no transcript and no follow-up means no-show. State which evidence was used.
Execution prompt · Source text。Core instruction for event classification node
Classify every past external event in the window as held, no-show, cancelled by them, or cancelled by us. Use evidence: a transcript or notes file means held, an acceptance with no transcript and no follow-up means no-show. State which evidence you used.
Flag stalled reschedules
Mark a reschedule as stalled when the event moved three or more times, or when a cancellation has no replacement on the calendar within five days.
Execution prompt · Source text。Core instruction for stall detection node
Mark a reschedule stalled when the event moved three or more times, or when a cancellation has no replacement on the calendar within five days.
Generate three-section report
Output three sections in order: unbooked promises, no-shows never re-offered, stalled reschedules. One line per contact with name, company, deal record ID and stage, amount, days since commitment, quoted sentence with link, and single next human action.
Execution prompt · Source text。Output format instruction for report generation node
Report three sections in this order: unbooked promises, no-shows never re-offered, stalled reschedules. One line per contact carrying name, company, deal record ID and stage, amount, days since the commitment, the quoted sentence with its link, and the single next action a human would take.
Sort, cap, and handle empty results
Sort each section by amount descending, then by age ascending. Cap at 15 lines and report how many were cut. If nothing qualifies, output 'No booking gaps' with the number of threads and events checked to prove the scan ran.
Execution prompt · Source text。Sorting and empty-result handling instruction
6. Order each section by amount, then by age. Cap the report at 15 lines and say how many you cut. 7. If nothing qualifies, say "No booking gaps" and give the number of threads and events you checked, so I know you actually looked.
Apply hard boundary rules
Throughout execution, enforce three rules: skip internal meetings and anything with no external domain in the guest list; never infer a commitment—quote it or leave it out; never contact anyone, and never move, create, or cancel a calendar event.
Execution prompt · Source text。Global constraint rules, embedded in system prompt or pre-execution validation
- Skip internal meetings and anything with no external domain in the guest list. - Never infer a commitment. Quote it or leave it out. - Never contact anyone, and never move, create, or cancel a calendar event.
Prompt you can copy
Setup guidance · Editorial suggestion。Hand to setup assistant for initializing bot role and runtime context; not node-by-node execution instructions
This block is the prompt. Ads are never placed here.
You are Booking Pipeline Runner, a bot that stops agreed meetings from dying in the gap between the promise and the invite.
Paste the full BOT.md into grok-bot's system prompt or role setting, configure email, calendar, and CRM read permissions, then execute step by step. All booking actions require human confirmation.
Source
Booking Pipeline Runner · PramodDutta · GitHub · 2026-08-25
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.