Weekly Grain call tracker in Google Sheets with a Slack roll-up
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.
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.
What does this prompt do?
- Pulls every Grain recording from the past seven days, including AI summary, participants, length, and share link.
- Appends one tidy row per call to a Google Sheets tracker with date, title, internal owner, external attendees, company, duration, summary, and link.
- Posts a Friday afternoon Slack roll-up with total calls, total hours on customer calls, the five longest calls of the week, and a link to the full sheet.
- Runs on a fixed Friday 4pm schedule so the team starts every weekend with a clean record of the week.
What do I need to use this?
- A Grain account with API access (Business or Enterprise plans expose participants and AI summaries).
- A Google account with edit access to the tracker spreadsheet.
- A Slack workspace and the channel you want the Friday roll-up posted in.
How can I customize it?
- Change the schedule (daily, every Monday morning, or end of the month) or the channel that receives the roll-up.
- Edit the spreadsheet columns to match how your team slices calls, like account owner, stage, or product line.
- Tweak the roll-up content, for example the number of longest calls highlighted or the inclusion of new logos versus existing customers.
FAQs
Do I need a paid Grain plan?
Where does the company name come from?
Can I send the roll-up somewhere other than Slack?
What happens if a call is missing a summary?
Will it create duplicate rows if the workflow runs twice?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.
Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.
Stop rebuilding your call log from memory every Friday.
Connect Grain, Google Sheets, and Slack once, and Geni delivers a clean weekly customer-call tracker before the weekend starts.