Grain recap queue: draft, send, and log call follow-ups
One screen your reps and CSMs open after every customer call to see what still needs a recap, draft it, send it, and file it on the CRM record.
Build me an app that my sales reps and customer success managers open after every customer call to get the recap out the door. Think of it as a recap desk, not an automation: the person opens it, works the queue, and leaves when the queue is empty.
The main view is a queue of recent Grain recordings that still have no recap sent, newest first. Build the queue from Grain List Recordings, following the cursor pagination to cover the last 30 days, and enrich each row with Grain Get Recording. Each row shows the call title, the date and duration, the external attendees, and the AI summary and highlights from Grain. Grain only returns the enrichment fields (AI summary, highlights, participants) on Business and Enterprise plans, so when they come back empty fall back to Grain Get Transcript and derive a short summary and the speaker list from the transcript, so a row is never blank.
Clicking a row opens a side panel with the full transcript from Grain Get Transcript, laid out with speaker names and timestamps and searchable within the panel, so the rep can check exactly what was said before the recap goes out.
Match each call to a person in HubSpot by attendee email. For each external attendee, try HubSpot Get Contact with idProperty set to email; if that misses, fall back to HubSpot Search Contacts on the email address and then on the email domain. Once a contact is matched, pull its company with HubSpot Get Company and its open deals with HubSpot Search Deals filtered to deals that are not closed, and show the company name plus each open deal with its stage, amount, and close date right beside the call. If nothing matches confidently, show an unmatched state with a search box that runs HubSpot Search Contacts so the rep can pin the correct contact to the call by hand.
Every row has a Draft recap button that kicks off a background agent. The agent reads the full transcript along with the Grain summary and the HubSpot context, then writes a short client-ready email in plain language covering three things: what was agreed, the open questions, and the next step with a specific date. It places the result in Gmail with Create a Draft, addressed to the external attendees on the call, and writes the draft id and the draft body back into the app so the row flips to Drafted and the body appears in an editable box in the row. Show the agent as running on that row while it works, and surface an error state on the row if it fails so the rep can retry.
The rep edits the recap inside the app. Saving edits pushes the change to Gmail with Update a Draft so the draft in their mailbox always matches what is on screen. Sending uses Gmail Send a Draft. Re-running Draft recap on a row that already has a draft should replace the existing Gmail draft rather than creating a second one.
Sending also files the same recap on the matched HubSpot contact and deal using HubSpot Create Note, associated to the contact, the company, and the open deal, so the CRM record matches what the customer actually received. The note body is the recap that was really sent, not the original generated version. Once the note is filed, the row flips to done and drops out of the default queue view, with a Sent tab where the rep can see recent sends.
Two rules shape the queue. Internal-only calls, meaning calls where every attendee uses the workspace's own email domain, are filtered out by default with a toggle to show them. And any call older than three days that still has no recap sent gets an Overdue flag with clear visual weight, with the threshold configurable in a small settings area along with the internal domain list. Add a filter for call owner so each person sees their own calls by default with a show all toggle, plus a search box over call title and matched company.
Persist per recording: the status (needs recap, drafting, drafted, sent), the Gmail draft id, the generated body and the edited body, the matched HubSpot contact, company and deal ids, the sent timestamp, and who sent it. The status is shared across the team so two people never send the same customer two recaps, and the queue is correct the moment someone reopens the app.
What does this prompt do?
- Shows a queue of your recent customer calls that still have no recap sent, newest first, with the call title, who was on it, and the summary and highlights from the recording
- Puts the customer context right next to the call: the matched CRM contact, their company, and any open deals, plus the full transcript in a side panel
- Writes the recap for you when you hit Draft recap, covering what was agreed, the open questions, and the next step with a date, and leaves it in your email drafts to review
- Lets you edit the draft in the app and send it, then files the same recap on the customer's CRM contact and deal so the record matches what they actually received
- Hides internal-only calls by default and flags anything older than a few days as overdue so nothing quietly slips
What do I need to use this?
- A Grain account that records your customer calls
- A Gmail account for the reps and CSMs who will send the recaps
- A HubSpot login with access to contacts, companies, and deals
- Optional: a Grain Business or Enterprise plan for AI summaries and highlights. On other plans the app works from the transcript instead
How can I customize it?
- Change how many days a call can sit before it gets flagged as overdue
- Adjust the recap email structure and tone, for example adding a recap of pricing discussed or dropping the open questions section
- Decide where the recap gets filed in the CRM, on the contact only or on the contact and the open deal
- Set which email domains count as internal so the right calls stay out of the queue
FAQs
Will it email customers without me seeing it first?
Do I need a paid Grain plan for this to work?
How does it know which customer a call belongs to?
What counts as an internal call?
Can a whole team work out of the same queue?
Related templates
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
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.
Open one board each morning to see which of your accounts are hiring, what they are building, and where your product fits the roles they just opened.
See who is due, build a week of dinners on demand, swap anything you do not like, then send the recipe and grocery links yourself.
Open a live deal, see the market pay range for that role and city, set your markup, and write the agreed numbers straight back onto the deal.
Stop letting call recaps pile up for days.
Give your reps and CSMs one screen that turns every finished call into a sent recap and a clean CRM record.