Stop Outreach sequences when a prospect books on Calendly
The moment someone books a meeting on Calendly, finish every active Outreach sequence they are in and tell the owner in Slack.
When someone books a meeting through Calendly, I want their active Outreach sequences to stop immediately, so we never keep cold emailing a prospect who already agreed to talk. Trigger this on a Calendly webhook for the invitee.created event, set up with Calendly's Create Webhook Subscription operation so new bookings arrive in real time. From the webhook payload take the invitee's email address, their name, the event type they booked, and the meeting start time. If the payload does not carry everything I need, fill the gaps with Get Scheduled Event, or Get Event Invitee and List Event Invitees for the invitee record.
Find the matching prospect in Outreach using List Prospects filtered on that email address, and include the prospect's owner on the same call so I have the owner's name and email without a second lookup. Email matching is the whole game here. Match on the exact invitee address, and if Outreach returns more than one prospect for it, which happens with duplicate records, handle every one of them rather than picking the first.
For each matched prospect, use List Sequence States to pull every enrollment that prospect has. Only act on the ones that are currently active. For each active enrollment, call Pause, Resume, or Finish Sequence State and finish it. Leave enrollments that are already paused or finished exactly as they are, never resume anything, and never add anyone to a sequence. Keep track of the sequence name behind each enrollment so I can name it in the notification, using List Sequences if I need to resolve a name from an id.
Then post a short Slack message to the prospect owner with the Slack Bot. Look up the owner's Slack account from their Outreach email using Look Up User by Email, then direct message them with Send a Message. Keep it to a few lines: who booked, when the meeting is with the date, time, and timezone exactly as Calendly reports it, the event type they booked, and a plain list of the sequences that were stopped. If I cannot resolve the owner's Slack account, post the same message to a fallback sales channel instead of dropping it.
If no prospect in Outreach matches the invitee email, do not fail quietly. Post to Slack that someone booked a meeting and we could not find them in Outreach, with their name, email, and meeting time, since it usually means they booked from a different address than the one we are sequencing and someone should link it up by hand. Do the same when a prospect matches but has no active enrollments: one line saying nothing needed stopping is more useful than silence.
If finishing one enrollment fails, keep going with the rest and report the failures in the Slack message rather than aborting the run. This should also catch prospects who were only secondary recipients on multi-recipient emails, which the built-in Outreach setting skips.
What does this prompt do?
- Watches for new Calendly bookings and picks up the invitee's email address the second the meeting is confirmed.
- Finds the matching prospect in Outreach and ends every sequence they are actively enrolled in, so no cold follow-up lands after they already agreed to talk.
- Leaves enrollments that are already paused or finished exactly as they are, and never re-enrolls anyone.
- Sends the prospect owner a short Slack note naming the sequences that were stopped and when the meeting is booked for, and flags bookings with no matching prospect instead of failing silently.
What do I need to use this?
- A Calendly account with the booking links your team shares with prospects
- An Outreach login that can view prospects and manage sequence enrollments
- A Slack workspace where our bot can message your reps
- Prospect email addresses in Outreach that mostly match what people type into Calendly, since the workflow tells you about the ones that do not
How can I customize it?
- Choose which booking types count, so internal interviews or support calls do not stop a sales sequence
- Pause sequences instead of finishing them if your team prefers to pick them back up after a no-show
- Send the alert to a shared sales channel instead of a direct message to the prospect owner
FAQs
Does this stop every sequence the prospect is in, or just one?
Outreach can already mark prospects finished when a meeting is booked. Why use this?
What if someone books with a different email than the one we are sequencing?
Will it touch sequences we paused on purpose?
How quickly does it run after someone books?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
One place for sales and ops to request an NDA or vendor agreement, watch its status, and let legal launch the contract in a single click.
Stop cold emailing people who already said yes.
Every booking on your calendar quietly ends the outbound sequences behind it, and your rep hears about it in Slack.