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
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;
};
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.
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
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.
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