# Categorize support tickets in Excel

`=HUNCH.PICK` reads a support ticket and returns its category. `=HUNCH.MULTI` reads the same ticket once and answers several yes/no questions on it at once, each in its own column, so a single row can carry a refund flag, a churn flag and a blocker flag together.

Updated 28 September 2026. Source: https://hunchsheet.app/formulas/categorize-support-tickets-excel

## Category and urgency

```
=HUNCH.PICK(A2:A9, "bug: something is broken or crashes|billing: charges, invoices, refunds|how-to: a question about using a feature|feature request: asks for something new|other")
```
In Google Sheets: `=HUNCHPICK(A2:A9, "bug: something is broken or crashes|billing: charges, invoices, refunds|how-to: a question about using a feature|feature request: asks for something new|other")`

```
=HUNCH.ASK(A2:A9, "Does the customer need a response within hours, not days?")
```
In Google Sheets: `=HUNCH(A2:A9, "Does the customer need a response within hours, not days?")`

Category sorts a ticket into a bucket; urgency says how soon it needs a human. A ticket can be low-urgency and still be a bug, or high-urgency and still be a billing question, so keep the two columns separate rather than folding urgency into the category list.

## Several flags at once with HUNCH.MULTI

```
=HUNCH.MULTI(A2:A9, D1:F1)
```
In Google Sheets: `=HUNCHMULTI(A2:A9, D1:F1)`

D1:F1 is a row of header cells, one yes/no question per cell, such as "Mentions a refund or wants money back?", "Says they might cancel or churn?" and "Is the customer currently blocked from working?". HUNCH.MULTI reads each ticket once and spills one probability column per question, up to ten questions in a single call. The header-row form keeps the question text visible as a column heading; the alternative is one cell with the questions separated by a pipe.

## Real outputs

Eight tickets from a B2B software helpdesk, with the model's answers as returned on 28 September 2026.

| Ticket | Category | Urgent? (0–1) |
| --- | --- | --- |
| Getting a 500 error every time I try to export to PDF, blocking our board deck due in an hour. | bug | 0.97 |
| Can you walk me through setting up SSO for our workspace? No rush. | how-to | 0.14 |
| You charged my card twice this month, need the duplicate refunded. | billing | 0.58 |
| It would be great if the calendar view supported drag and drop between weeks. | feature request | 0.19 |
| This is the second outage this month. If it happens again we are moving to a competitor. | bug | 0.77 |
| Quick question, does the mobile app support offline mode yet? | how-to | 0.52 |
| None of my saved filters loaded this morning, and I have a client call in 20 minutes. | bug | 0.93 |
| Just wanted to say the new onboarding flow is much smoother, nice work. | other | 0.23 |

Two rows sit right at the edge of any review threshold: the double-charge ticket comes back billing at 0.58 urgent, and the offline-mode question comes back how-to at 0.52, both closer to a coin flip than to a clear yes or no. Neither is wrong. A billing error is not always an hours-level emergency, and a feature-availability question sometimes is, depending on whether the customer is about to travel. That middle band is exactly what conditional formatting should color differently from the 0.9-plus rows, so a lead reads the ambiguous cases instead of trusting one cutoff. The onboarding compliment correctly falls to other, since praise was never one of the four working categories, which is the other bucket doing its job rather than failing to find one.

| Ticket | Refund or money back? | Says might cancel? | Fully blocked right now? |
| --- | --- | --- | --- |
| Getting a 500 error every time I try to export to PDF, blocking our board deck due in an hour. | 0.01 | 0.11 | 0.93 |
| Can you walk me through setting up SSO for our workspace? No rush. | 0.01 | 0.05 | 0.12 |
| You charged my card twice this month, need the duplicate refunded. | 0.99 | 0.08 | 0.06 |
| It would be great if the calendar view supported drag and drop between weeks. | 0.01 | 0.07 | 0.14 |
| This is the second outage this month. If it happens again we are moving to a competitor. | 0.03 | 0.94 | 0.50 |
| Quick question, does the mobile app support offline mode yet? | 0.01 | 0.10 | 0.19 |
| None of my saved filters loaded this morning, and I have a client call in 20 minutes. | 0.01 | 0.20 | 0.60 |
| Just wanted to say the new onboarding flow is much smoother, nice work. | 0.00 | 0.02 | 0.05 |

The outage ticket is the one worth a second look: says-might-cancel comes back at 0.94, matching the explicit line about moving to a competitor, but fully-blocked-right-now lands at exactly 0.50. The ticket says this is the second outage this month, a strong churn signal, but it never says whether the customer is blocked at this exact moment, and the model's 0.50 reflects that gap in the text rather than a guess dressed up as a number. The PDF export ticket is unambiguous on the same question at 0.93, because it says directly that the deck is due in an hour. The difference between the two rows is entirely in what the ticket states, not in how serious the underlying problem sounds.

## Turn five columns into a queue

```
=FILTER(A2:A9, (C2:C9>=0.6)+(F2:F9>=0.6)>0)
```

This pulls tickets that are either urgent or at risk of churn, which is not always the same list. Conditional formatting on the urgency column and a SORTBY on the churn column give a support lead two different views of the same eight rows without a second export.

## Limits

- HUNCH.MULTI takes up to ten yes/no questions in one call. For more than ten, split into a second HUNCH.MULTI formula.
- MULTI is priced per question per row, same as running that many separate HUNCH.ASK columns; the saving is one ticket read instead of several, not a lower price.
- Category and urgency are separate formula calls, so the two-column pattern above is two credits per row before MULTI.
- Cells calculating together travel in requests of up to 40 rows, and answers are cached for six hours inside Excel.

## Setup in three steps

1. Sideload the add-in from [hunchsheet.app/excel](https://hunchsheet.app/excel).
2. Save your key once: `=HUNCH.SETKEY("hunch_...")`, then delete the cell.
3. Type the category and urgency formulas, then add a HUNCH.MULTI column for whatever flags your team argues about.

## See also

- [HUNCH.PICK](https://hunchsheet.app/docs/hunchpick), [HUNCH.ASK](https://hunchsheet.app/docs/hunch) and [HUNCH.MULTI](https://hunchsheet.app/docs/hunchmulti) references.
- [The same pattern in Google Sheets](https://hunchsheet.app/formulas/categorize-support-tickets-spreadsheet).
- [Text classification in Excel](https://hunchsheet.app/formulas/classify-text-excel), the general pattern behind the category column.

## Questions

### Which helpdesks does this work with?

Any that export to CSV or Excel: Zendesk, Intercom, Freshdesk, HubSpot, or a shared inbox exported through an add-in. The formula only needs the ticket text in a column.

### Is HUNCH.MULTI cheaper than three separate HUNCH.ASK columns?

The credit cost is the same, one per question per row. What MULTI saves is formula upkeep: one range reference and one row of questions instead of three near-identical formulas.

### Can this route tickets automatically?

It classifies and flags. Routing is a FILTER, a QUERY-style formula, or a small script you attach to the category column yourself.

### What if a ticket is both a bug and a billing question?

HUNCH.PICK returns the one that dominates the text. If both matter independently, add a HUNCH.MULTI question for the second one rather than trying to fit it into the category list.

### Is customer message text stored anywhere?

No. Cell text passes through to compute the answer and is not stored by Hunch. See the [privacy page](https://hunchsheet.app/privacy).

