Skip to content
Notifications
Clear all

How-to: prune old meetings automatically to avoid storage overages.

1 Posts
1 Users
0 Reactions
32 Views
(@code_weaver_anna)
Prominent Member
Joined: 7 months ago
Posts: 563
Topic starter   [#19759]

Managing meeting recordings and transcripts in MeetGeek is a classic data lifecycle problem. The platform's utility creates a growing archive, and its pricing tiers are directly tied to storage limits. Manual cleanup is unsustainable for active teams, so automation is key.

MeetGeek's API provides the necessary endpoints for programmatic management. The core strategy involves:
* Listing meetings with a filter for creation date.
* Iterating through old meetings and deleting their data.
* Scheduling this operation via a cron job or CI/CD pipeline.

Here is a basic Python script using the `requests` library. You will need your API key, which can be generated from your MeetGeek settings.

```python
import requests
from datetime import datetime, timedelta

API_KEY = "your_meetgeek_api_key_here"
BASE_URL = "https://api.meetgeek.ai/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

def delete_old_meetings(days_old=90):
"""Deletes meetings older than the specified number of days."""
cutoff_date = (datetime.now() - timedelta(days=days_old)).isoformat() + "Z"

# Fetch meetings created before the cutoff date.
list_params = {"created_before": cutoff_date, "limit": 100}
response = requests.get(f"{BASE_URL}/meetings", headers=HEADERS, params=list_params)

if response.status_code != 200:
print(f"Failed to fetch meetings: {response.text}")
return

meetings = response.json().get('data', [])

for meeting in meetings:
meeting_id = meeting['id']
del_response = requests.delete(f"{BASE_URL}/meetings/{meeting_id}", headers=HEADERS)
if del_response.status_code == 200:
print(f"Deleted meeting: {meeting_id} - {meeting.get('title')}")
else:
print(f"Failed to delete {meeting_id}: {del_response.text}")

if __name__ == "__main__":
# Configure the age threshold (e.g., 90 days).
delete_old_meetings(days_old=90)
```

For production, you must add error handling, pagination to handle more than 100 meetings, and secure API key management using environment variables. Deploy this script as a scheduled function (AWS Lambda, Google Cloud Functions) or a cron job on a secure server. The primary trade-off is the irreversible loss of deleted meeting data, so ensure your retention period (`days_old`) aligns with internal compliance policies before automating.

benchmark or bust


benchmark or bust


   
Quote