The Support Leader's Playbook: Your Customers Should Need Less Support

Published On
Your leadership wants proof that AI works. Every support tool reports the share of tickets resolved without a human, so that’s the easiest number to give them.
We report one too. Ari, our Customer AI agent in Plain, resolves more than 40% of threads in the workspaces where it’s enabled. Here’s what’s wrong with that number, ours included.
Your team knows what that number misses. A customer who gave up still counts as resolved, and so does a wrong answer that comes back a week later as an escalation. When forty customers ask how to export the same report, AI answers every one and the dashboard logs forty successes.
A resolution rate counts the work AI removes from the queue without showing whether the answer held, and answering a question, however well, leaves its cause in place. As AI takes over the answering, finding those causes and getting them fixed becomes your team’s most valuable work.
To prove your work is making customers need support less, keep your resolution rate and report three numbers beside it:
Keep your resolution rate.Put three numbers beside it.
Same-issue recontact rate
How often the same customer returns with the same problem within a set window, such as 14 days.
Contacts per active customer
How often each customer needs support, so a growing customer base doesn’t hide your progress.
Fixes shipped
How many changes came from support evidence, wherever they shipped. Contacts per active customer for each fix’s cause show whether it worked.
Come budget time, these numbers show what your team adds on top of AI: support costs that grow slower than your customer base, and customers who run into fewer problems.
You can start this week. Pick one recurring issue, find the root cause, fix the source, and measure whether contacts per active customer for that cause drops.
This guide walks through each step, with examples from Vercel, Linear, Granola, Resend, and our own support team. Most of these teams are Plain customers, which is how we can show you their work from the inside.
AI changes whether the queue needs to exist
Most support metrics were built for call centers, where agent time was the biggest cost. Support teams were rewarded for answering quickly and cheaply.
Support also cut itself off from the rest of the business, so whatever a customer reported vanished when the ticket closed, and the team came to be seen as a cost to manage.
AI is breaking that model. Now that it gives most of the answers, it matters more to know why customers had to ask.
Vercel reported in October 2025 that its support agent had cut tickets by a third. By mid-2026, CPO Tom Occhino said it handled 93% of inquiries with no human involved.


“What’s so great about our customer support agent is that anything that gets by it is actually a real opportunity either for improving the product or for fixing improper configuration.”Source→
Occhino treats every ticket the agent can’t resolve as a sign of a product gap or a misconfiguration, and fixing those means fewer customers need the queue at all.
So Vercel's support team built a Case Retro Agent and brought the agent to Plain. Every week, the team takes the top ten issues to product and engineering with recommended changes, sometimes with a pull request support has already written. It currently saves 65% of ticket volume.
Resolution rate has two blind spots
Whether your tool calls it containment, deflection, automated resolution or solved rate, it stops counting the moment the ticket closes.
1. A resolved ticket can leave the customer stuck
In a May 2026 Liveops survey of 1,000 U.S. adults, 28% said their biggest frustration was getting a quick first response and then having to contact support again. A dashboard counts that first response as a success.
When Resend rolled out automated replies, it tracked customer sentiment next to its automated resolution rate, a quality check that keeps the rate honest. The rate rose to 33% over four months, up from 10%, with zero negative sentiment.
Same-issue recontact takes that check further, because it catches the return visit whether or not the customer complains.
2. It rewards answering the same question forever
An AI agent can explain how to reconnect a failed integration a thousand times and log a thousand resolutions, while the unclear error message behind it stays in the product. Macros and better-trained agents help your team keep up with questions like that without reducing how often customers ask them.
Linear closes that gap by tying each support ticket to its fix. Under its zero-bug policy, every bug assigned to an engineer is fixed or marked won’t-fix, and CX turns support tickets into issues in engineering’s triage queue. When the fix merges, the linked ticket reopens automatically so CX can tell the customer. Linear counts a bug report as done only then, long after most support teams would have closed the ticket.
- Bug reportedA customer reports a bug to support
- Most teams close it hereTriageCX turns the ticket into an issue in engineering’s triage queue
- Fix or won’t-fixEvery bug assigned to an engineer is fixed or marked won’t-fix
- Ticket reopensWhen the fix merges, the linked ticket reopens automatically
- Linear marks it doneCustomer toldCX tells the customer
Support’s job now includes fixing what causes tickets
Hiring already reflects it
We analyzed 1,224 technical support job postings published between October 2025 and September 2026 across 400 software companies.
Nearly half (46%) expect new hires to go beyond escalating problems and fix them directly, and 25% expect them to change the product itself by fixing bugs in code or correcting data.
Over the year, the share of postings that require AI tools doubled to 20%, up from 10%. They name tools such as Claude and GitHub Copilot for summarizing logs, troubleshooting, navigating unfamiliar code, and shipping fixes.
46 expect the hire to fix problems directly.
1,224 postings · 400 software companies · Oct 2025–Sep 2026A posting can ask for more than one, so shares overlap. Hover a bar to see it.
Most fixes aren’t code
You don’t need engineers in support to do this. Many repeats trace back to an article, an automation, a setting, or a policy, which your team can change directly or get changed with evidence.
| Where the cause lives | Example fix | Who ships it |
|---|---|---|
| Help center | Rewrite the article behind a repeat question | Support |
| Automations and routing | Catch a known issue before it reaches a person | Support |
| Product copy and settings | Clarify an error message or change a confusing default | Product or engineering, from support’s evidence |
| Onboarding and policy | Add a setup step or change a billing rule | The owning team, from support’s evidence |
| Code | Fix a small, well-scoped bug | Support engineers where agreed, otherwise engineering |
In every row, your team makes the first move by finding the cause and putting the evidence in front of whoever can change it. Our own support team can ship code, and it still started with the help center, as the results below show.
What changes for you as a support leader
We read 125 job postings published in Q3 2026 for support Directors, Heads, and VPs at 106 B2B software companies.
Half tie the role to retention and revenue (50%), as often as to cost efficiency (49%). One in five name both.
Exa’s new VP of Customer Experience oversees support, onboarding, and renewals. The posting names one number as the headline: “You will own Net Dollar Retention (NDR) as your headline metric.”
The companies hiring support leaders already see the job as more than a cost to manage. When you report what your fixes do for retention, you’re making your case in the terms companies use to hire these roles.

“You will own Net Dollar Retention (NDR) as your headline metric.”
Nearly every posting asks the leader to partner with Product (87%), but only one in five (20%) asks them to get product fixes shipped.
Most companies expect the partnership without saying what it should produce. Define it yourself with the three numbers in this guide, and the partnership gets a result leadership can see.
How to turn tickets into fixes
1. Make room for the work
The time AI frees up drifts back to the queue unless you set it aside. Your team needs three things:
- Time
Block hours for fixes in your staffing plan, the way you schedule coverage. Otherwise fixes only happen in a quiet week.
- Access
You need edit rights to the help center and automations, plus read access to logs and code.
- An engineering partner, if fixes touch code
Before the first pull request, agree with engineering on which repos your team can touch and who reviews its changes.
2. Find the cause behind the repeat
Group tickets by cause. “Can’t connect Slack” and “integration keeps failing” often trace back to one unclear error message. Check your existing tags against 50 tickets read by hand, or have an AI agent group tickets by feature and failure type.
Count the repeats. Measure each cause as contacts per active customer for that cause.
Check what you’ve tried. If macros and better-trained agents haven’t moved the number, the cause lives outside the queue.
Fix the source. Support makes the change where it has access and hands engineering the evidence where it doesn’t. At Granola, support engineers ship pull requests for small bugs themselves.
Measure the drop. Track contacts per active customer for that cause for at least four weeks after the fix ships.


“By giving your support team the tools that are usually outside their remit, the loop is shorter. If we can edit our own internal tools, that makes us faster to fix people’s problems. If we can fix the bugs ourselves, even better.”Read the case study→
3. Make every ticket a decision
Our own team learned this the hard way: sending issues to a tracker without active triage only gave them a new graveyard in the engineering backlog. Every repeat needs to reach someone with the authority to decide on it:
- One issue per cause
Ten customers reporting the same problem should reach that person as one issue, with the number of affected customers and their evidence attached.
- A decision either way
A fix and a deliberate choice to leave things as they are both count. An issue nobody decides on doesn’t.
- Commercial signals too
When one account sends repeated frustrated tickets, or ten accounts ask for the same feature, send it to the account owner and count it in your report to leadership.
What this looks like at Plain (and our own numbers)
We run our own support this way. Our Internal Agent (Sidekick) investigates every incoming ticket before a person sees it, and a person approves every final action, whether that’s merging a code change or updating an article in the Help Center.
Route: The Internal Agent decides which team should handle the ticket: Support Engineering, Customer Success, or Sales.
Read and classify: It pulls in the full ticket and the customer’s history, and identifies whether it’s a bug, a feature request, a product question, or something else.
Investigate: It runs the matching playbook, such as pulling logs and code for a bug, checking duplicates and demand for a feature request, or searching the knowledge base for a product question.
Hand off: A support engineer picks up the ticket with the investigation done.
What happens next depends on what came in:
Bugs: The Internal Agent returns a root cause, the affected code, its scope and risk. The support engineer checks the analysis, AI drafts the fix, and an engineer reviews it before anything ships.
Feature requests: The Internal Agent checks how many other customers asked, sizes the effort and creates the backlog issue for the support engineer to confirm.
Product questions: If the answer exists, it goes out immediately. If it doesn’t, the gap is flagged so the knowledge base improves.
Customer patterns: When the same problem shows up for several customers, the Internal Agent flags it as a potential incident and loops in the right teams early.
The support engineer’s role shifts from researcher to reviewer. Small bugs and simple feature requests move at the speed of a review.
One fix, start to finish
From mid-July to early September, 22% of our tickets were questions our docs couldn’t answer. A support engineer researched each one from scratch, and often did it again for the next customer who asked. We added two workflows:
When the Internal Agent finds a question our docs can’t answer, it drafts the missing article for a support engineer to review and publish.
To catch outdated articles, the Internal Agent checks every answer our customer-facing agent gives against our codebase and flags gaps.
Within 16 days, the share of tickets our docs couldn’t answer fell to 9%, even as ticket volume kept rising with customer growth.
Where our three numbers stand
Between May and September 2026, our customer base grew over 44%, while ticket volume grew much more slowly. Here’s where the three numbers in this guide stand across all of support.
Contacts per customer. Each customer contacted us 18% less often over those five months, and the share who needed support in a given month fell from 60% to 49%, about 11 points. The drop started before the help-center workflows, so it reflects more than that one fix.
Same-issue recontact. Our rate was 4.4% over 14 days, and about nine in ten customers who contacted us in the third quarter never came back with the same problem.
Fixes shipped. The number of fixes we shipped each month rose 313% over those five months, from May to September.
How to measure your results
Start with a dataset of only the tickets where a customer asked for help. Multiply any rate by 100 to report it as a percentage.
1. Same-issue recontact rate
Pick a window, such as 14 days, quote it every time, and start it when you hand the ticket back. Count a return only for the same customer with the same problem, and check a sample by hand. Leave out tickets handed back too late in the period to get a full window.
Track AI-resolved and human-resolved tickets separately. Recontact should stay flat or fall as your resolution rate rises. If it climbs, fix the answer at its source, usually a help article or the AI agent’s knowledge.
2. Contacts per customer
Average customers is the count at the start of the month plus the count at the end, divided by two, so mid-month signups count too. Break the number down by cause to see which problems are growing.
It should fall over time, especially for causes you’ve fixed, though a launch or a wave of new customers can push it up. Compare segments, such as onboarding or enterprise accounts, only with themselves. If it falls while recontact rises, customers may have given up or found support harder to reach.
3. Fixes shipped
Link each change to the tickets behind it, wherever it shipped. Count it in the month it ships, which is often weeks after the ticket closed.
With Plain, Linear and GitHub, a support engineer links the ticket to a Linear issue, and merging the pull request moves the issue to Done and the ticket to Close the Loop. A saved Linear view of issues completed this month with a customer request gives you the count. Log fixes outside code, like a rewritten help article, as Linear issues so the view catches them.
Make your case to leadership
At budget time, leadership wants to know how support costs will grow as the business grows. AI makes each answer cheaper, and your fixes mean customers need fewer answers.
Contacts per active customer measures the second part. When it falls, support costs grow more slowly than your customer base.
Start your first report with the agent-days your fixes gave back, what didn’t work and one resource ask. Add revenue and handle time once you have a quarter of data.
Turn prevented tickets into agent-days
Estimate tickets prevented as the drop in contacts per customer for that cause, times your current customer count. For minutes per ticket, use your team’s handle time for that cause, counting only tickets a person handled. Then divide by an 8-hour day:
A fix that removes 300 tickets a month at 12 minutes each gives back 60 hours, or 7.5 agent-days.
Five more ways to make your case
- 1Price a problem before you fix it
At Resend, one issue type, domain verification, was on track to cost 53 days of agent time a year, and modeling every issue type against another year of 5x growth showed more than 100,000 tickets that would need a person, which made it a staffing decision for leadership.
- 2Report revenue alongside capacity
If a fix touches accounts you flagged as churn risks, say whether they renewed, and when a requested feature ships, list the accounts that asked and the revenue they represent. Linking tickets to Linear issues makes this easy: a view of issues with customer requests, sorted by customer revenue, shows which fixes and features touch the most revenue.
- 3Get ahead of handle time
As AI takes the easy tickets, handle time and cost per human-handled ticket will rise, making your team look slower even as it takes on more valuable work. Report both by ticket complexity, so leadership compares like with like.
- 4Share what didn’t work
List the fixes that didn’t move their number and what you’ll try next. Leadership will trust the wins more if they also see the misses.
- 5Ask for resources and influence
Ask for what helps your team fix more, like protected hours or an engineer to review its code. Then ask for a standing slot in product’s prioritization review, where support brings its top causes and what they cost.
Your quarterly one-pager
Here’s the format. Start with the three numbers, one before-and-after chart and your asks. Keep the format the same every quarter, so leadership can spot the trends at a glance.
Prevention, translated into the numbers leadership already reviews.
Decide what your team becomes
As AI takes over the answering, every support leader has to decide what their team does with the time it frees up.
A team sized to the queue and judged on speed and cost shrinks each time AI improves. Every fix your team drives cuts the cost of serving future customers and removes a reason to churn. And because support hears about problems first, it’s the natural team to decide what gets fixed next.
Pair your resolution rate with the three numbers in this guide, and protect time for fixes in your staffing plan. Hire people who fix problems instead of escalating them, as nearly half of technical support postings already ask. Then agree with engineering and product on how support’s findings reach them, and give every fix outside support an owner.
Your 12-week action plan
- Week 1Pick one cause
Take the question your team answered most last month and trace it to its cause (steps 1 and 2 of “Find the cause behind the repeat”). If the fix lives in your help center or a setting, ship it this week. Otherwise, protect hours for whoever owns it.
- Weeks 2–6Ship the fix and pull your baseline
For a bigger fix, work through steps 3 and 4. Meanwhile, pull last quarter’s recontact rate and contacts per active customer from tickets you already have (rough is fine), and start linking each change to its tickets, because fixes shipped can’t be counted backward.
- Weeks 7–12Measure the drop and report
Track contacts per active customer for that cause, week by week, for at least four weeks after the fix ships, and list the accounts that hit it. Bring your one-pager to your next leadership review, and end with one resource ask, such as protected hours for fixes. Save the standing slot in product’s prioritization review for once you have a quarter of data.
One result like that makes the case for the rest.
We know how it sounds when a support software company tells you to aim for fewer tickets. It’s how we run our own support, and the one-pager above shows where we stand. We believe quality means fewer tickets per customer, and that every ticket should leave your company better equipped for the next one.
That’s progress with every customer.
Your leadership wants proof that AI works. Every support tool reports the share of tickets resolved without a human, so that’s the easiest number to give them.
We report one too. Ari, our Customer AI agent in Plain, resolves more than 40% of threads in the workspaces where it’s enabled. Here’s what’s wrong with that number, ours included.
Your team knows what that number misses. A customer who gave up still counts as resolved, and so does a wrong answer that comes back a week later as an escalation. When forty customers ask how to export the same report, AI answers every one and the dashboard logs forty successes.
A resolution rate counts the work AI removes from the queue without showing whether the answer held, and answering a question, however well, leaves its cause in place. As AI takes over the answering, finding those causes and getting them fixed becomes your team’s most valuable work.
To prove your work is making customers need support less, keep your resolution rate and report three numbers beside it:
Keep your resolution rate.Put three numbers beside it.
Same-issue recontact rate
How often the same customer returns with the same problem within a set window, such as 14 days.
Contacts per active customer
How often each customer needs support, so a growing customer base doesn’t hide your progress.
Fixes shipped
How many changes came from support evidence, wherever they shipped. Contacts per active customer for each fix’s cause show whether it worked.
Come budget time, these numbers show what your team adds on top of AI: support costs that grow slower than your customer base, and customers who run into fewer problems.
You can start this week. Pick one recurring issue, find the root cause, fix the source, and measure whether contacts per active customer for that cause drops.
This guide walks through each step, with examples from Vercel, Linear, Granola, Resend, and our own support team. Most of these teams are Plain customers, which is how we can show you their work from the inside.
AI changes whether the queue needs to exist
Most support metrics were built for call centers, where agent time was the biggest cost. Support teams were rewarded for answering quickly and cheaply.
Support also cut itself off from the rest of the business, so whatever a customer reported vanished when the ticket closed, and the team came to be seen as a cost to manage.
AI is breaking that model. Now that it gives most of the answers, it matters more to know why customers had to ask.
Vercel reported in October 2025 that its support agent had cut tickets by a third. By mid-2026, CPO Tom Occhino said it handled 93% of inquiries with no human involved.


“What’s so great about our customer support agent is that anything that gets by it is actually a real opportunity either for improving the product or for fixing improper configuration.”Source→
Occhino treats every ticket the agent can’t resolve as a sign of a product gap or a misconfiguration, and fixing those means fewer customers need the queue at all.
So Vercel's support team built a Case Retro Agent and brought the agent to Plain. Every week, the team takes the top ten issues to product and engineering with recommended changes, sometimes with a pull request support has already written. It currently saves 65% of ticket volume.
Resolution rate has two blind spots
Whether your tool calls it containment, deflection, automated resolution or solved rate, it stops counting the moment the ticket closes.
1. A resolved ticket can leave the customer stuck
In a May 2026 Liveops survey of 1,000 U.S. adults, 28% said their biggest frustration was getting a quick first response and then having to contact support again. A dashboard counts that first response as a success.
When Resend rolled out automated replies, it tracked customer sentiment next to its automated resolution rate, a quality check that keeps the rate honest. The rate rose to 33% over four months, up from 10%, with zero negative sentiment.
Same-issue recontact takes that check further, because it catches the return visit whether or not the customer complains.
2. It rewards answering the same question forever
An AI agent can explain how to reconnect a failed integration a thousand times and log a thousand resolutions, while the unclear error message behind it stays in the product. Macros and better-trained agents help your team keep up with questions like that without reducing how often customers ask them.
Linear closes that gap by tying each support ticket to its fix. Under its zero-bug policy, every bug assigned to an engineer is fixed or marked won’t-fix, and CX turns support tickets into issues in engineering’s triage queue. When the fix merges, the linked ticket reopens automatically so CX can tell the customer. Linear counts a bug report as done only then, long after most support teams would have closed the ticket.
- Bug reportedA customer reports a bug to support
- Most teams close it hereTriageCX turns the ticket into an issue in engineering’s triage queue
- Fix or won’t-fixEvery bug assigned to an engineer is fixed or marked won’t-fix
- Ticket reopensWhen the fix merges, the linked ticket reopens automatically
- Linear marks it doneCustomer toldCX tells the customer
Support’s job now includes fixing what causes tickets
Hiring already reflects it
We analyzed 1,224 technical support job postings published between October 2025 and September 2026 across 400 software companies.
Nearly half (46%) expect new hires to go beyond escalating problems and fix them directly, and 25% expect them to change the product itself by fixing bugs in code or correcting data.
Over the year, the share of postings that require AI tools doubled to 20%, up from 10%. They name tools such as Claude and GitHub Copilot for summarizing logs, troubleshooting, navigating unfamiliar code, and shipping fixes.
46 expect the hire to fix problems directly.
1,224 postings · 400 software companies · Oct 2025–Sep 2026A posting can ask for more than one, so shares overlap. Hover a bar to see it.
Most fixes aren’t code
You don’t need engineers in support to do this. Many repeats trace back to an article, an automation, a setting, or a policy, which your team can change directly or get changed with evidence.
| Where the cause lives | Example fix | Who ships it |
|---|---|---|
| Help center | Rewrite the article behind a repeat question | Support |
| Automations and routing | Catch a known issue before it reaches a person | Support |
| Product copy and settings | Clarify an error message or change a confusing default | Product or engineering, from support’s evidence |
| Onboarding and policy | Add a setup step or change a billing rule | The owning team, from support’s evidence |
| Code | Fix a small, well-scoped bug | Support engineers where agreed, otherwise engineering |
In every row, your team makes the first move by finding the cause and putting the evidence in front of whoever can change it. Our own support team can ship code, and it still started with the help center, as the results below show.
What changes for you as a support leader
We read 125 job postings published in Q3 2026 for support Directors, Heads, and VPs at 106 B2B software companies.
Half tie the role to retention and revenue (50%), as often as to cost efficiency (49%). One in five name both.
Exa’s new VP of Customer Experience oversees support, onboarding, and renewals. The posting names one number as the headline: “You will own Net Dollar Retention (NDR) as your headline metric.”
The companies hiring support leaders already see the job as more than a cost to manage. When you report what your fixes do for retention, you’re making your case in the terms companies use to hire these roles.

“You will own Net Dollar Retention (NDR) as your headline metric.”
Nearly every posting asks the leader to partner with Product (87%), but only one in five (20%) asks them to get product fixes shipped.
Most companies expect the partnership without saying what it should produce. Define it yourself with the three numbers in this guide, and the partnership gets a result leadership can see.
How to turn tickets into fixes
1. Make room for the work
The time AI frees up drifts back to the queue unless you set it aside. Your team needs three things:
- Time
Block hours for fixes in your staffing plan, the way you schedule coverage. Otherwise fixes only happen in a quiet week.
- Access
You need edit rights to the help center and automations, plus read access to logs and code.
- An engineering partner, if fixes touch code
Before the first pull request, agree with engineering on which repos your team can touch and who reviews its changes.
2. Find the cause behind the repeat
Group tickets by cause. “Can’t connect Slack” and “integration keeps failing” often trace back to one unclear error message. Check your existing tags against 50 tickets read by hand, or have an AI agent group tickets by feature and failure type.
Count the repeats. Measure each cause as contacts per active customer for that cause.
Check what you’ve tried. If macros and better-trained agents haven’t moved the number, the cause lives outside the queue.
Fix the source. Support makes the change where it has access and hands engineering the evidence where it doesn’t. At Granola, support engineers ship pull requests for small bugs themselves.
Measure the drop. Track contacts per active customer for that cause for at least four weeks after the fix ships.


“By giving your support team the tools that are usually outside their remit, the loop is shorter. If we can edit our own internal tools, that makes us faster to fix people’s problems. If we can fix the bugs ourselves, even better.”Read the case study→
3. Make every ticket a decision
Our own team learned this the hard way: sending issues to a tracker without active triage only gave them a new graveyard in the engineering backlog. Every repeat needs to reach someone with the authority to decide on it:
- One issue per cause
Ten customers reporting the same problem should reach that person as one issue, with the number of affected customers and their evidence attached.
- A decision either way
A fix and a deliberate choice to leave things as they are both count. An issue nobody decides on doesn’t.
- Commercial signals too
When one account sends repeated frustrated tickets, or ten accounts ask for the same feature, send it to the account owner and count it in your report to leadership.
What this looks like at Plain (and our own numbers)
We run our own support this way. Our Internal Agent (Sidekick) investigates every incoming ticket before a person sees it, and a person approves every final action, whether that’s merging a code change or updating an article in the Help Center.
Route: The Internal Agent decides which team should handle the ticket: Support Engineering, Customer Success, or Sales.
Read and classify: It pulls in the full ticket and the customer’s history, and identifies whether it’s a bug, a feature request, a product question, or something else.
Investigate: It runs the matching playbook, such as pulling logs and code for a bug, checking duplicates and demand for a feature request, or searching the knowledge base for a product question.
Hand off: A support engineer picks up the ticket with the investigation done.
What happens next depends on what came in:
Bugs: The Internal Agent returns a root cause, the affected code, its scope and risk. The support engineer checks the analysis, AI drafts the fix, and an engineer reviews it before anything ships.
Feature requests: The Internal Agent checks how many other customers asked, sizes the effort and creates the backlog issue for the support engineer to confirm.
Product questions: If the answer exists, it goes out immediately. If it doesn’t, the gap is flagged so the knowledge base improves.
Customer patterns: When the same problem shows up for several customers, the Internal Agent flags it as a potential incident and loops in the right teams early.
The support engineer’s role shifts from researcher to reviewer. Small bugs and simple feature requests move at the speed of a review.
One fix, start to finish
From mid-July to early September, 22% of our tickets were questions our docs couldn’t answer. A support engineer researched each one from scratch, and often did it again for the next customer who asked. We added two workflows:
When the Internal Agent finds a question our docs can’t answer, it drafts the missing article for a support engineer to review and publish.
To catch outdated articles, the Internal Agent checks every answer our customer-facing agent gives against our codebase and flags gaps.
Within 16 days, the share of tickets our docs couldn’t answer fell to 9%, even as ticket volume kept rising with customer growth.
Where our three numbers stand
Between May and September 2026, our customer base grew over 44%, while ticket volume grew much more slowly. Here’s where the three numbers in this guide stand across all of support.
Contacts per customer. Each customer contacted us 18% less often over those five months, and the share who needed support in a given month fell from 60% to 49%, about 11 points. The drop started before the help-center workflows, so it reflects more than that one fix.
Same-issue recontact. Our rate was 4.4% over 14 days, and about nine in ten customers who contacted us in the third quarter never came back with the same problem.
Fixes shipped. The number of fixes we shipped each month rose 313% over those five months, from May to September.
How to measure your results
Start with a dataset of only the tickets where a customer asked for help. Multiply any rate by 100 to report it as a percentage.
1. Same-issue recontact rate
Pick a window, such as 14 days, quote it every time, and start it when you hand the ticket back. Count a return only for the same customer with the same problem, and check a sample by hand. Leave out tickets handed back too late in the period to get a full window.
Track AI-resolved and human-resolved tickets separately. Recontact should stay flat or fall as your resolution rate rises. If it climbs, fix the answer at its source, usually a help article or the AI agent’s knowledge.
2. Contacts per customer
Average customers is the count at the start of the month plus the count at the end, divided by two, so mid-month signups count too. Break the number down by cause to see which problems are growing.
It should fall over time, especially for causes you’ve fixed, though a launch or a wave of new customers can push it up. Compare segments, such as onboarding or enterprise accounts, only with themselves. If it falls while recontact rises, customers may have given up or found support harder to reach.
3. Fixes shipped
Link each change to the tickets behind it, wherever it shipped. Count it in the month it ships, which is often weeks after the ticket closed.
With Plain, Linear and GitHub, a support engineer links the ticket to a Linear issue, and merging the pull request moves the issue to Done and the ticket to Close the Loop. A saved Linear view of issues completed this month with a customer request gives you the count. Log fixes outside code, like a rewritten help article, as Linear issues so the view catches them.
Make your case to leadership
At budget time, leadership wants to know how support costs will grow as the business grows. AI makes each answer cheaper, and your fixes mean customers need fewer answers.
Contacts per active customer measures the second part. When it falls, support costs grow more slowly than your customer base.
Start your first report with the agent-days your fixes gave back, what didn’t work and one resource ask. Add revenue and handle time once you have a quarter of data.
Turn prevented tickets into agent-days
Estimate tickets prevented as the drop in contacts per customer for that cause, times your current customer count. For minutes per ticket, use your team’s handle time for that cause, counting only tickets a person handled. Then divide by an 8-hour day:
A fix that removes 300 tickets a month at 12 minutes each gives back 60 hours, or 7.5 agent-days.
Five more ways to make your case
- 1Price a problem before you fix it
At Resend, one issue type, domain verification, was on track to cost 53 days of agent time a year, and modeling every issue type against another year of 5x growth showed more than 100,000 tickets that would need a person, which made it a staffing decision for leadership.
- 2Report revenue alongside capacity
If a fix touches accounts you flagged as churn risks, say whether they renewed, and when a requested feature ships, list the accounts that asked and the revenue they represent. Linking tickets to Linear issues makes this easy: a view of issues with customer requests, sorted by customer revenue, shows which fixes and features touch the most revenue.
- 3Get ahead of handle time
As AI takes the easy tickets, handle time and cost per human-handled ticket will rise, making your team look slower even as it takes on more valuable work. Report both by ticket complexity, so leadership compares like with like.
- 4Share what didn’t work
List the fixes that didn’t move their number and what you’ll try next. Leadership will trust the wins more if they also see the misses.
- 5Ask for resources and influence
Ask for what helps your team fix more, like protected hours or an engineer to review its code. Then ask for a standing slot in product’s prioritization review, where support brings its top causes and what they cost.
Your quarterly one-pager
Here’s the format. Start with the three numbers, one before-and-after chart and your asks. Keep the format the same every quarter, so leadership can spot the trends at a glance.
Prevention, translated into the numbers leadership already reviews.
Decide what your team becomes
As AI takes over the answering, every support leader has to decide what their team does with the time it frees up.
A team sized to the queue and judged on speed and cost shrinks each time AI improves. Every fix your team drives cuts the cost of serving future customers and removes a reason to churn. And because support hears about problems first, it’s the natural team to decide what gets fixed next.
Pair your resolution rate with the three numbers in this guide, and protect time for fixes in your staffing plan. Hire people who fix problems instead of escalating them, as nearly half of technical support postings already ask. Then agree with engineering and product on how support’s findings reach them, and give every fix outside support an owner.
Your 12-week action plan
- Week 1Pick one cause
Take the question your team answered most last month and trace it to its cause (steps 1 and 2 of “Find the cause behind the repeat”). If the fix lives in your help center or a setting, ship it this week. Otherwise, protect hours for whoever owns it.
- Weeks 2–6Ship the fix and pull your baseline
For a bigger fix, work through steps 3 and 4. Meanwhile, pull last quarter’s recontact rate and contacts per active customer from tickets you already have (rough is fine), and start linking each change to its tickets, because fixes shipped can’t be counted backward.
- Weeks 7–12Measure the drop and report
Track contacts per active customer for that cause, week by week, for at least four weeks after the fix ships, and list the accounts that hit it. Bring your one-pager to your next leadership review, and end with one resource ask, such as protected hours for fixes. Save the standing slot in product’s prioritization review for once you have a quarter of data.
One result like that makes the case for the rest.
We know how it sounds when a support software company tells you to aim for fewer tickets. It’s how we run our own support, and the one-pager above shows where we stand. We believe quality means fewer tickets per customer, and that every ticket should leave your company better equipped for the next one.
That’s progress with every customer.

