The “Calendar-Triggered” Prep

Automatically generate just-in-time meeting prep when calendar events are created. Ensure reps never walk into a call cold—context arrives before they need it.

Standard Complexity
Owner: Sales Ops / RevOps
Updated Jan 2025
Workflow overview diagram

Workflow overview

Download diagram

Trigger

Calendar event created or updated with external attendee

Inputs

Calendar event details, attendee email domain, CRM deal data

Output

Concise meeting prep delivered via Slack or email before the call

Success Metrics

Prep delivery rate, rep satisfaction, meeting progression rate

Overview

What It Is

Calendar-Triggered Prep monitors rep calendars and automatically delivers relevant context when meetings are scheduled. Unlike heavy research dossiers, this is lightweight and fast—company basics, deal status, recent activity, and key talking points delivered to Slack 30 minutes before the call.

Why It Matters

Reps book 5-10 calls per day. They don't have time to manually research each one. Without context, they ask redundant questions or miss opportunities. Automated prep ensures every conversation builds on what's already known, making prospects feel heard and valued.

Who It's For

  • SDRs with high call volumes
  • Account Executives managing multiple deals
  • Customer Success managers with renewal calls
  • Sales teams without dedicated research support

Preconditions

Required Tools

  • Google Calendar or Outlook Calendar
  • Zapier, Make.com, or n8n for automation
  • Slack or email for delivery
  • CRM for deal context
  • Optional: Enrichment tool for company data

Required Fields/Properties

  • Calendar event with attendee email
  • Attendee domain for company lookup
  • CRM record (if exists) for context
  • Rep's preferred delivery channel

Definitions Required

  • What context to include (company, deal, recent activity)
  • How early to deliver prep (30 min, 1 hour)
  • Which calendar events to trigger (external only, specific event types)
  • Delivery format (Slack DM, channel, email)

Step-by-Step Workflow

1

Set Up Calendar Monitoring

Goal: Detect new meetings with external participants.

Actions:

  • Connect to Google Calendar or Outlook API
  • Create filter for events with external attendees
  • Exclude internal meetings (same domain)
  • Exclude recurring 1:1s and team meetings
  • Set trigger timing (event created or X minutes before)

Implementation Notes: Zapier's Google Calendar trigger works well. Filter by attendee domain—if all attendees are @yourcompany.com, skip it. Personal email domains (gmail, yahoo) should fall back to CRM lookup.

Automation Logic:

// Calendar event filter logic const shouldTriggerPrep = (event) => { const myDomain = 'yourcompany.com'; const internalDomains = ['yourcompany.com', 'contractor.yourcompany.com']; // Check for external attendees const hasExternal = event.attendees?.some( a => !internalDomains.some(d => a.email.endsWith(d)) ); // Exclude certain event types const excludePatterns = ['1:1', 'standup', 'sync', 'internal']; const isExcluded = excludePatterns.some( p => event.title.toLowerCase().includes(p) ); return hasExternal && !isExcluded; };
2

Extract Attendee Information

Goal: Identify who the meeting is with and their company.

Actions:

  • Parse attendee email for domain
  • Look up company by domain in CRM
  • Fall back to enrichment API if not in CRM
  • Extract attendee name and title if available
  • Handle multiple external attendees

Implementation Notes: The email domain is your primary identifier. Most B2B contacts use company email. For gmail/personal domains, check if the attendee name matches a CRM contact.

3

Pull CRM Context

Goal: Gather relevant deal and activity history.

Actions:

  • Query CRM for company/contact record
  • Pull current deal stage and value
  • Get recent activity (emails, calls, notes)
  • Identify last conversation summary
  • Flag any open tasks or follow-ups

Implementation Notes: Keep CRM context concise. Reps need 'Deal is at proposal stage, last call discussed pricing, follow-up on security questions pending'—not a full activity log.

Automation Logic:

CRM Context Query: 1. Company Record - Name, industry, employee count - Account owner, tier 2. Deal/Opportunity (if exists) - Stage, amount, close date - Days in current stage 3. Recent Activity (last 30 days) - Last meeting date and outcome - Last email exchanged - Open tasks assigned 4. Contact Record - Role, title, persona type - Engagement score - Notes/preferences
4

Format and Deliver Prep

Goal: Send concise, actionable prep to the rep.

Actions:

  • Format context into scannable message
  • Include meeting time and attendee info
  • Add company snapshot and deal status
  • List 2-3 key talking points or questions
  • Deliver via Slack DM or email

Implementation Notes: Slack DM is usually best—it's where reps live. Keep the message under 10 lines. Link to full CRM record for reps who want more detail.

5

Handle Edge Cases

Goal: Ensure reliable prep even with incomplete data.

Actions:

  • Handle unknown companies (new prospects)
  • Handle personal email domains
  • Handle multiple attendees from different companies
  • Handle rescheduled or updated meetings
  • Prevent duplicate prep delivery

Implementation Notes: For unknown companies, deliver what you can: 'New prospect - Company: acme.com. No CRM record found. Consider researching before call.' Some context is better than none.

Templates

Slack Prep Message Template

📅 *Meeting Prep: {{meeting_title}}*
⏰ {{meeting_time}} ({{time_until}})

*With:* {{attendee_name}}, {{attendee_title}} @ {{company_name}}

*Company:* {{company_industry}} | {{company_size}} employees
*Deal:* {{deal_stage}} | {{deal_amount}} | Close: {{close_date}}

*Last Contact:* {{last_activity_date}} - {{last_activity_summary}}

*Key Points:*
• {{talking_point_1}}
• {{talking_point_2}}

<{{crm_link}}|Open in CRM> | <{{linkedin_url}}|LinkedIn>

New Prospect Prep Template

📅 *Meeting Prep: {{meeting_title}}*
⏰ {{meeting_time}} ({{time_until}})

*With:* {{attendee_name}} @ {{attendee_domain}}

⚠️ *New Prospect - No CRM Record*

*Quick Research:*
• Company: {{company_name}} ({{company_domain}})
• Industry: {{industry_guess}}
• Size: {{estimated_size}}

*Suggested Discovery Questions:*
• How did you hear about us?
• What prompted you to book this call?
• What's your current solution for {{problem_area}}?

<{{crm_create_link}}|Create CRM Record>

Zapier Workflow Configuration

Zapier Workflow: Calendar-Triggered Prep

1. TRIGGER: Google Calendar - Event Start
   - Trigger X minutes before: 30
   - Calendar: Sales team shared calendar

2. FILTER: Only External Meetings
   - Attendee email does not contain: @yourcompany.com
   - Event title does not contain: Internal, 1:1, Sync

3. ACTION: Lookup in CRM
   - Search by: Attendee email domain
   - Return: Company, Deal, Recent Activity

4. ACTION: Format Message
   - Use template based on: CRM record found (Y/N)

5. ACTION: Send Slack DM
   - To: Calendar event organizer
   - Message: Formatted prep

Delivery Timing Options

| Timing | Best For | Pros | Cons |
|--------|----------|------|------|
| 30 min before | High-volume SDRs | Fresh context, actionable | May miss if in back-to-back calls |
| 1 hour before | Account Executives | Time to review deeply | Less fresh |
| Night before | Early morning calls | Prep evening before | May forget by morning |
| At event creation | All types | Immediate awareness | Context may change by meeting time |

QA + Edge Cases

Test Cases Checklist

  • External meeting scheduled → prep delivered 30 min before
  • Internal meeting scheduled → no prep triggered
  • Unknown company (no CRM record) → 'New Prospect' template used
  • Meeting rescheduled → prep redelivered at new time
  • Personal email domain → CRM contact lookup attempted

Common Failure Modes

  • Too much information: Reps skip prep that's too long to read quickly. Keep it to 10 lines max. Link to more detail, don't include it.
  • Wrong timing: Prep delivered too early gets forgotten. Too late and reps are already on the call. 30 minutes is the sweet spot for most teams.
  • Duplicate delivery: If events are updated, prep may send multiple times. De-duplicate by tracking event ID + delivery timestamp.
  • Missing context for new prospects: No CRM record means no context. Ensure fallback that provides at least basic company info from enrichment.

Troubleshooting Tips

  • If prep isn't triggering: Check calendar API connection and filter logic
  • If CRM lookup fails: Verify domain-to-company matching; may need enrichment fallback
  • If reps ignore prep: Survey on format and timing; may need to simplify or adjust delivery channel
  • If personal emails break lookup: Add logic to search CRM by attendee name as fallback

KPIs and Reporting

KPIs to Track

  • Prep Delivery Rate: 100% of external meetings receive automated prep
  • Prep Open Rate: >80% of prep messages opened before meeting
  • Rep Satisfaction: >8/10 helpfulness rating from sales team
  • Context Completeness: >70% of preps include CRM deal context
  • Meeting Progression: Track if prepped meetings progress faster

Suggested Dashboard Widgets

  • Daily Prep Delivery: Count of prep messages sent per day by rep
  • CRM Match Rate: Percentage of meetings with existing CRM records
  • Delivery Timing: Distribution of prep delivery times before meetings
  • Feedback Scores: Rep ratings on prep usefulness over time

Want This Implemented End-to-End?

If you want this playbook configured in your stack without the learning curve:

  • Timeline: Fully configured in 1 week
  • Deliverables: Calendar integration, CRM lookup workflow, message templates, Slack delivery, edge case handling
  • Handoff: Sales team notification of new prep system + feedback collection after 2 weeks
Request Implementation
Jump to Steps Implement