Back to Play 9 Resources
Play 9: Meeting Prep

Play 9 Workflow Diagram (Visual)

Visual flowchart from calendar trigger to brief delivery.

Play 9 Workflow Diagram (Visual)

This workflow maps the complete meeting prep automation sequence, from calendar trigger to brief delivery. Use it to build your own automated system or audit your current process for gaps.

The Complete Flow

Calendar Event Created
         ↓
Extract Meeting Data (Zapier/Make)
         ↓
Query CRM for Client Context (Salesforce/HubSpot API)
         ↓
Pull Recent Communications (Gmail/Outlook API)
         ↓
Generate Draft Brief (GPT-4 via API)
         ↓
Route for Review (Slack notification)
         ↓
Approve & Distribute (Email automation)
         ↓
Archive in Knowledge Base (Notion/Confluence)

Stage-by-Stage Implementation

Stage 1: Calendar Trigger Setup

Configure your calendar system to fire webhooks

when meetings are created or updated.

Google Calendar:

  1. Enable Google Calendar API in your Google Cloud Console
  2. Create a service account with calendar.events.readonly scope
  3. Set up a Cloud Function to poll for new events every 15 minutes
  4. Filter for events tagged with "client-meeting" or specific calendar IDs

Outlook/Exchange:

  1. Register an app in Azure AD with Calendars.Read permission
  2. Use Microsoft Graph API
    to subscribe to calendar change notifications
  3. Configure webhook endpoint to receive real-time updates
  4. Set subscription expiration to 4230 minutes (maximum allowed)

Trigger Criteria:

  • Meeting duration ≥ 30 minutes
  • External attendees present (non-company domains)
  • Meeting occurs 3+ business days in future
  • Calendar owner is partner, director, or senior manager

Stage 2: Data Extraction Layer

Pull structured data from the calendar event and enrich it with context.

Required Fields:

  • Meeting title, date, time, duration
  • All attendee email addresses and names
  • Meeting location (physical or video link)
  • Meeting description/agenda text
  • Organizer name and role

Enrichment Sources:

  • CRM
    record for each client attendee (last interaction date, deal stage, open issues)
  • Email threads from past 30 days containing attendee addresses
  • Previous meeting notes tagged with client name
  • Active project status from project management system
  • Outstanding invoices or payment issues from billing system

Implementation with Make.com:

  1. Create scenario triggered by Google Calendar "New Event"
  2. Add "Get Contact" module for Salesforce/HubSpot lookup per attendee
  3. Add Gmail "Search Messages" module with query: from:({attendee_emails}) after:{30_days_ago}
  4. Add Notion "Search Database" module for meeting notes database
  5. Aggregate all data into single JSON object

Stage 3: Brief Generation

Feed the enriched data into GPT-4 to generate a structured meeting brief.

System Prompt Template:

You are a senior associate preparing a client meeting brief. Generate a concise, actionable brief using this structure:

MEETING OVERVIEW
- Date, time, duration, attendees with titles
- Meeting objective in one sentence

CLIENT CONTEXT
- Relationship history (tenure, total billings, current projects)
- Recent interactions (last 3 touchpoints with dates)
- Open issues or concerns flagged in CRM

DISCUSSION TOPICS
- Primary agenda items (from meeting description)
- Anticipated questions based on recent email threads
- Recommended talking points for each topic

PREPARATION CHECKLIST
- Documents to review before meeting
- Data or analysis to prepare
- Internal stakeholders to brief

ACTION ITEMS FROM LAST MEETING
- Outstanding items with owners and due dates
- Status of each item

Format as Markdown with clear headers. Keep total length under 800 words.

API

Call Structure (Python):

import openai

response = openai.ChatCompletion.create(
    model="gpt-4-turbo-preview",
    messages=[
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": f"Generate meeting brief for:\n{json.dumps(meeting_data, indent=2)}"}
    ],
    temperature=0.3,
    max_tokens=2000
)

brief_markdown = response.choices[0].message.content

Quality Checks:

  • Brief includes all required sections
  • No hallucinated client details (validate against CRM
    data)
  • All dates formatted consistently (YYYY-MM-DD)
  • No placeholder text like "[INSERT DETAILS]"

Stage 4: Review Routing

Send the draft brief to the meeting owner for approval.

Slack Notification:

  1. Post message to meeting owner's DM or dedicated #meeting-prep channel
  2. Include brief preview (first 200 characters)
  3. Add action buttons: "Approve", "Request Changes", "View Full Brief"
  4. Set 24-hour reminder if no response

Message Template:

📋 Meeting Brief Ready for Review

Client: [Client Name]
Date: [Meeting Date] at [Time]
Attendees: [Count] people

Preview:
[First 200 chars of brief]

[Approve Button] [Request Changes] [View Full Brief]

This brief will auto-send 48 hours before the meeting unless you request changes.

Approval Workflow:

  • "Approve" → Move to Stage 5 immediately
  • "Request Changes" → Open modal for feedback, route to AI for revision, re-submit for review
  • No response after 24 hours → Send reminder, escalate to practice leader after 48 hours

Stage 5: Distribution

Deliver the approved brief to all attendees.

Internal Distribution (2 business days before meeting):

  • Email to all internal attendees with subject: "Prep Brief: [Client Name] Meeting - [Date]"
  • Attach brief as PDF (generated from Markdown using Pandoc or similar)
  • Include calendar event link for easy reference
  • CC meeting owner and engagement partner

Client Distribution (Optional, 1 business day before meeting):

  • Only if client requested agenda in advance
  • Send from meeting owner's email (not automated system)
  • Include only client-appropriate sections (remove internal prep checklist)
  • Use professional email template with firm branding

Archive Copy:

  • Save to Notion database with tags: client name, meeting date, attendees
  • Link to calendar event and CRM
    record
  • Set reminder to update with meeting outcomes after event occurs

Stage 6: Post-Meeting Update

Capture outcomes and close the loop.

Automated Follow-Up (Day after meeting):

  • Slack message to meeting owner: "Update meeting record with outcomes?"
  • Provide link to Notion page with pre-filled template
  • Template includes: decisions made, action items assigned, next steps, client feedback

Meeting Record Template:

# [Client Name] Meeting - [Date]

## Attendees
[Auto-populated from calendar]

## Decisions Made
- [Decision 1]
- [Decision 2]

## Action Items
- [ ] [Task] - Owner: [Name] - Due: [Date]
- [ ] [Task] - Owner: [Name] - Due: [Date]

## Client Feedback
[Free text]

## Next Meeting
Date: [Date]
Purpose: [Purpose]

Integration Points:

  • Action items sync to Asana/Monday.com as tasks
  • Client feedback updates CRM
    notes field
  • Next meeting auto-creates calendar event and triggers new prep cycle

Technical Requirements

Minimum Stack:

  • Zapier or Make.com (automation platform)
  • OpenAI API
    key (GPT-4 access)
  • Slack workspace with bot permissions
  • Google Workspace or Microsoft 365
  • CRM
    with API
    access (Salesforce, HubSpot, or similar)

Estimated Setup Time:

  • Initial configuration: 8-12 hours
  • Testing and refinement: 4-6 hours
  • Team training: 2 hours

Ongoing Costs:

  • Automation platform: $20-50/month
  • OpenAI API
    : $0.50-2.00 per brief (depending on context size)
  • Total per meeting: ~$2-5 all-in

Common Failure Points

Calendar trigger doesn't fire:

  • Check webhook
    endpoint is publicly accessible
  • Verify API
    credentials haven't expired
  • Confirm calendar permissions include event creation notifications

Brief contains incorrect client data:

  • CRM
    lookup failed (check API
    rate limits)
  • Multiple CRM
    records for same contact (implement deduplication logic)
  • Stale data in CRM
    (add data freshness check)

Meeting owner doesn't respond to review request:

  • Escalation path not configured (add fallback to practice leader)
  • Slack notification lost in noise (use @mention and pin message)
  • Insufficient lead time (trigger prep earlier for high-stakes meetings)

Brief not distributed on time:

  • Email delivery failed (check SMTP settings and spam filters)
  • PDF generation error (validate Markdown syntax before conversion)
  • Timezone calculation wrong (use UTC internally, convert for display)

Customization Options

Adapt this workflow for different meeting types:

New Business Pitches: Add competitive intelligence section, pull recent news about prospect company, include win themes from past successful pitches.

Project Kickoffs: Include project charter, team bios, communication protocols, escalation procedures.

Quarterly Business Reviews: Pull performance metrics from project management system, calculate ROI, generate trend charts.

Crisis Meetings: Expedite review process (30-minute SLA), include risk assessment, add legal review step if needed.

Revenue Institute

Reviewed by Revenue Institute

This guide is actively maintained and reviewed by the implementation experts at Revenue Institute. As the creators of The AI Workforce Playbook, we test and deploy these exact frameworks for professional services firms scaling without new headcount.

Revenue Institute

Need help turning this guide into reality? Revenue Institute builds and implements the AI workforce for professional services firms.

RevenueInstitute.com