The QBR template
Five sections, same order every quarter, two pages. The customer's goals lead. Use it as the outline for a human-built QBR, or save it as templates/qbr.md and let the agent fill it from the CRM, the calls, the tickets, and the usage export.
- each goal the customer stated, in their words, with the date and who said it
- status: achieved / on track / at risk / no data
- the evidence: a metric and its source, and a direct quote where one exists
- weekly active users vs seats purchased, and the trend across the quarter
- top 3 features used; features purchased and unused
- named power users; named or counted silent seats
- ticket volume and severity trend; anything open > 14 days, by number
- sentiment shifts in calls, cited by call and date
- champion or sponsor changes; renewal date and days remaining
- use cases the customer mentioned and has not bought, with the quote
- adjacent teams to current users
- purchased-but-unused modules to adopt before any add-on conversation
- what we need from them: sponsor, reference, case study, data
- what they have asked us for, and its status
- next QBR date and the one goal to add
- every claim cites a source: (call, date), (ticket #), (usage, week), (CRM field)
- 'unknown' is allowed; estimates are not
- two pages; send it to the customer three days before the meeting
If you keep only one rule, keep the first section. A QBR that opens with the customer's goals in the customer's words is a different meeting from one that opens with your logo.
The stack
- Per account
- one run over a quarter of calls, tickets, and usage, a dollar or two on a mid-tier model
- Per quarter
- a book of 30 accounts for the price of a lunch
- CRM + call recorder
- free over MCP; tickets and usage as CSV exports
- The saving
- roughly a day of assembly per account, now twenty minutes of editing
The problem
Ask a customer success manager what a QBR costs and they will tell you about the deck. A day, sometimes two, per account: pulling usage numbers from one tool, contract terms from another, scrolling three months of call notes to remember what the customer said they cared about in January, and then laying it all out in slides that the customer will look at once. Multiply by a book of thirty accounts and the QBR season eats a month.
The deck itself is the second problem. Most QBR decks open with the vendor's logo, a 'partnership overview', and an update on the vendor's roadmap, and reach the customer's actual business around slide nine. I watched a CSM spend a full day on a beautiful deck for a $200k account and the customer's VP dropped off the call after slide three, because nothing in the first three slides was about her. The prep was expensive and the meeting was worse for it.
The information for a good QBR exists. Goals were logged at kickoff. The call recorder has every conversation. Support has every ticket. The product has usage data. Nobody has time to assemble it per account, so the QBR runs on whatever the CSM remembers, and what the CSM remembers is the last call and the loudest complaint.
A Claude agent assembles it. It reads the CRM for the goals and the contract, the call transcripts for what the customer said and who said it, the tickets for friction, the usage export for adoption, and fills a fixed five-section template: outcomes against goals, adoption, risks, expansion, asks. Every line cites its source. The CSM gets a draft ten days out, edits the judgment sections for twenty minutes, and runs the QBR from a two-page brief the customer can read in advance. The deck, if anyone still wants one, is an outline the agent also writes.
How it works
- 01 Fire 10 days out Claude Code (scheduled)per QBR date in the CRM
- 02 Read the account HubSpot (MCP)goals, contract, renewal, opps
- 03 Read the calls Gong / Fireflies (MCP)quotes, asks, attendees
- 04 Read tickets + usage CSV exportsfriction and adoption
- 05 Fill the template Claude5 sections, every claim cited
- 06 CSM edits Slack thread20 minutes on expansion + asks
- 07 Send ahead Email / Docthe customer reads it before the call
- Ten days before each QBR date in the CRM, a scheduled Claude Code job runs for that account
- It reads the CRM over MCP: contract terms, renewal date, the goals logged at kickoff, open opportunities, account team
- It reads every call with the account this quarter over the call recorder's MCP: asks, complaints, commitments, attendees
- It reads the support ticket history and the product usage export you drop in as files
- It fills the fixed QBR template: outcomes vs goals, adoption, risks, expansion, asks, with a citation on every claim and 'unknown' where the data is missing
- It posts the draft brief and a deck outline to the account's Slack thread; the CSM edits the judgment sections and sends the brief to the customer ahead of the meeting
See it run
The playbook
Fix the template, and put the customer's goals first
The template is the product. Five sections, same order every quarter, and the first one is about the customer: the goals they stated at kickoff (or last QBR) and where each one stands, with the evidence. Then adoption, meaning who is using what, against the seats they bought. Then risks: friction in tickets, sentiment shifts in calls, a champion who changed roles. Then expansion, the use cases they mentioned and have not bought. Then asks, both directions: what you need from them, what they need from you. The QBR template below is the shape; most teams keep all five sections and rewrite the prompts under each.
Get the goals into the CRM if they are not there. A QBR without stated goals is a usage report, and a usage report is what the customer's VP skips. Add a 'Success goals' property to the company or the deal, ask the CSM to fill it at kickoff in the customer's words, and the agent has the spine of every future QBR.
Decide the length now. Two pages of brief, one page of appendix. If the agent writes eight pages, the CSM will not edit it and the customer will not read it. The template should say the word count per section and the agent should hit it.
TipWrite the goals in the customer's own words, from the kickoff transcript. 'Cut time-to-first-response under 4 hours' is a QBR headline. 'Improve support efficiency' is a slide nobody remembers.
Connect the sources over MCP, read-only
Connect HubSpot or Salesforce for the account record, contract, goals, renewal date, and open opportunities. Connect Gong or Fireflies so the agent can pull every call with the account's domain this quarter, with transcripts and attendees. Both are read-only for this play; the agent writes a document, never a record.
Support tickets and product usage are the two sources that rarely have a connector you control. Export them: a ticket CSV filtered to the account and the quarter, a usage CSV with active users, feature usage, and logins by week. Drop both into the run's folder. The agent reads files as easily as connectors, and a CSV export is a five-minute job that most support and product tools automate.
Give it the seat count and the contract value from the CRM explicitly. Adoption is a ratio, active users over seats purchased, and the agent should compute it rather than describe it.
- Reads: account, contract (ARR, seats, term, renewal date), success goals, open opportunities, account team
- Reads: all calls with the account this quarter: transcript, attendees, date
- Reads: ticket export (subject, priority, opened, resolved, CSAT if any)
- Reads: usage export (weekly active users, feature usage, logins by user)
- Writes: one brief (Markdown or Doc), one deck outline, one Slack post. Never a CRM record
Write the brief so every claim carries a source
The brief is the template turned into instructions plus the evidence rule: every claim in the brief cites where it came from, a call and date, a ticket number, a usage figure and week, a CRM field. A QBR built on cited facts survives the customer's skeptical CFO; one built on 'you seem to be getting value' does not. Where the data is missing, the agent writes 'unknown' and says what would fill it. An honest 'unknown' in the adoption section is more useful than a confident guess.
Tell it to quote the customer. The most persuasive line in a QBR is the customer's own VP saying, on the January call, 'if we could get onboarding under a week this would pay for itself.' The agent has the transcript; the brief should carry the quote, the speaker, and the date, so the CSM can open the QBR with the customer's words and the progress against them.
Separate what the agent asserts from what the CSM decides. Outcomes, adoption, and the raw risk signals are assembly; the agent does them. The expansion angle and the asks are judgment; the agent drafts them as options and marks them for the CSM to choose. The brief should make that boundary visible with a 'CSM to confirm' tag.
Prepare the QBR brief for {{ACCOUNT}} covering {{QUARTER}}. QBR date: {{QBR_DATE}}.
Read:
- {{CRM}}: the company record, contract (ARR, seats, term, renewal date), the 'Success goals' property, open opportunities, account team.
- {{CALL_RECORDER}}: every call with domain {{ACCOUNT_DOMAIN}} between {{QUARTER_START}} and today. Transcript, attendees, date.
- files/tickets.csv and files/usage.csv in this folder.
Write qbr/{{ACCOUNT}}-{{QUARTER}}.md using the template in templates/qbr.md, five sections in this order and these lengths:
1. OUTCOMES VS GOALS (max 250 words): each stated goal, status (achieved / on track / at risk / no data), the evidence, and a direct customer quote with speaker and date where one exists.
2. ADOPTION (max 150 words + one table): weekly active users vs seats purchased, trend over the quarter, top 3 features used, features purchased and unused, named power users and named silent seats.
3. RISKS (max 200 words): ticket volume and severity trend, any ticket open > 14 days, sentiment shifts in calls, champion or sponsor changes, renewal date and days remaining. Cite ticket numbers and call dates.
4. EXPANSION (max 150 words, tag 'CSM to confirm'): use cases the customer mentioned on calls and has not bought, teams adjacent to current users, the quote that supports each.
5. ASKS (max 100 words, tag 'CSM to confirm'): what we need from them (exec sponsor, case study, reference, data), what they have asked us for and its status.
Then write qbr/{{ACCOUNT}}-{{QUARTER}}-deck.md: a 6-slide outline, one line per slide, customer's goals on slide 1.
Rules:
- Every claim cites a source: (call, date), (ticket #), (usage, week), or (CRM field). No uncited claims.
- Where data is missing write 'unknown' and name what would fill it. Never estimate adoption.
- Quote the customer verbatim where it helps; always attribute.
- Read only. Write nothing to the CRM or the call recorder.
- Post a link to both files in the account's Slack thread #{{ACCOUNT_CHANNEL}} with the three most important lines.
TipCap every section's word count in the brief. The agent will fill the space you give it, and the customer's VP will read two pages, not eight.
Run it ten days out, per account, on a schedule
Set the job to fire ten days before each QBR date in the CRM, as a scheduled Claude Code job that reads the upcoming QBR dates weekly and runs the brief for each account inside the window. Ten days leaves the CSM time to edit, send the brief to the customer a few days ahead, and adjust when the customer replies with the thing they actually want to talk about, which happens more often once they have a document in hand.
Run the first three by hand, with the CSM who owns the accounts. Read the outcomes section against what they remember; where the agent missed a goal or over-read a call, the fix is a line in the template or a missing field in the CRM. The usual discovery is that the goals were never logged, and the fix is a kickoff habit, not a prompt.
For a book of thirty accounts, the run costs a few dollars a quarter and replaces roughly a day of assembly per account. The CSM's day goes to the twenty minutes of judgment and the meeting itself.
The CSM edits the judgment, then sends the brief ahead
The draft lands in the account's Slack thread with the three most important lines up top: the goal most at risk, the adoption ratio, the days to renewal. The CSM reads the outcomes and adoption sections for accuracy, which takes five minutes because every line has a source to click, and then spends real attention on expansion and asks, the two sections tagged 'CSM to confirm'. Choosing which expansion angle to lead with, and what to ask for, is the job. The assembly around it was never the job; it just took the day.
Send the brief to the customer three days before the QBR. A two-page document the customer reads in advance changes the meeting: they arrive with reactions instead of waiting for slides, the VP stays because page one is her goals, and the forty minutes go to the risks and the expansion conversation. The deck outline exists for the teams that still want slides on the screen; it is six slides and the customer's goals are on the first one.
Keep the brief as the record. Next quarter's run reads this quarter's brief and the CRM, and the outcomes section becomes a trend: goal one achieved in Q2, goal two still at risk, a new goal added in Q3. Three briefs in, the account has a written history that a new CSM can read in ten minutes, which is the part of this play that outlasts any single QBR.
TipSend the brief before the meeting. A QBR the customer has already read starts at the conversation, and the VP who dropped off after slide three stays because page one is about her.
Calibrate the template against what the meeting used
After a quarter of QBRs, ask the CSMs which sections the customers engaged with and which they skipped. Outcomes and risks almost always earn their place. Adoption tables sometimes need to shrink to one line. Expansion is the section that varies most, because it depends on how the agent reads the calls, and the fix is usually sharper instructions about what counts as an expansion signal.
Watch for the agent over-reading sentiment. A customer venting on one call about a bug is a ticket, not a churn risk; the brief should cite the call and the ticket and let the CSM decide the weight. If the risks section reads like an alarm every quarter, tighten the definitions, the way the churn risk brief does with a scorecard.
Every quarter, compare the goals section across the book. The accounts where goals were never logged are the accounts running a usage report instead of a QBR, and that list is the kickoff coaching agenda for the CS team.
Inside the prompt
The scoring prompt is short, but every line is there for a reason. Here is what each one is doing and why.
- Goals from the CRM"the 'Success goals' property"
- The spine of the brief. If it is empty, the run tells you, and the fix is a kickoff habit.
- Fixed order, fixed lengths"five sections in this order and these lengths"
- Same shape every quarter, two pages total. The customer learns to read it; the CSM learns to edit it fast.
- Cite everything"(call, date), (ticket #), (usage, week), or (CRM field)"
- A cited brief survives a skeptical CFO. An uncited one is a vendor saying nice things about itself.
- Unknown is allowed"write 'unknown' and name what would fill it"
- An honest gap in adoption beats a confident guess, and it tells the CSM which export to chase.
- Quote the customer"Quote the customer verbatim where it helps; always attribute"
- The most persuasive line in any QBR is the customer's own VP, dated.
- CSM to confirm"tag 'CSM to confirm'" on expansion and asks
- Assembly is the agent's job; judgment is the CSM's. The tag makes the boundary visible in the draft.
What you get
The first section of the draft brief, as it lands in the account thread. The customer's goals lead, every claim cites a source, and the judgment sections carry a 'CSM to confirm' tag.
QBR BRIEF · Halden Payments · Q3 2026 · QBR Sep 24 · renews Dec 15 (102 days)
1. OUTCOMES VS GOALS
Goal 1: "Get first-response time under 4 hours for tier-1 tickets" (VP Ops, kickoff call, Jan 14)
Status: ACHIEVED. Median first response 2h 40m in Aug vs 6h 10m in Jan (usage export, wk 33-35). Head of Support, Aug 19 call: "the queue finally looks like a queue and not a backlog."
Goal 2: "Roll out to the EMEA team by end of Q3" (VP Ops, Jan 14)
Status: AT RISK. 0 of 12 EMEA seats active (usage, wk 35). Blocked on SSO ticket #4471, open 19 days, escalated Aug 28. Head of Support, Sep 2 call: "we can't ask London to log in with a second password."
Goal 3: "Replace the weekly ops spreadsheet with the Analytics module" (added Q2 QBR, May 20)
Status: NO DATA on the spreadsheet; Analytics module has 2 active users of 40 (usage, wk 35). Not mentioned on any Q3 call.
2. ADOPTION
31 of 40 seats weekly active (78%), up from 24 (60%) in July. Top features: ticket routing, macros, SLA view. Purchased and unused: Analytics (2 users), API access (0 calls). Power users: D. Ruiz, S. Okafor, M. Chen. Silent seats: 9, of which 12 EMEA seats are unprovisioned (see Goal 2).
3. RISKS
- SSO blocker #4471 (19 days) gates the EMEA rollout and Goal 2. Renewal is 102 days out; the EMEA seats are 30% of the contract.
- Export ticket #4502 open 16 days, reported by a power user.
- Sentiment: positive on support outcomes (Aug 19), frustrated on SSO (Sep 2). No champion change; VP Ops attended 3 of 7 calls.
4. EXPANSION [CSM to confirm]
- Analytics adoption before any add-on conversation; the $18k Analytics opp is open but 2 users are using the module.
- Head of Support, Jul 22: "the billing team keeps asking if they can have a queue like ours." Adjacent team, ~15 seats, not yet discussed.
5. ASKS [CSM to confirm]
- From us: SSO fix date in writing before Sep 24; Analytics enablement session for the ops team.
- From them: intro to the billing team lead; a reference call in Q4 if Goal 2 lands.
(Deck outline: 6 slides, Goal 1-3 status on slide 1.)
- the goalcustomer's words, VP Ops, kickoff Jan 14
- Pulled from the 'Success goals' CRM property, logged from the kickoff transcript. Page one is about them because this line exists.
- statusAT RISK
- One of four allowed values. 'No data' is allowed too, and the agent uses it rather than estimating.
- evidence0 of 12 EMEA seats active (usage, wk 35)
- A figure and a week from the export. The CFO can check it; the CSM does not have to defend it.
- the blockerticket #4471, open 19 days
- Cross-referenced from the ticket export. The risk section carries the same ticket, so the story is consistent.
- the quote"we can't ask London to log in with a second password" (Sep 2)
- Verbatim, attributed, dated. The CSM opens the risk conversation with the customer's own sentence.
- what it changesthe first ask: an SSO fix date in writing
- The asks section is tagged 'CSM to confirm', but the evidence made the first ask obvious.
Pitfalls to avoid
Opening with your logo and your roadmapThe customer's goals go first, in their words, or the VP drops off after slide three. The template exists to force that order every quarter.
Goals that were never loggedWithout stated goals the QBR is a usage report. Add a 'Success goals' property, fill it at kickoff from the transcript, and the agent has the spine of every future brief.
Uncited claims'You're getting great value' survives no CFO. Every line cites a call and date, a ticket number, a usage figure, or a CRM field, and the agent writes 'unknown' where it has nothing.
Letting the agent decide the asksAssembly is the agent's job; the expansion angle and the asks are the CSM's. Tag those sections 'CSM to confirm' and make the CSM choose.
Eight pagesCap every section's word count in the brief. Two pages the customer reads in advance beats eight the CSM never finished editing.
Over-reading one bad callA customer venting about a bug is a ticket, not a churn signal. The brief cites the call and the ticket and leaves the weight to the CSM; the churn risk scorecard is the play for scoring it.
Questions people ask
- What should a QBR template include?
- Five sections, in this order: the customer's stated goals and where each stands, adoption (active users against seats, features used and unused), risks (tickets, sentiment, champion changes, renewal timing), expansion (use cases they mentioned and have not bought), and asks in both directions. Two pages. The customer's goals go first, in their words. The template on this page is the one I use.
- Where does the agent get the customer's goals?
- From a 'Success goals' property in the CRM, filled at kickoff from the transcript in the customer's own words. If your CRM does not have it, add it; a QBR without stated goals is a usage report, and the agent will tell you which accounts are missing them.
- Does it need Gong or Fireflies?
- It needs the calls. Gong and Fireflies both have MCP connectors that let the agent pull every call with the account's domain, with transcripts and attendees, which is where the customer quotes and the sentiment come from. Without a call recorder, the agent works from CRM notes, and the brief is thinner.
- What about support tickets and usage data?
- Export them as CSVs filtered to the account and the quarter and drop them in the run's folder. Most support and product tools automate the export. The agent reads files as easily as connectors, and this avoids waiting for a connector you may never get.
- Does it write anything to the CRM?
- No. It reads the CRM and the call recorder, and writes two files, the brief and a deck outline, plus a Slack post. Keeping it read-only is what makes it safe to schedule across a whole book of accounts.
- Should we still make a deck?
- Send the two-page brief before the meeting; that is the change that matters. The agent also writes a six-slide outline, goals on slide one, for teams that want something on the screen. What you stop making is the twenty-two-slide deck with your roadmap on slide four.
- How long does it take to set up?
- An afternoon: an hour to fix the template with the CS lead, an hour to write the brief and connect the sources, and three manual runs with a CSM to catch the missing goals and the over-read calls. From then on it runs ten days before each QBR date in the CRM.
Related plays
- Quarterly Business Review Template, Written as a Document by a Claude Skill →The skill that assembles the QBR narrative from the data this play collects.
- Churn Risk Briefs from a Weekly Claude Agent →The scorecard that weights the risk signals this brief surfaces.
- Post-Call Follow-Up + CRM Note →The play that keeps the call notes the QBR reads from.
- Claude + Gong integration guide →Reading a quarter of calls over MCP.
- Claude + Fireflies integration guide →The same read for Fireflies shops.
- Claude + HubSpot integration guide →Goals, contract, and renewal date from the CRM.