Weekly Otter.ai meeting volume report

By General Input

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.

Integrations

  • Otter.ai
  • Google Sheets
  • Gmail

Type

Deterministic Code

Categories

  • Operations
  • Personal Productivity

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to Loops