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
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
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.