Skip to content

amplitude/gsuite-meeting-heatmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GSuite Meeting Heatmap

A Python tool for analyzing meeting patterns and collaboration across engineering teams using Google Workspace data.

Overview

This tool gathers meeting data from Google Workspace (GSuite) to analyze:

  • Meeting frequency and duration patterns
  • Cross-functional collaboration between Engineering, Product, and Design teams
  • Meeting categorization (1:1s, standups, reviews, etc.)
  • Organizational meeting load across different team levels

Key Features

  • Team Categorization: Analyzes meetings by department (Engineering, Product, Design)
  • Meeting Type Analysis: Categorizes meetings as:
    • Engineering Internal
    • Engineering + Design
    • Engineering + Product
    • Engineering + Product + Design (Full Triad)
    • External/Cross-functional meetings
  • Organizational Hierarchy: Maps attendees to teams and reporting structures
  • Meeting Pattern Detection: Identifies recurring meetings, 1:1s, standups, etc.

Prerequisites

Google Cloud Setup

  1. Create a Google Cloud project
  2. Enable the Admin SDK and Calendar API
  3. Create a service account and download its JSON key
  4. Grant Domain-Wide Delegation to the service account
  5. Authorize the following OAuth scopes in Google Workspace Admin:
    • https://www.googleapis.com/auth/admin.directory.group.readonly
    • https://www.googleapis.com/auth/admin.directory.group.member.readonly
    • https://www.googleapis.com/auth/admin.directory.user.readonly
    • https://www.googleapis.com/auth/calendar.readonly

Python Dependencies

pip install google-api-python-client google-auth python-dateutil pandas

Usage

Basic Command

python meeting_data_gather.py \
    --service_account_key path/to/service-account-key.json \
    --admin_user your_admin_email@company.com \
    --group eng@company.com \
    --output_csv meeting_analysis.csv \
    --org_chart_csv org_chart.csv \
    --weeks_back 8

Custom Date Range

python meeting_data_gather.py \
    --service_account_key path/to/service-account-key.json \
    --admin_user your_admin_email@company.com \
    --group eng@company.com \
    --output_csv meeting_analysis.csv \
    --org_chart_csv org_chart.csv \
    --start_date 2024-01-01 \
    --end_date 2024-01-31

Parameters

  • --service_account_key: Path to your Google Cloud service account JSON key
  • --admin_user: Google Workspace admin email for impersonation
  • --group: Google Group email containing users to analyze
  • --output_csv: Output CSV file path
  • --org_chart_csv: Organizational chart CSV file path
  • --weeks_back: Number of weeks to look back from now (default: 8)
  • --start_date: Start date for analysis in YYYY-MM-DD format (overrides --weeks_back)
  • --end_date: End date for analysis in YYYY-MM-DD format (defaults to today if --start_date is provided)

Organizational Chart Format

The org chart CSV should contain these columns:

  • email: Employee email address
  • team_name: Direct team name
  • parent_team: Parent team name
  • grandparent_team: Top-level department
  • exclude_from_snapshot: Boolean flag for exclusion

Output

The tool generates a CSV with the following columns:

  • person: Employee email
  • title_category: Job level (IC, Manager, Director, C-Suite)
  • event_name: Meeting title
  • date: Meeting date
  • time: Meeting start time
  • length_minutes: Meeting duration
  • recurring_frequency: Recurrence pattern
  • is_recurring: Boolean flag for recurring meetings
  • category: Meeting purpose/format (standup, 1:1, review, etc.)
  • collaboration_type: Department composition (Engineering Internal, Eng+Design, etc.)

Meeting Categorization

The tool provides two types of meeting categorization:

Meeting Purpose/Format (category)

  • one_on_one: 1:1 meetings
  • standup: Daily standups
  • planning: Sprint planning, poker sessions
  • demo_review: Reviews, retrospectives, demos
  • interview: Interviews and screening calls
  • focus_time: Blocked focus time
  • large_group_meeting: Meetings with 6+ attendees
  • group_meeting: General group meetings

Department Collaboration (collaboration_type)

  • Engineering Internal: Only Engineering attendees
  • Engineering + Design: Engineering and Design collaboration
  • Engineering + Product: Engineering and Product collaboration
  • Engineering + Product + Design: Full triad meetings
  • Engineering + Cross-functional: Engineering with 3+ departments
  • External Meeting: Only external attendees
  • Personal Event: Single attendee events

Data Analysis

The output CSV can be used for:

  • Identifying meeting overload across teams
  • Understanding cross-functional collaboration patterns
  • Optimizing meeting schedules for maker time
  • Analyzing recurring meeting efficiency
  • Planning team communication strategies

Security Notes

  • The .gitignore file excludes all JSON files to prevent credential leaks
  • Store service account keys securely and never commit them to version control
  • Use least-privilege access when setting up service accounts
  • Regularly rotate service account keys

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is for internal use. Please ensure compliance with your organization's data handling policies.

About

Python tool to analyze Google Workspace meeting collaboration patterns using organizational chart data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages