Business

From Recurring Questions to a Product Change

Antonio Evans11 min read

A split scene on a clean desk: on the left, a stack of help center articles with a magnifying glass over a repeated question; on the right, a simplified product screen with a wrench and a flowchart arrow between them.
Key points

Key points

  1. 1Answer in the help center when the flow works as designed and the explanation is missing, hard to find, or contradicted by an obsolete article.
  2. 2Change the product when the logs show one screen, error, or control precedes most of the asks.
  3. 3Use repetition plus path as the test: one shared entry point means product, many scattered entry points mean content.
  4. 4Cost the two options in agent minutes per week before writing anything, and route the work with numbers rather than opinions.

Pull repetition and path out of the data before deciding anything

Most teams start this decision with a feeling: "we get that question all the time." That is not evidence. Two numbers settle it, and both come from records you already keep.

The first number is repetition: how often the same question arrives in a fixed window. The second is path: what the person was doing in the product before they wrote in. Repetition tells you whether it is worth spending anything at all. Path tells you which of the two fixes will actually work.

Repetition is easy to extract. Ticket taxonomies, macros, and tagging fields already group contacts into reasons for contact. SentiSum's ticket analytics product markets granular topic tags applied consistently to 100 percent of tickets, which is the property you need: consistent labels, not a lucky sample of well-described tickets (SentiSum). If your tagging is hand-applied and inconsistent, run a classification pass over a sample first, then count.

Path is harder and that is why it gets skipped. To get it, you need session context attached to the contact. Three practical sources:

  1. Pre-contact chat transcripts. Most chat widgets keep the visitor's current page and referrer in the conversation record, so "why is my invoice blank" arrives attached to the invoice screen.
  2. Search logs. What people searched in your help center before they opened a ticket. A failed search followed by a ticket is the clearest content-gap signal you will get.
  3. Product analytics. For logged-in users, event streams tied to the same account let you see the last three screens before the contact form was submitted.

Fallback and missed-utterance logging is the same idea on the bot side. Chatspark notes that a fallback rate under 5 percent is usually healthy while a rate above 20 percent signals a problem customers can feel, and recommends breaking the number down by intent, topic, channel, and customer group rather than trusting one blended figure (Chatspark). Do that disaggregation before you build any ranking.

A minimal log join that produces a path score

You do not need a data warehouse. A left join of contacts to the last session event before contact is enough to start. Something like this runs in any warehouse and takes an afternoon:

-- contact_path: count contacts by question and by last screen before contact
select
  t.reason_for_contact                      as question,
  s.last_page                               as entry_point,
  count(distinct t.contact_id)              as contacts,
  avg(t.handle_time_minutes)                as avg_minutes
from tickets t
left join sessions s
  on s.account_id = t.account_id
 and s.ended_at between t.created_at - interval '30 minutes'
                    and t.created_at
where t.created_at >= current_date - interval '90 days'
  and t.reason_for_contact is not null
group by 1, 2
order by contacts desc;

Two derived columns do most of the work. Path concentration is the share of contacts for one question that share the same top entry point. Path spread is the number of distinct entry points that account for 80 percent of contacts for that question. High concentration plus high volume points at the product. High spread points at content.

The decision rule: repetition plus path

The rule fits on an index card. For each recurring question, compute volume per month, path concentration, and whether the top entry point is a single screen, a single error message, or a single control.

Signal in the logsWhat it meansFix
High volume, one dominant entry point, no errorA step does something people do not expectProduct: copy, defaults, or sequencing at that step
High volume, one error messageThe message does not say what to do nextProduct: rewrite the error, add an inline remedy
High volume, many entry points, no shared stepThe concept is genuinely not documentedContent: one article, placed where the question starts
Moderate volume, high searches with failed resultsContent exists but is not findableContent plus search synonyms, not a new article
Volume falling after a product change, same contentThe product fix workedClose the article or shorten it

The worked example makes it concrete. Suppose a billing question arrives 640 times in 90 days. If 71 percent of those contacts follow the same press on "Change plan," the ask is not a documentation problem, because the screen taught them the wrong thing. If instead the 640 contacts spread across nine entry points with no single step over 20 percent, there is nothing to fix in the flow and you should write one article and surface it in search.

Freshworks' metrics guidance draws the same distinction for bots: missed utterances are the ones where the system failed to understand, and human takeover rate is how often it escalates (Freshworks). Both are useful, but only the missed-utterance review tells you whether the words or the product are wrong. A high takeover rate on a question whose path is scattered is content. A high takeover rate on a question tied to one step is product.

Green path, red path

Serialize the rule as a graphic if you want a team to apply it consistently:

Question repeated N+ times per month
|
+-- Do 60%+ of contacts share ONE entry point?
|     |
|     +-- YES --> Is that entry point a screen, error, or control?
|     |           +-- YES --> PRODUCT CHANGE
|     |           +-- NO  --> Content (placement problem)
|     |
|     +-- NO  --> Does a help-center article already exist?
|               +-- YES --> Content (findability problem)
|               +-- NO  --> CONTENT (write it)

The threshold of 60 percent is a starting point, not a law. Set it from your own data: look at questions you have already fixed in the product and see what their concentration looked like before the fix.

Separate missing content from a confusing flow

Once a question is worth acting on, you have to classify it. Four failure modes look identical from the ticket text and completely different from the path.

Missing content. No article exists, or the article exists but omits the answer. Signal: the question comes from many paths and search returns nothing relevant. The first-search reading is that customers want better docs. That is usually right, but only in this case.

Stale content. An article exists, ranks first, and contradicts the current product. Signal: contacts follow a help-center view of the wrong article. This is the most damaging content failure because it manufactures the ticket it was meant to prevent. Content pipelines that keep documentation as the source of truth and sync it downstream exist precisely to avoid this (a worked build walkthrough).

Flow that misleads. The step works as designed, but the design implies a different outcome. Signal: contacts concentrate on one screen that contains no error. The user was not confused about how to do the thing, they were confused about what the thing would do. This is a copy, ordering, or default problem, and it lives in the product repository, not the help center.

Error that blocks. Signal: contacts concentrate on one error code. The user did something reasonable and the system refused without offering the next action. Error-message quality is a product change, and it is usually the highest-return one on the list because the fix is small and the repeated volume is large.

Intent-detection practice maps onto this. The IrisAgent guide to intent detection recommends starting with 30 to 40 intents, grouping them into categories, and always having a fallback for unmatched messages, then measuring classification quality with accuracy, precision, recall, and F1 before expanding automation (IrisAgent intent detection guide). The same discipline applies to the ticket taxonomy that feeds your decision: if reliability of the labels is unproven, your volume counts are unproven too.

Worked classification with numbers

Take a 90-day window and 30,000 tickets. Say 4,200 of them (14 percent) are some flavor of "where did my export go." Classification by hand on 300 sampled tickets gives you this:

Sub-reason (from 300-ticket sample)Share of sampleEstimated 90-day countDominant path
Export started but did not appear in inbox38%1,596Settings > Exports screen
Unsure whether export includes attachments24%1,008Export dialog
Export failed silently21%882Error toast, 2-second auto-dismiss
Asking about a format that is not offered17%714Help center search for "CSV"

Now the answer is obvious and non-obvious at the same time. Three of the four sub-reasons concentrate on a specific interface element, which means 79 percent of the volume is a product fix: persistent export status, an explicit attachments note in the dialog, and an error toast that stays. Only the last 17 percent, about 714 contacts, is content, and that content is one comparison table on the export page.

Run the same exercise with an email queue where the ticket text is all you have. The sub-reason split comes out similar and the path column is empty. You will not be able to separate "export failed silently" from "export started but did not appear" without session data, and you will likely write an article that says "check your spam folder," which neither fixes nor prevents the contact. This is the single strongest argument for instrumenting the contact form with the current session and the last page viewed.

Cost the two options honestly

Both fixes have costs and both have returns. Teams usually compare the writing cost to the engineering cost and stop there, which biases the decision toward content.

CostHelp center articleProduct change
One-time work1 to 3 hours to draft, review, and publishDesign plus engineering plus test; typically a release cycle
Ongoing upkeepRevisited at every product change to that areaTests and observability if the change is behavioral
Time to effectDays if placed and linked properlyOne release, plus a lag as users hit the new version
Ceiling on deflectionOnly answers people who look for it firstRemoves the question for everyone who hits the step
Failure modeArticle is findable but stale, and generates ticketsChange does not address the actual trigger

The return side is where teams underprice the product option. Deflection is measured as self-service resolutions divided by total inquiries, expressed as a percentage (Quickchat). That formula contains a hidden trap: an article that is self-served but wrong raises deflection and lowers satisfaction, which is why recommendations pair deflection with CSAT and first-contact resolution before declaring success. Chatspark makes the same point for bots, framing containment without resolution quality as a false win (Chatspark).

A five-minute cost model

Use hours and weeks, not money, to avoid arguing about loaded cost.

  1. Multiply monthly volume by expected deflection share. Content realistically removes a share of the people who search; product removes a share of everyone who hits the step.
  2. Multiply by average handle time in minutes to get minutes saved per month.
  3. Divide one-time cost in hours by minutes saved per month to get a payback period in months.
  4. Compare the payback periods. If they are within a month of each other, prefer the product change when path concentration is high, because the content fix decays with each redesign.

Do the arithmetic once in a meeting and the disagreement usually dissolves. In the export example, if a product fix removes 1,596 contacts at 9 minutes each, that is 14,364 minutes per month, about 239 agent hours. A help-center article that deflects half of the 714 content contacts saves 3,213 minutes, about 54 hours. Publish the article first because it is nearly free and takes days. Ship the product fix second because it is worth four times as much.

Run the loop as a repeatable process

The decision is not a one-time audit. Recurring questions come back whenever the product changes, and the loop only holds if it has an owner, a cadence, and a written record.

Cadence. Weekly extraction of volume and path, monthly ranking review, quarterly cleanup of articles the product has made unnecessary. The 2Point guide to turning support tickets into content insights suggests routine analysis on a monthly or quarterly schedule and a content calendar built from it, with engagement and conversion tracked afterwards (2Point). Adopt the cadence, but add the product triage step, which most content-first processes omit.

Ranking. Score each recurring question on volume, path concentration, current article quality, and estimated handle time. The top three go to product triage; the next five go to content. Everything else waits. Ranking all of them is what makes the process collapse.

Record. One line per question: what the logs showed, what was decided, and what the deflection and contact volume looked like afterward. Six months later this is the only thing that tells you whether the rule worked.

Closing. When a product fix lands, the article that used to answer the question is now a liability. Delete it or shorten it to a pointer inside the new UI. Stale content is a documented driving force behind avoidable contacts, and the only defense is to treat the article as part of the product change's definition of done.

Getting the classification itself to run cheaply

The loop depends on classifying contacts consistently, month after month. Doing that by hand at volume is where these programs stall. Three honest options, from least to most expensive:

  • Rules. If the taxonomy is small and stable, keyword and macro rules are free and fully explainable. The catch is that they break on new phrasing and cost time to maintain as the taxonomy grows (Institute of AI PM).
  • Fine-tuned small models. With a few hundred labeled examples per category, a fine-tuned encoder outperforms prompted models at one to two orders of magnitude lower cost and latency in benchmark comparisons (arXiv cost-aware model selection). For a fixed label set like your ticket reasons, this is the durable answer.
  • Model cascades. Run a cheap model on everything and escalate to an expensive one only when the cheap model's confidence is low, tuning the threshold on a small labeled sample. Researchers describing the technique report matching a strong model's labels while cutting most of the cost, and note that it applies to classification but not open-ended generation (the cascade worked example).

Start with rules, sample 300 tickets by hand to measure how often the rules agree with you, and only move to a model once the disagreement rate is high enough to matter. The classification literature is consistent that the model choice is a cost-and-latency decision as much as an accuracy one, and that the cheaper options are usually competitive on fixed label spaces once measured (arXiv).

If the work is to run this loop with AI rather than by hand, Quanta Experts can take the extracted data and hand back the ranked list, the sample-based classification, and the drafted article or product ticket as finished deliverables: https://quantaintelligence.ai/agents.

When the answer is both, and when it is neither

Some questions genuinely need both fixes, and the sequence matters. Publish the article first for the people asking today, then ship the product change, then retire the article. Doing it in the other order leaves a content gap open for a release cycle.

Some questions need neither. A question that is repeated but low volume and tied to a legitimate rare workflow is noise in the ranking, and a question whose path points at a screen that is already being redesigned should be parked rather than fixed twice. Write it down as parked so nobody re-litigates it next month.

And some questions are a symptom of a different product that should not exist. If 60 percent of a flow's users ask the same question after the same step, the honest reading may be that the step is unnecessary. That is a product conversation, not a documentation one, and it belongs in the same triage slot as the error-message fixes.

When the decision is genuinely contested, the cheapest way to settle it is measured action rather than more debate. Ask yourself what a free half hour of structured review is worth against a quarter of misallocated work if this article is advisory for your team: https://quantaintelligence.ai/calendar.

FAQ

FAQ

How do I tell a content gap from a confusing flow in the logs?

Look at the concentration of entry points for the question. If most contacts follow the same screen, error, or control, the flow is teaching the wrong thing and the fix belongs in the product. If contacts arrive from many different paths with no shared step, the concept is undocumented and the fix belongs in the help center.

How much repetition justifies any work at all?

Set the threshold from your own backlog rather than a universal number. A practical starting point is to rank every recurring question by monthly volume times average handle time and act on the top ten; anything below that is noise compared with what the same hours would fix elsewhere.

What data do I need before deciding?

Three things: a consistent reason-for-contact taxonomy, the last page or screen before the contact, and help-center search logs for the same period. Without the path and the search data you can count repetition but you cannot classify the cause.

Should we publish the article while the product fix is in flight?

Yes, when the question is generating contacts today and the release is more than a few weeks out. Mark the article for review and retire or shorten it as part of the product change's definition of done, so the stale article does not become the next cause of contacts.

How do we know the decision worked?

Track the question's contact volume and path concentration for the same window after the change. A product fix should reduce both; a content fix should reduce volume while leaving path spread unchanged. If neither moved, the classification was wrong and the question goes back into triage.

Sources

Sources

  1. AI-Powered Support Ticket Analysis
  2. AI Chatbot Fallback Rate: What It Reveals About Your ...
  3. Chatbot analytics 2026: 10 essential metrics to track
  4. Build an AI Support Knowledge Base (Zendesk, Intercom, Help Scout, etc)!
  5. AI Intent Recognition for Chatbots: Why Models Miss Intent
  6. Chatbot Analytics: KPIs, Dashboards & Metrics Guide
  7. How to Turn Support Tickets and Chat Logs into Content ...
  8. Classification Systems: When to Use Rules, ML, or LLMs
  9. Cost-Aware Model Selection for Text Classification
  10. How to Cut Your LLM Classification Costs by 90%
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles