GUIDE

Build a QBR Prep Automation with Claude Code

CSMs spend 2-3 hours prepping each QBR. Build a tool with Claude Code that pulls usage data, support tickets, and renewal info, then generates a QBR one-pager in 30 seconds.

QBR prep is one of the most time-consuming rituals in Customer Success. Your CSMs spend 2-3 hours before every single Quarterly Business Review pulling the same data from the same places, formatting the same slides, and writing the same "key highlights" section. Multiply that by 10 QBRs per quarter across a team of 18 CSMs, and you're burning 360 hours per year on copy-paste busywork.

That's 9 full work weeks. Gone. Every year.

I've taught over 100 people to use Claude Code, and the CS leaders in my classes always have the same reaction: "Wait, I can build this myself?" Yes. You can. And it takes an afternoon, not a quarter-long IT project.

What You're Actually Building

The QBR automation is a script (or small app) that does everything your CSMs do manually, but in about 30 seconds:

  • Pulls usage data from your product analytics (Mixpanel, Amplitude, Pendo, or your own database)
  • Grabs support ticket summaries from Zendesk, Intercom, or whatever your team uses
  • Fetches renewal dates and contract details from your CRM (Salesforce, HubSpot)
  • Calculates key metrics: adoption rate, active users, feature usage trends, time-to-value
  • Generates a QBR outline: a structured one-pager or slide deck outline ready for the CSM to personalize

The output is a document your CSM can skim in 5 minutes, tweak with account-specific context, and walk into the meeting with. Instead of 2-3 hours of prep, they spend 15 minutes adding their personal touch.

The Data Sources

Every CS team's stack is different, but the pattern is the same. You're pulling from 3-4 systems. Here's what a typical setup looks like:

  • Product usage: Your analytics platform or directly from your database. You want monthly active users, feature adoption rates, login frequency, and any usage trends (up or down).
  • Support tickets: Zendesk or Intercom API. Pull ticket count, average resolution time, any open escalations, and the top 3 topics by volume.
  • CRM data: Salesforce or HubSpot. Contract value, renewal date, expansion opportunities, stakeholder contacts, and any notes from the last QBR.
  • NPS/CSAT: Delighted, Wootric, or your survey tool. Latest score, trend over the last 4 quarters, and any verbatim comments worth highlighting.

The Exact Claude Code Workflow

Here's how you build this. You don't need to be an engineer. You need to know what data you want and where it lives.

Step 1: Set up the project

Open your terminal and start Claude Code. Tell it what you're building:

I want to build a QBR prep automation tool. It should:
1. Accept a customer account ID as input
2. Pull usage metrics from our PostgreSQL database
3. Pull support ticket data from the Zendesk API
4. Pull contract info from HubSpot API
5. Generate a formatted QBR one-pager as a markdown file

Start by setting up a TypeScript project with the necessary
API client libraries.

Claude Code will scaffold the project, install dependencies, and create the file structure. This takes about 2 minutes.

Step 2: Connect your data sources

Feed Claude your API credentials (stored in environment variables, never hardcoded) and describe the data schema. If you have API docs, point Claude at them:

Here's our database schema for the usage_events table:
- account_id (string)
- event_name (string)
- event_timestamp (datetime)
- user_id (string)

And here's the Zendesk API docs for listing tickets:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/

Pull tickets where the organization matches the account_id.

Claude will write the data-fetching functions, handle pagination, and build the queries. You review the output and adjust. This is where plan mode shines: have Claude outline its approach before it starts writing code.

Step 3: Define the QBR template

This is the part where your CS expertise matters. Tell Claude exactly what the output should look like:

Generate a QBR one-pager with these sections:

## Account Overview
- Company name, contract value, renewal date
- Primary stakeholder and CSM name
- Account tier

## Usage Highlights
- MAU trend (last 4 months, with % change)
- Top 3 most-used features
- Features with declining usage (flag these)
- New features adopted since last QBR

## Support Summary
- Total tickets this quarter vs last quarter
- Average resolution time
- Any open escalations
- Top 3 ticket categories

## Health Indicators
- NPS/CSAT score and trend
- Login frequency trend
- Days since last executive sponsor login

## Recommended Discussion Topics
- Based on the data above, suggest 3 talking points
  for the CSM to raise in the QBR

## Expansion Opportunities
- Based on usage patterns, suggest relevant upsell
  or cross-sell opportunities

Step 4: Test with real data

Run it against one account. Review the output. You'll want to tweak things: maybe the usage metrics need different date ranges, maybe you want ticket severity broken out, maybe the "recommended talking points" need more specific prompting. Iterate with Claude until the output matches what your best CSM would prepare manually.

Step 5: Batch it

Once it works for one account, tell Claude to add batch processing. Feed it a list of account IDs (or pull them from your CRM based on upcoming QBR dates) and generate all the one-pagers at once. Your entire team's QBR prep for the quarter, done in 5 minutes.

What the Output Actually Looks Like

Here's a trimmed example of what the tool generates:

# QBR Prep: Acme Corp (Q1 2026)

## Account Overview
- Contract Value: $85,000 ARR
- Renewal Date: June 15, 2026 (74 days)
- CSM: Sarah Chen | Sponsor: VP Ops, Mike Torres
- Account Tier: Enterprise

## Usage Highlights
- MAU: 342 → 318 → 305 → 289 (declining 15% over 4 months)
- Top features: Workflow Builder (89%), Dashboards (76%), API (61%)
- Declining: Report Scheduler dropped from 45% to 12% adoption
- New: 0 new features adopted since last QBR ⚠️

## Support Summary
- Tickets: 14 this quarter (up from 8 last quarter)
- Avg resolution: 4.2 hours
- Open escalation: 1 (billing dispute, opened Jan 12)
- Top categories: Integration errors (5), Login issues (4), Performance (3)

## Health Indicators
- NPS: 6 (down from 8 last quarter) ⚠️
- Login frequency: Down 22% quarter-over-quarter
- Last executive login: 47 days ago ⚠️

## Recommended Discussion Topics
1. Address declining usage: MAU down 15%, no new feature adoption.
   Suggest a re-enablement session with their team.
2. Resolve open billing escalation before renewal conversation.
3. Executive engagement: sponsor hasn't logged in for 47 days.
   Propose an executive check-in.

## Expansion Opportunities
- Heavy Workflow Builder usage suggests fit for Advanced
  Automation tier ($15k uplift)
- API usage at 61% indicates technical team engagement;
  explore Developer Platform add-on

A CSM looks at this and immediately knows: this account is at risk. Usage is sliding, NPS dropped, the executive sponsor has gone dark. Instead of spending 2 hours discovering this, they spend 15 minutes figuring out how to address it.

The ROI Math

Let's make this concrete. If you're a VP of CS managing 18 CSMs:

  • Each CSM does ~10 QBRs per quarter
  • Each QBR prep takes 2-3 hours manually
  • That's 180 QBRs per quarter, at 2.5 hours average = 450 hours per quarter
  • With automation, prep drops to 15-20 minutes per QBR
  • New total: ~60 hours per quarter
  • Net savings: 390 hours per quarter. 1,560 hours per year.

At an average CSM loaded cost of $50/hour, that's $78,000 per year in reclaimed capacity. But the real value is where those hours go. Your CSMs spend that time on actual customer conversations, relationship building, and identifying expansion opportunities instead of wrestling with spreadsheets.

Taking It Further with MCP Servers

Once the basic automation works, you can bolt on MCP servers to give Claude Code live access to your data sources. Instead of writing static API calls, Claude can query your systems in real-time during the prep process. That means the tool stays current as your data schemas evolve, without you rewriting integration code every quarter.

Why Build It Yourself Instead of Buying a Tool?

There are CS platforms that offer QBR templates. Gainsight, Totango, ChurnZero. They all have some version of this. The problem: they're locked into their own data model. They show you the metrics they decided matter, in the format they chose, with the customization options they allow.

When you build it with Claude Code, you control everything. You pick the metrics. You define the format. You adjust it when your CS strategy changes. Your tool reflects how your team actually runs QBRs, not some vendor's generic template.

And the build takes an afternoon. Not a 6-month procurement cycle with a $40k annual contract.

Get Started

If you're running a CS team and haven't touched Claude Code yet, start with the setup guide. It takes 2 minutes to install. Then come back here and build the QBR automation as your first real project.

If you want structured training on building tools like this (with live coaching and feedback), that's exactly what we do at ClaudeFluent. I've walked dozens of non-technical leaders through builds exactly like this one. The people who get the most out of it are the ones who show up with a specific problem to solve. QBR prep is a great one.

Related Guides

WANT MORE LIKE THIS?

Learn to build with Claude Code

6 hours of hands-on training. Build real projects. Ship without waiting on engineering.

View Class Details