Weekly Otter.ai meeting volume report

Every Monday morning, get a digest of last week's recorded meetings with totals by host and day, plus a running log in Google Sheets.

Deterministic Code
Otter.aiGoogle SheetsGmailOperationsPersonal ProductivityDaily DigestsMeeting WorkflowsEmail Automation
PromptCreate

Build me a deterministic, code-based workflow that runs on a cron trigger every Monday at 8:00 AM America/New_York and produces a weekly meeting volume report from Otter.ai. No LLM reasoning, no drafted prose — this is a pure aggregation and distribution job.

Step 1: Pull last week's conversations from Otter.ai. Compute a date window for the previous 7 days in America/New_York (the most recent Monday 00:00 ET through the following Monday 00:00 ET, i.e. the week that just ended). Call Otter.ai List Workspace Conversations with cursor-based pagination. Keep calling with the next cursor until the response no longer returns one, accumulating every conversation. Then filter the accumulated list to conversations whose created/start time falls inside the 7-day window. Otter returns newest first, so you can short-circuit pagination once you see a conversation older than the window's start.

Step 2: Compute aggregates from the filtered list. Calculate: total number of meetings, total minutes recorded, meetings per host (host display name → count), and meetings per day-of-week (Mon–Sun → count). Sort the per-host table by count descending and keep the top 10 plus an "Other" bucket.

Step 3: Append one row per meeting to a Google Sheet using Google Sheets Append Values. The target spreadsheet ID, sheet/tab name, and header row should be inputs to the workflow with sensible defaults. Columns, in order: Date (YYYY-MM-DD in ET), Title, Host, Duration (minutes, integer), Conversation Link (https URL to the Otter conversation). Use USER_ENTERED value input so dates and links render nicely. Append all rows in a single call (one batch of values), not one call per meeting.

Step 4: Send the digest with Gmail Send a Message. Recipients (To and optional CC) are workflow inputs — accept a comma-separated list. Subject should be: "Weekly meeting volume — {start_date} to {end_date}" (dates formatted as e.g. Jun 23 – Jun 29). Body is a static HTML template populated with the numeric aggregates, not LLM-drafted prose. Include: headline (total meetings, total hours recorded), a small table of meetings per host (top 10 + Other), a small table of meetings per day of week, and a link to the Google Sheet log. Send as multipart with both an HTML part and a plain-text fallback. The from address is the connected Gmail account.

Inputs the user should fill in when configuring the workflow: Google Sheets spreadsheet ID, sheet/tab name (default "Meeting Log"), digest recipient list (To), optional CC list, and an optional override for the timezone (default America/New_York).

Edge cases to handle gracefully: if the week had zero meetings, still send the email with "0 meetings recorded this week" and skip the sheet append. If the Otter API returns 429, back off and retry with exponential delay. If Google Sheets or Gmail fails, surface the error in the workflow run so the operator can re-run it.

Additional information

What does this prompt do?
  • Pulls every Otter.ai conversation your workspace recorded in the last 7 days.
  • Counts total meetings, meetings per host, and meetings per day of the week.
  • Appends one row per meeting to a Google Sheet so you have a permanent, searchable log.
  • Emails a clean digest to your leadership list every Monday at 8am ET with the headline numbers and a link to the sheet.
What do I need to use this?
  • An Otter.ai Enterprise workspace with Public API access enabled (request from your Otter account manager).
  • A Google account with access to the Sheet where the meeting log lives.
  • A Gmail account to send the weekly digest from, plus the recipient list you want to email.
How can I customize it?
  • Change the schedule. Pick a different day, time, or time zone (for example, Friday afternoon recaps instead of Monday morning).
  • Adjust the recipient list. Send the digest to a single exec, a department alias, or a wider all-hands list.
  • Swap the destination sheet. Point the log at any Google Sheet you already use for ops reporting and rename the columns to match your team's vocabulary.

Frequently asked questions

Do I need an Otter.ai Enterprise plan?
Yes. Otter's Public API is only available on Enterprise workspaces, and you have to ask your Otter account manager to turn it on. Once it's enabled, you generate an API token from your workspace admin settings.
Will this miss meetings if my team records a lot of conversations?
No. The workflow keeps fetching pages of conversations until it has every meeting from the last 7 days, so a busy week with hundreds of recordings is handled the same as a quiet one.
Can I send the digest somewhere other than email?
Yes. The default is a Gmail digest, but you can adapt the workflow to post the summary in Slack, drop it in a Notion page, or write it to any other tool you already use for team updates.
Does the report use AI to write a narrative summary?
No. This workflow is intentionally deterministic. It only reports counts and aggregates, so the same input data always produces the same numbers. If you want a written narrative on top, you can add an AI step that reads the sheet.
How do I change which columns show up in the Google Sheet?
The default columns are date, title, host, duration, and a link to the conversation in Otter. You can add or remove columns by editing the workflow's append step and the matching header row in your sheet.

Stop counting meetings by hand every Monday.

Connect Otter.ai, Google Sheets, and Gmail once, and Geni runs this report every Monday at 8am ET.