What it does
- Watches Cal.com for new bookings and reacts within minutes of a meeting being booked.
- Looks up the invitee in Apollo to pull their title, seniority, LinkedIn, plus their company's industry, size, and funding.
- Creates or updates a matching Salesforce lead or contact with all the firmographics filled in, no copy-paste required.
- Files a Salesforce prep task on the meeting owner and DMs them a one-glance brief in Slack with the booking time and why this prospect matters.
The prompt
Paste it into a new chat in General Input, and a specialist builds it with you.
Whenever a new booking is created in Cal.com, run an agent that turns the invitee into a fully enriched Salesforce record and briefs the assigned rep in Slack. Trigger: poll Cal.com for new_booking events.
Step 1: Enrich the invitee with Apollo. Use Apollo People Enrichment with the invitee's email (and name + company domain as fallbacks) to pull their title, seniority, LinkedIn URL, and current employer. Then take the email domain and call Apollo Organization Enrichment to pull industry, employee count, estimated revenue, headquarters, technologies, and recent funding. If People Enrichment returns no match, skip enrichment cleanly: continue the run with only the data Cal.com provided and note that enrichment was unavailable. Do not fail the workflow.
Step 2: Upsert into Salesforce. Use Salesforce Create or Update Lead (Upsert), keyed on Email, to create or update the lead. Populate FirstName, LastName, Email, Company, Title, Industry, NumberOfEmployees, Website, LinkedIn URL (custom field if present), LeadSource = 'Cal.com Booking', and a Description that includes the meeting type and booking time. If a Salesforce contact already exists for this email, update that contact via Create or Update Contact (Upsert) instead of creating a duplicate lead.
Step 3: Create a Salesforce prep task. Use Salesforce Create Task assigned to the meeting host (look up the OwnerId by matching the Cal.com host email to a Salesforce User). Subject: 'Prep for Cal.com meeting with {{invitee name}} ({{company}})'. Set the ActivityDate to the day of the booking, Priority to Normal, Status to Not Started, and link WhoId to the upserted lead or contact. Put the one-line 'why this prospect matters' summary in the task Description, plus the meeting time and any notes the invitee provided when booking.
Step 4: DM the rep on Slack. Open a direct message conversation with the meeting host (resolve their Slack user from their email) and send a short message containing: invitee name, title, company, the booking time in the rep's local timezone, the meeting type, the LinkedIn URL, and a single-sentence 'why this prospect matters' summary you generate from the firmographic data (industry, size, recent funding, technologies). Keep it tight and skimmable, not a wall of text.
Behavior notes: be idempotent so the same booking does not create duplicate Salesforce records or duplicate Slack messages on retries. If the invitee email is missing or clearly personal (gmail, yahoo, outlook), still upsert the lead but skip Organization Enrichment and say so in the Slack DM. Never block the rest of the workflow on a single failed enrichment call.
What you'll need
- A Cal.com account where your team takes inbound bookings.
- An Apollo account with enrichment credits available.
- A Salesforce login with permission to create and update leads, contacts, and tasks.
- A Slack workspace where reps can receive a direct message from the workflow.
Make it yours
- Choose whether new invitees become Salesforce leads, contacts, or both depending on whether they already exist.
- Tweak which fields get populated, like adding lead source values, custom fields, or the LinkedIn URL field your team uses.
- Change the Slack brief tone, length, and which firmographic signals (industry, size, funding, tech stack) feed the 'why this matters' line.
- Skip enrichment for personal email domains, or only run the workflow for specific Cal.com event types like demos.