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

Additional information

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.

Frequently asked questions

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.

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.