Turn Calendly bookings into prepped Keap records and Slack briefs

When someone books on Calendly, we update and tag their Keap record, add a prep task, and send the rep a Slack brief that flags existing customers.

Agentic Task
CalendlyKeapSlack BotSalesOperationsMeeting WorkflowsLead EnrichmentData Sync
PromptCreate

Watch Calendly for new scheduled events and turn each new booking into a fully prepared Keap record plus a Slack prep brief for the rep who owns the call. Use a Calendly poll trigger on new scheduled events so this runs within minutes of someone booking.

When a booking comes in, use Calendly's Get Event Invitee to pull the invitee's full name, email address, the event type they booked, and their answers to the booking questions. Those intake answers are the most valuable part of the brief, so keep them close to verbatim rather than paraphrasing them away.

Before writing anything into Keap, work out whether this person is already known to us. Use Keap's List Contacts filtered by their email address. If a contact comes back, use Keap's List orders to pull their order history so we know whether they are an existing paying customer and what they have already bought. Treat anyone with at least one past order as an existing customer.

Then upsert the invitee into Keap with Create or Update a Contact, matched on email address so we never create a duplicate. Note that contact upsert is a Keap v1 capability: v1 resource ids are integers and v2 resource ids are strings, so do not carry an id returned by one version into a call against the other.

Apply a Keap tag reflecting the meeting type using Apply Tag, for example "Discovery Call Booked" for a discovery event type versus "Demo Booked" for a demo. If the invitee turned out to be an existing customer with past orders, still apply the meeting type tag but skip any new lead tag.

Write the intake answers onto the record with Create a Note, so the booking questions and their answers live on the contact where the rep will actually look for them. Include the event type and the scheduled time in that note.

Add a Keap task with Create a Task due the morning of the call, assigned to the call owner, spelling out what to prepare. Make the task specific to this booking rather than generic, for example reviewing a particular answer they gave or pulling their account's order history.

Finally, send the assigned rep a Slack message using Slack Bot's Send a Message containing a short prep brief. Cover who booked and their company or role if the booking answers reveal it, what they said they want, whether they are an existing Keap contact with past orders, and the two or three questions worth asking on this specific call. If the invitee is an existing customer, say so prominently at the very top of the brief along with what they have already bought, so nobody runs a cold discovery script at a current customer. Keep the brief short enough to read on a phone on the way into the meeting.

Example output

EXISTING CUSTOMER: 3 past orders in Keap Jordan Reyes (jordan@brightpath.io) booked a Demo for Thu Aug 6, 10:00am. What they said they want: "We are outgrowing our current setup and need to see how reporting works for a 40 person team." History: Keap contact since March. Past orders: Starter Plan (x2) and an Onboarding Package. Worth asking: 1. What specifically is breaking in reporting now that you are at 40 people? 2. Who else needs to see those reports? 3. Is this an expansion of the Starter Plan or a replacement for it?

Additional information

What does this prompt do?
  • Picks up every new Calendly booking within minutes and pulls the invitee's name, email, meeting type, and the answers they gave on your booking form.
  • Creates or updates their Keap contact matched on email address, tags them by meeting type, saves their booking answers as a note, and adds a task due the morning of the call.
  • Checks whether they are already a customer with past orders, and if they are, flags it at the top of the brief and skips the new lead tag.
  • Sends the assigned rep a short Slack prep brief: who booked, what they said they want, their history with you, and two or three questions worth asking.
What do I need to use this?
  • A Calendly account, ideally with a few booking questions on your event types so there are intake answers to capture
  • A Keap account where your contacts, tags, notes, and tasks live
  • A Slack workspace, plus the channel or person who should receive each prep brief
  • The tag names you already use for each meeting type, for example Discovery Call Booked and Demo Booked
How can I customize it?
  • Change which tag maps to which meeting type, and add new tags as you create new event types.
  • Send briefs to a shared sales channel instead of a direct message, or route each one to whoever owns the booking.
  • Adjust when the prep task is due and what it asks the rep to prepare before the call.

FAQs

Will this create duplicate contacts in Keap?
No. Everyone is matched on their email address first, so an existing contact gets updated in place and only genuinely new people are created.
What happens when an existing customer books a call?
They get called out at the very top of the brief, along with what they have already bought, and the new lead tag is skipped. The idea is that no rep should ever run a cold discovery script at a current customer.
How soon after someone books does the brief arrive?
Calendly is checked for new bookings on a short repeating cycle, so the Keap record and the Slack brief are usually ready within a few minutes of the booking.
Does this work if my booking form has no custom questions?
Yes. You still get the contact created or updated, the meeting type tag, the task, and the brief. The brief is just thinner because there are no intake answers to summarize.
Can it treat different meeting types differently?
Yes. The meeting type drives which tag gets applied, so a discovery call and a demo can be tagged and prepped differently.

Related templates

Reconcile Stripe payouts against your Mercury deposits

Every weekday morning, check that every Stripe payout actually landed in your Mercury account, and hear about it only when one did not.

Stripe
Mercury
Slack Bot
Agentic Task
Catch social posts stuck in approval before they miss their slot

Every weekday morning, get a Slack digest of the social posts still waiting on sign-off, with the ones about to go live flagged first.

Hootsuite
Slack Bot
Agentic Task
Turn last week's support tickets into a Miro affinity map

Every Monday morning, last week's support tickets become a themed Miro board, so your product team can see what customers actually complain about.

Zendesk
Miro
Slack Bot
Agentic Task
Chase unsigned contracts and nudge stalled signers daily

Every weekday we find the contracts still waiting on a signature, resend the ones going stale, and post a prioritized chase list to Slack.

Documenso
Gmail
Slack Bot
Agentic Task
Turn today's Miro boards into written Notion summaries

Every weekday at 6pm, any board your team edited today becomes a readable Notion write up, so the people who missed the session can catch up.

Miro
Notion
Slack Bot
Agentic Task
Log signed Documenso contracts as closed won in HubSpot

When a contract is fully signed, we read the agreed terms, move the matching HubSpot deal to closed won, and post a deal desk summary to Slack.

Documenso
HubSpot
Slack Bot
Agentic Task

Stop walking into booked calls cold.

Every Calendly booking lands in Keap tagged, noted, and tasked, with a prep brief already waiting in Slack.