Grade Calendly bookings and route them in Saleshandy

Every 15 minutes, grade new Calendly demo bookings, move qualified prospects into your post-demo nurture in Saleshandy, and stop cold follow-ups from landing after they already booked.

Agentic Task
SaleshandyCalendlyGoogle SheetsSalesOperationsLead EnrichmentMeeting WorkflowsData Sync
PromptCreate

Build me an agent workflow that closes the outbound loop the moment a prospect books a demo. The pain: someone books a Calendly meeting after a cold sequence, and the very next day Saleshandy sends a follow-up that reads 'just checking in.' It makes us look robotic and ruins the demo. I want that to stop the same day, every day.

Trigger: cron, every 15 minutes.

Each run:

1) Use Calendly's List Scheduled Events to pull all bookings created since the last successful run. Filter on created_at, not event start time, so we catch far-future bookings the instant they land. Store the last-seen timestamp between runs so we don't reprocess bookings or miss any if a run fails.

2) For each new booking, read the invitee's email, name, job title if present, company domain (derived from the email), and any Calendly custom-question answers.

3) Look the invitee up in Saleshandy with List Prospects, searching by email. If found, remember the prospect ID. If not found, keep going, but note it in the audit row.

4) Grade the booking as one of: qualified, semi-qualified, unqualified. Use the invitee's title, company domain, and their Calendly custom-question answers. I will give you the rubric at configuration time. A reasonable default: qualified = decision-maker title (VP, Head of, Director, Founder, C-level) at a company domain that is not a free-mail provider (gmail.com, yahoo.com, hotmail.com, outlook.com); semi-qualified = individual contributor or manager at a company domain; unqualified = free-mail domain, student, or answers that indicate they are not a fit. If a signal is missing, prefer semi-qualified over unqualified.

5) Regardless of grade, if we found them in Saleshandy, call Update Prospect Status to mark the prospect as finished. This is the whole point of the workflow: stop the cold sequence before the next send window fires.

6) If the grade is qualified AND we have a Saleshandy prospect, additionally call Import Prospects into Sequence to add them to the designated post-demo nurture sequence. I will provide the sequenceId at configuration time. Do not add semi-qualified or unqualified prospects to the nurture; the point is to warm up prospects who are worth pursuing after the demo, not to spray everyone.

7) Log every decision to a Google Sheets audit tab using Append Values. One row per booking with these columns: invitee_name, invitee_email, event_type, event_start_time, saleshandy_prospect_found (yes / no), grade, cold_sequence_stopped (yes / no), added_to_nurture (yes / no), reasoning (one short sentence explaining the grade). I will provide the spreadsheetId and tab name at configuration time.

Edge cases to handle:

- Invitee not in Saleshandy: skip the status update and the sequence import, still grade and still log the audit row.

- Booking was cancelled between our last run and this one: skip it entirely, do not log.

- Prospect already marked as replied or unsubscribed in Saleshandy: do not overwrite that with finished, and record their current status in the audit row so we can see what happened.

- Saleshandy import status codes: if Import Prospects into Sequence returns a per-row error (e.g. bounced, unsubscribed, already active in another sequence), log it in the reasoning column instead of retrying.

- If Calendly or Saleshandy is rate-limiting us, back off and let the next 15-minute run pick up where we left off. Never double-write the audit row.

Configuration inputs I will provide when I set this up:

- Calendly OAuth connection

- Saleshandy API key

- Google Sheets connection, spreadsheetId, and audit tab name

- The Saleshandy post-demo nurture sequenceId

- (Optional) My own qualification rubric that overrides the default

What does this prompt do?

  • Checks Calendly every 15 minutes for new demo bookings so nothing waits for a nightly batch.
  • Grades each booking as qualified, semi-qualified, or unqualified using the invitee's title, company domain, and their answers to your Calendly intake questions.
  • Marks every booked prospect as finished in Saleshandy so cold outreach stops the moment they book, not the next morning.
  • For qualified bookings, adds the prospect to a designated post-demo nurture sequence in Saleshandy so warm follow-up starts automatically.
  • Logs every booking, grade, and action to a Google Sheets audit tab so your sales ops team can see exactly what happened and why.

What do I need to use this?

  • A Calendly account with read access to your scheduled events.
  • A Saleshandy account and an API key from Settings, plus the sequence ID of the post-demo nurture you want qualified bookings added to.
  • A Google Sheets file with an audit tab and columns for invitee, event time, grade, and action taken.
  • A short rubric describing what qualified, semi-qualified, and unqualified look like for your business (job titles, company sizes, disqualifying signals).

How can I customize it?

  • Change the cadence. Run every 5 minutes for a tighter cutoff or every 30 minutes if your outreach schedule can tolerate it.
  • Tune the rubric. Swap in your own ICP definition, disqualifying titles, or free-mail domain rules so grading matches how your team actually qualifies.
  • Point qualified bookings at a different Saleshandy sequence, or add a second sequence for semi-qualified prospects who deserve a lighter touch.
  • Add columns to the audit sheet, like the Calendly event type or the sourcing rep, if you want to slice conversion later.

FAQs

Why every 15 minutes instead of the moment someone books?
Fifteen minutes is tight enough to catch most bookings before Saleshandy's next send window, which is usually what you care about. If you want it faster, drop the cadence to 5 minutes. You should almost never need real-time to solve the 'ghost follow-up' problem.
What if the invitee is not in Saleshandy at all?
That is common when a demo comes from a paid ad or referral, not from cold outreach. The workflow still grades the booking and logs it to your audit sheet. It just skips the Saleshandy status update and sequence add, because there is nothing to pause.
Will unqualified bookings still get pulled out of my cold sequences?
Yes. Regardless of grade, we mark the prospect as finished in Saleshandy so the cold sequence stops. The grade only decides whether they also get added to your post-demo nurture. A booked meeting should never get a 'just checking in' email the next day.
Can I use this without Google Sheets?
Yes. Sheets is the audit trail so you can review grading decisions and catch edge cases, but you can swap it for Notion, Airtable, or a Slack channel. Or drop the log entirely if you trust the grading rubric.
Do I need to write code?
No. This runs as an agent workflow driven by natural-language instructions. You describe the rubric and the sequence in plain English, connect Calendly, Saleshandy, and Google Sheets, and it runs on the schedule you pick.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
LinkedIn Ads budget pacing dashboard for every client account

See every LinkedIn ad account's spend against the budget you committed to, catch overspend early, and rebalance without rebuilding a spreadsheet.

LinkedIn Ads
Google Sheets
Slack Bot
App

Stop letting cold follow-ups land after prospects have already booked a demo.

Connect Calendly, Saleshandy, and Google Sheets once, and Geni runs this every 15 minutes so booked prospects never get a robotic check-in email the next morning.