See what support really costs before you renew an account

A board your CS team opens before every renewal, showing each customer's last ninety days of support load right next to the deal on the table.

App
FreshdeskHubSpotSlackCustomer SupportSalesAI ReportsResearch & Monitoring
PromptCreate

I want an account support health board that my customer success team opens before every renewal conversation. It is deliberately a portfolio view across our whole book of accounts, not a lookup screen for one customer at a time. The question it has to answer at a glance is how much support each customer is actually costing us, and whether we are about to renew them.

The main table has one row per Freshdesk company, from List Companies. For each company, build the last ninety days of support burden: total ticket volume, the direction that volume is trending, how many tickets were urgent or high priority, how many were reopened, and the total hours logged against them. Ticket counts come from Filter Tickets using narrow per company scoped queries (company id plus a created date range). Hours come from List Time Entries filtered to that company and period. For the trend, compare the most recent forty five days against the preceding forty five and show direction and percent change, not just a raw count.

Important constraint on health scoring: there is no CSAT or satisfaction ratings operation for Freshdesk in the catalog, so do not try to build account health from survey scores. Health is volume, priority mix, reopens and logged hours, and nothing else. For reopen counts, use the ticket stats that come back with ticket includes (the reopened timestamp on a ticket) rather than assuming a filterable reopen field exists. If stats are not available, count tickets that returned to an open state after having been resolved, and be honest in the UI about which method produced the number.

Beside the support columns, show the open renewal for that account from HubSpot: deal name, amount, close date, stage and deal owner. Use Search Companies to find the HubSpot company and Search Deals to find its open deals, and resolve the owner id into a real person with List Owners so the table shows a name rather than an internal id.

Match Freshdesk companies to HubSpot companies on website domain. Domain matching will miss on subsidiaries and on customers whose requesters write in from personal email addresses, so a manual override is load bearing here rather than a nice to have. Every row needs a way for me to search HubSpot companies and pin the correct one, and the app must remember that mapping permanently and prefer it over the domain guess from then on. Show clearly which rows were auto matched, which are overridden, and which are unmatched. Unmatched rows still show their support burden with an empty renewal side, because an account with no matched deal is exactly the kind of gap I want to see.

Default the board to accounts with a renewal close date in the next ninety days, sorted by burden normalized against deal size, so the largest customers do not permanently sit at the top just because they are large. Compute a burden score from volume, urgent share, reopens and hours, divide it by deal amount, and sort on that, while still showing the raw numbers in their own columns. Let me change the filter (all accounts, next thirty days, next one hundred eighty days, unmatched only) and re-sort by any column.

Clicking an account drills into its detail: the actual tickets behind the numbers over the same ninety day window, with subject, status, priority, created date, reopened flag and hours logged, using List Tickets scoped to that company and View Ticket for the full record when I open one. Keep the renewal summary and the headline burden numbers pinned at the top of the detail view.

On the account detail, a button labelled "write the QBR support brief" kicks off a background agent for that one account. The agent reads that account's tickets with List Tickets and their conversations with List Ticket Conversations, then writes the support section of a QBR: the recurring themes, each backed by real examples and specific ticket references rather than generalities, what got better or worse across the window, and an honest risk read. It should be willing to say an account is in bad shape. The finished brief renders in the app on that account, and the agent also files it on the matching HubSpot company record using Create Note so it reaches whoever opens the account next. Show progress while the agent runs, and keep past briefs with the date each was written.

When the agent judges an account high risk, it should also ping the deal owner in Slack. Resolve the owner's email through HubSpot List Owners, find the matching Slack person with List Users, open the direct message with Open a Conversation, and send it with Send a Message. Keep that message short: the account, the renewal date and amount, the one or two things actually driving the risk, and a pointer back to the account in the app. This fires only on a high risk judgement, not on every brief. If no Slack user matches that email, fall back to a channel I configure and make that fallback visible in the app.

Some practical constraints to build around. Freshdesk ticket search caps at thirty results per page and three hundred results total, so ninety day per company counts have to come from narrow scoped queries rather than one broad fetch, and the company list itself needs paging rather than an assumption that everything fits in a single call. Because assembling this across a full book of accounts is a lot of calls, cache the computed burden per company with an explicit refresh control and a visible last refreshed time, and load the table progressively so I can start reading the top rows before every account has finished computing.

What does this prompt do?

  • One row per customer showing ticket volume over the last ninety days and whether it is rising or falling, urgent and reopened counts, and the total hours your team logged on them
  • The open renewal sits right beside it with amount, close date and owner, matched to the right customer automatically and correctable by hand when the match is wrong
  • Sorted so support load is weighed against deal size, so your biggest customers do not permanently occupy the top of the list
  • Click any account to read the actual tickets behind the numbers, or press one button to have an agent write the support section of the QBR and file it on the customer record

What do I need to use this?

  • A Freshdesk account where tickets are assigned to companies
  • A HubSpot login with your renewal deals and their close dates
  • A Slack workspace, if you want account owners pinged when a customer looks at risk
  • Time tracking in Freshdesk, if you want the hours column to carry weight (optional, everything else still works without it)

How can I customize it?

  • Change the ninety day lookback, or the renewal horizon the default view filters to
  • Adjust what counts as high risk before the agent pings the account owner
  • Choose who the risk alerts go to, and set the length and tone of the written brief

FAQs

Do I need customer satisfaction scores for this to work?
No. This board does not use survey scores at all. Account health is built from things every account has whether or not anyone fills in a survey: how many tickets they file, how urgent those tickets are, how often issues come back after being closed, and how many hours your team spends on them.
What if a customer's name in Freshdesk does not match the name in our CRM?
Accounts are matched on website domain first, which handles most of your book. When that misses, which happens with subsidiaries and with customers who write in from personal email addresses, you pick the right company yourself once and the board remembers that choice from then on.
Will this work if we do not log time on tickets?
Yes. The hours column will simply read zero and the rest of the board works normally. Ticket volume, urgency mix and reopen counts still give you a clear picture of which accounts are expensive to support.
Does the written brief get saved anywhere besides the app?
Yes. It is filed as a note on the matching company record in your CRM, so whoever opens that account next finds it without needing access to this board. It also stays visible in the app alongside previous briefs.
How current are the numbers?
They are read live from your helpdesk and CRM when you open the board and whenever you refresh it, so you are looking at what is in those systems right now rather than a copy from last night. The board shows when it last refreshed.
Is this a report for one customer or for the whole book?
The whole book. It is deliberately a portfolio view so you can see which accounts are heading into a renewal in bad shape. You can then click into any single account for the detail.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Plan a field sales day around drive time and neglected accounts

Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.

Geolocation
HubSpot
Google Calendar
App
Find ICP accounts, verify the emails, file them in HubSpot

One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.

Hunter
HubSpot
App
Browse and shortlist creators without burning audit credits

Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.

HypeAuditor
Airtable
Slack
App
Hiring funnel dashboard for every open Hireflix role

One screen showing invited, completed, and shortlisted counts for every open role, plus the stalled invites that have quietly gone nowhere.

Hireflix
Slack
App
Competitive battlecard workspace ranked by open pipeline

See every competitor battlecard next to the number of open deals that name that competitor, so the cards carrying real pipeline get refreshed first.

Guru
HubSpot
Slack Bot
App

Stop rebuilding the renewal health spreadsheet every quarter.

Give your customer success team one board that shows what each account actually costs to support, right beside the renewal it is about to affect.