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

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.

Frequently asked questions

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.

Walk into every meeting already briefed.

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