Weekly Grain call tracker in Google Sheets with a Slack roll-up

By General Input

Every Friday at 4pm, log the week's Grain customer calls to a Google Sheet and post a totals roll-up with the top five longest calls to Slack.

Integrations

  • Grain
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Sales
  • Operations

Build me a weekly customer-call tracker that runs every Friday at 4pm. Trigger: cron, weekly on Friday at 16:00 in the team's local timezone.

Step 1. Call Grain's List Recordings, filtered to the past 7 days. Paginate fully using the cursor field on the response so no calls are missed.

Step 2. For each recording from step 1, call Grain's Get Recording with the participants and AI summary enrichment so we have the AI summary text, list of participants, duration, and the public share URL.

Step 3. For each recording, append one row to a Google Sheets tracker using Append Values. The spreadsheet ID and tab name should be inputs the user configures. Columns in order: date (the recording start time, ISO date), meeting title, internal owner (the participant whose email matches the team's domain, default the first internal participant), external attendees (comma-separated names), external company (derived from the email domain of the first external attendee, skip generic domains like gmail.com, outlook.com, yahoo.com, icloud.com), duration in minutes (rounded), summary URL (the Grain share URL), and AI summary text.

Step 4. After every row is written, send a Slack roll-up using Slack's Send a Message to a channel the user configures. The message should include: total number of calls this week, total hours of customer calls (sum of durations, rounded to one decimal), the top 5 longest calls as a bulleted list with title, duration, and a clickable link to the Grain summary URL, and a final line linking to the tracker spreadsheet.

Treat this as a deterministic code workflow with discrete nodes. There is no per-call drafting, classification, or LLM step required. Every action is a documented CRUD or list operation. If a recording is missing a summary or participant data, still write the row with the available fields and leave the missing cells blank rather than failing the run.

Inputs the user should configure at setup: the team's email domain (used to identify internal vs. external attendees), the Google Sheets spreadsheet ID and tab name, and the Slack channel for the roll-up.

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 boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats