Cal.com booking to Apollo enrichment to Slack pre-meeting brief

When a new Cal.com booking is created, an agent enriches the attendee with Apollo and posts a pre-call brief to Slack at least 30 minutes before the meeting.

Agentic Task
Cal.comApolloSlackSalesLead EnrichmentMeeting WorkflowsNotifications & Alerts
PromptCreate

Build me an agent workflow that briefs me on every new Cal.com booking before the meeting starts.

Trigger: poll Cal.com for new bookings (event type new_booking).

When a new booking fires, the agent should:

1. Call Cal.com Get a Booking with the booking id from the trigger to pull the full attendee record (name, email), the event type and title, the meeting start time, the meeting description, and any intake form responses.

2. Run Apollo People Enrichment on the attendee email to gather job title, seniority, department, LinkedIn URL, location, and any recent role changes.

3. Derive the company domain from the attendee email (skip free-mail domains like gmail.com, outlook.com, yahoo.com) and run Apollo Organization Enrichment on that domain to gather industry, employee count, headquarters, funding events, and tech stack.

4. Run Apollo People Search scoped to that organization to surface 2 to 3 other relevant decision-makers I should know about. Default seniority filter: director, vp, c_suite, founder. Default departments: the same department as the attendee plus any obvious buying-committee adjacencies (e.g. if attendee is in sales, also pull revops and marketing leadership).

5. Draft a concise pre-call brief in Slack mrkdwn with these sections: TL;DR (one line on who they are and what the company does), About the person (title, seniority, tenure, recent role changes), About the company (industry, size, funding, tech stack signals worth referencing), Suggested talking points (3 bullets grounded in the enrichment data), Other people to know (the 2 to 3 contacts from People Search with title and LinkedIn). Keep it under ~250 words. Include the meeting time and a link back to the Cal.com booking.

6. Post the brief via Slack Send a Message. Default destination: a #sales-prep channel, but make the channel or user id easy to change. Timing: if the meeting is more than 30 minutes away, schedule the post so it lands 30 minutes before start; if it is closer than 30 minutes, post immediately.

Edge cases the agent should handle gracefully: missing or unmatched Apollo enrichment (post a lighter brief that says enrichment did not match), free-mail domains (skip Organization Enrichment and People Search, post a person-only brief), internal bookings where the attendee email is on my own domain (skip the workflow), and rescheduled or cancelled bookings (do not double-post).

Output: a single Slack message per booking, posted at least 30 minutes before the meeting starts.

Additional information

What does this prompt do?
  • Watches Cal.com for new bookings and pulls the attendee email, company, and meeting context.
  • Runs Apollo People Enrichment on the attendee and Apollo Organization Enrichment on the company domain to gather title, seniority, employee count, industry, funding, and tech stack.
  • Uses Apollo People Search to surface 2 to 3 other relevant decision-makers at the same company.
  • Drafts a concise pre-call brief with who they are, what the company does, signals worth referencing, talking points, and other contacts to mention, then posts it to Slack at least 30 minutes before the meeting starts.
What do I need to use this?
  • A Cal.com account with API access so the workflow can read new bookings.
  • An Apollo account with API access for People Enrichment, Organization Enrichment, and People Search.
  • A Slack workspace connection with permission to send messages to the channel or DM where briefs should land.
How can I customize it?
  • Change the lead time. The default posts 30 minutes before the meeting; teams often switch to 1 hour or end of previous business day.
  • Choose the Slack destination. Send to a #sales-prep channel, DM the meeting host, or route by event type (demo vs. discovery).
  • Tune the People Search query. Adjust seniority, departments, or titles to match the buying committee you actually care about.
  • Filter which bookings get briefed. Skip internal meetings, free-tier consults, or events under a certain duration.

FAQs

Does this work for every new Cal.com booking?
By default yes, but you can have the agent skip bookings based on event type, attendee domain, or meeting duration. Internal meetings and personal calendar events are easy to filter out.
What if the attendee email is a personal address like Gmail?
Apollo People Enrichment can still match on name plus other signals, but Organization Enrichment needs a company domain. The agent falls back to a lighter brief when no company can be resolved.
How does the agent guarantee the brief lands 30 minutes before the meeting?
When a booking is detected, the agent computes the difference between now and the meeting start. If it is more than 30 minutes away, it schedules the Slack post for T minus 30; if it is closer, it posts immediately so the rep still gets notice.
Can the brief go to a DM instead of a channel?
Yes. Configure the Slack Send a Message step to target the host's user ID instead of a channel, or branch by event owner so each rep gets their own briefs.
Will this consume Apollo credits on every booking?
People Enrichment and Organization Enrichment consume credits per match. People Search does not. You can cap usage by skipping bookings from existing customers or domains you have already enriched recently.

Related templates

Turn website roof inspection requests into JobNimbus leads

New roof inspection requests from your website form land in JobNimbus within a minute, with no duplicate records and nothing retyped by your team.

JobNimbus
Google Forms
Slack
Agentic Task
Triage new Jira Service Management requests before anyone opens them

Every new customer request gets a priority, triage labels, a friendly reply with the right help article, and a Slack ping only when it is truly urgent.

Jira Service Management
Jira
Slack
Agentic Task
Risk-check every dependency upgrade pull request in GitHub

When a bot opens a version bump pull request, we read the real documentation for that exact version and tell you whether it is safe to merge.

Context7
GitHub
Slack
Agentic Task
Launch an Ironclad contract when a HubSpot deal is won

The moment a deal hits Closed Won, the right contract starts in Ironclad, the link lands on the deal, and your sales channel hears who owns the next step.

Ironclad
HubSpot
Slack
Agentic Task
Weekly Ironclad contract renewal digest in Slack and Asana

Every Monday, find contracts renewing or expiring in the next 90 days, post a ranked digest to Slack, and open Asana tasks for the ones that need a decision now.

Ironclad
Slack
Asana
Agentic Task
Turn repeat support tickets into draft help articles

Every Friday, spot the questions your team keeps answering by hand and get a ready-to-review help article drafted from real fixes.

Jira Service Management
Confluence
Slack
Agentic Task

Walk into every meeting already briefed.

Connect Cal.com, Apollo, and Slack once, and Geni posts a pre-call brief before every booking.