Export 60 to 90 days of solved tickets, strip out customer details, and ask an AI model to group them by the question each customer was really asking. Any group with five or more tickets and a stable answer earns an article: draft it from your best agent reply, then have the policy owner check every step before publishing.
The catch is that tickets record what your team said, not what is true. Agents improvise workarounds, quote last season's prices and promise things policy doesn't allow. An AI draft repeats all of it in tidy, confident prose. Treat tickets as the list of questions and the rough shape of each answer; the facts come from whoever owns the policy.
What to gather before any ticket reaches an AI tool
You need a spreadsheet, not a pile of email threads. Most help desks export solved tickets to CSV. Ask for these columns and ignore the rest:
- Ticket ID, so you can trace every cluster back to real conversations.
- Subject line and the customer's first message. This is the question in the customer's own words, and it becomes your article titles later.
- The final agent reply (the one before the ticket was solved), which usually holds the working answer.
- Tags or categories, if your team uses them. They are rarely consistent, but they help you check the AI's grouping.
- Created and solved dates, plus reopen count. A ticket that was reopened twice did not have a good answer.
Pick the date range with your season in mind. Sixty to ninety days is long enough to catch weekly patterns and short enough that the answers are still current. A seasonal business should also pull the same months from last year, because a campsite's April questions (pitch sizes, opening dates) look nothing like its August ones (showers, late arrivals).
If you work from a shared mailbox rather than a help desk, copy the 100 most recent customer threads into a sheet by hand. It takes about an hour and gives you enough to find the top questions. For volume, the rule of thumb I use: under about 150 tickets a month you can do everything in one chat session; above about 1,000 a quarter you need batches or a help desk that does the grouping for you.
Use a chat assistant on a business plan, where customer content isn't used for model training by default. ChatGPT Business and Claude Team both work, at about $25 a seat a month on monthly billing with a two-seat minimum. On a personal plan, switch off the model-training setting in privacy settings. Either way, redact first.
Redact the export: a before-and-after from a holiday-let inbox
Names and email addresses are the obvious things to remove. The less obvious ones do more damage if they leak: door codes, key-safe combinations, wifi passwords, alarm codes and partial card numbers, which customers paste into messages all the time.
Here is one message from an illustrative holiday-let manager looking after 11 cottages, before and after redaction:
Before: "Hi, it's [guest's full name] from booking HV-20931, mobile [number]. We're at the cottage on the lane behind the harbour and the key safe code 4471 you sent isn't working. Card ending 5528 was charged the deposit already."
After: "Hi, it's [GUEST] from booking [REF], mobile [PHONE]. We're at [PROPERTY] and the key safe code [CODE] you sent isn't working. Card ending [CARD] was charged the deposit already."
You can do most of this with formulas. Google Sheets has had REGEXREPLACE for years, and Excel for Microsoft 365 and Excel on the web now have it too (older boxed versions such as Excel 2021 don't). In a helper column:
=REGEXREPLACE(B2, "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}", "[EMAIL]")
=REGEXREPLACE(C2, "HV-\d{5}", "[REF]")
=REGEXREPLACE(D2, "\b\d{4}\b", "[CODE]")
The last formula replaces every four-digit number, which also catches years and prices such as "1200". That over-redaction is fine for clustering, but keep the original column so you can read the real ticket when drafting. Then skim 30 random rows by eye. Formulas miss things like "the code is four-four-seven-one", and a person spots those in seconds.
Let the AI group tickets by the question behind them
Don't ask the AI to count anything. Language models are poor at tallying long lists, so ask it to label each ticket and do the counting yourself with COUNTIF. That split is covered in more depth in why AI gets sums wrong, and it matters here because a cluster that looks like 90 tickets might really be 40.
Run it in two passes. First, give the AI a sample of 200 to 300 tickets and ask it to propose a label list. Second, give it every ticket in batches of about 200 and ask it to assign one label from that fixed list, with OTHER for anything that doesn't fit.
PASS 1 - propose labels
You are helping a [type of business] build a help centre.
Below are [N] redacted customer messages, one per line, each starting with its ticket ID.
Group them by the underlying question the customer needed answered, not by the words they used.
Return a table: label (under 8 words, phrased as the customer's question) | one-line description | 3 example ticket IDs.
Keep requests that need a staff decision (exceptions, refunds, special arrangements)
separate from questions that have one answer for everyone.
Propose no more than 25 labels.
PASS 2 - assign labels
Here is a fixed list of labels: [paste list].
For each ticket below, return: ticket ID | label | confidence (high/medium/low).
Use OTHER if no label fits. Do not create new labels.
This is what the first pass returned for the holiday-let inbox (illustrative, 1,380 solved tickets over 90 days, counts added afterwards with COUNTIF):
| Proposed label | Tickets | What needed fixing |
|---|---|---|
| Key safe won't open | 164 | Nothing; clear, repeatable troubleshooting |
| Can we check in early or leave late? | 122 | Mixed with "what time is check-in?"; split in two |
| Wifi details and connection problems | 141 | Password requests are property-specific; only "won't connect" suits a public article |
| Hot tub not hot or cover stuck | 97 | Fine, but half mention chemicals; add a section |
| Heating and hot water controls | 88 | Differs by boiler type; needs a per-property table |
| When is my deposit returned? | 69 | Fine |
| Bins and recycling days | 73 | Fine |
The early check-in cluster shows the most common grouping error. "What time can we arrive?" has one answer for everyone and belongs in an article. "Can we arrive at noon on Saturday?" needs someone to look at the cleaning schedule, so the right fix is a request form, not an article. If you publish an article for a decision, customers read it as a promise.
Score each cluster before writing a word
Not every busy cluster deserves an article. Score each one from 0 to 2 on five points and write up anything scoring 7 or more:
| Criterion | 2 points | 1 point | 0 points |
|---|---|---|---|
| Volume (per 90 days) | 20 or more tickets | 5 to 19 | Under 5 |
| Same answer for every customer | Yes | Mostly, with a table of variations | No, a person decides |
| Answer stable for 6+ months | Yes | Changes seasonally | Changes monthly |
| Time to handle each ticket | Over 10 minutes | 3 to 10 minutes | Under 3 minutes |
| Harm if the article is wrong | Minor inconvenience | Cost or annoyance | Money, safety or legal exposure |
Filled in for three of the holiday-let clusters:
- Key safe won't open: volume 2, same answer 2, stable 2, handle time 2 (guests often phone while standing at the door), harm 1. Total 9. Write it first.
- When is my deposit returned?: volume 2, same answer 2, stable 2, handle time 0, harm 1. Total 7. Write it; each ticket is quick, but there are 69 of them.
- Can we check in early?: volume 2, same answer 0, stable 1, handle time 1, harm 1. Total 5. No article; build a request form that asks for the date and preferred time.
A members' club running court bookings would score differently. "How do I book a squash court for a guest?" might score 9, while "Can I transfer my membership to my partner?" would score low because the committee decides each case.
Draft from your best resolutions, not your average ones
For each cluster you're writing up, find the three tickets that closed without being reopened and needed the fewest replies. If your help desk records satisfaction ratings, prefer the ones rated highly. Paste those three final replies into the drafting prompt along with the current policy text, so the AI has the working answer and the official one side by side.
Write a help centre article for customers of a [type of business].
Topic: [cluster label]
Customers describe the problem like this: [5-8 real subject lines, redacted]
Here are three agent replies that solved it: [paste]
Here is our current written policy on this topic: [paste, or "none"]
Rules:
- Title in the customer's words, under 60 characters.
- First sentence answers the question directly.
- Numbered steps for anything the customer does themselves.
- Use only facts from the replies and policy above. If they conflict,
follow the policy and add a note in [square brackets] for me.
- If a step isn't covered by the material, write [MISSING: ...] rather than guessing.
- End with when and how to contact us if the steps don't work.
- Plain English, under 400 words, no marketing language.
A sample draft for the key-safe cluster (illustrative output, shortened):
Key safe won't open? Try these steps first
Most key safes open on the second try once the dial or buttons are reset.
1. Press the clear button, or turn every dial back to zero. 2. Enter the code from your arrival email slowly, one digit at a time. 3. Hold the reset button for five seconds and try again. 4. Push the shutter up before pulling the release lever down. 5. If it still won't open, call our 24-hour line.
Two things in that draft would have caused trouble. Step 3 is invented: none of the three replies mentioned a reset button, and on push-button safes holding a button does nothing. And the business has an out-of-hours number that runs until 10pm, not a 24-hour line. Both slipped past the "[MISSING]" instruction, which is why the next step exists. The useful parts, the clear-first advice and the shutter tip, came straight from the best agent reply.
The fact-check pass: who signs off which line
Give each draft to the person who owns that policy, not to whoever wrote the prompt. They check it against this list, which takes about 15 minutes an article:
- Every number: times, fees, days, distances. "Deposits are returned within 7 days" must match what finance actually does.
- Every named button, setting or menu. If the article says "tap Manage booking", someone opens the booking page and looks.
- Every promise: refunds, compensation, callbacks, response times. Delete any you wouldn't honour for every customer.
- Anything private: codes, staff mobile numbers, owners' names, supplier details.
- Every [bracketed note] and [MISSING] marker, resolved or removed.
- Links to forms and other articles, clicked once.
Keep a simple sign-off log in the same spreadsheet. A filled-in row looks like this: Article: Key safe won't open | Owner: operations lead | Checked: 3 Oct | Changes: removed reset-button step, corrected out-of-hours hours | Next review: 3 Jan. When a guest later quotes an article at you, the log tells you who approved that wording and when.
Title articles in the words customers typed
People search your help centre with the words they used in their tickets, so lift titles from the subject lines, not from your internal vocabulary. In the holiday-let export, guests wrote "hot tub is cold", "spa not warm" and "jacuzzi won't heat up". Nobody wrote "hot tub temperature management". The article became "Hot tub not warming up? What to check before you call", with "spa" and "jacuzzi" used naturally in the first paragraph so search finds it either way.
A boutique hotel shows the same gap. Staff say "the valet desk" and "the permit scheme"; guests ask "where do I park?" and "is parking free?". A church office might call it "the hall hire licence agreement" while people booking a children's party ask "how much does it cost to rent the hall?". Use the customer's phrase as the title and the official term once in the body.
One more check on titles: read the list of all your article titles together. If two could answer the same question ("Checking in" and "Arrival times"), merge them. Duplicate articles split your search results and drift apart when only one gets updated.
Put the articles where the questions start
An article nobody sees cuts nothing. Place each one at the moments customers would otherwise write in:
- Saved replies. Rewrite the macro for each cluster as two lines plus the article link. Agents answer faster and customers learn the help centre exists.
- The contact form. Many help desks can suggest articles while someone types a question; look for a setting with a name like article suggestions or self-service.
- Booking and arrival messages. The holiday-let manager added links to the three most-used articles (key safe, wifi, heating) in the message guests get the day before arrival.
- Your chatbot's knowledge. If you run one, these articles are ideal source material; training a chatbot on your FAQs and policies covers how to load them without the bot improvising.
- Ticket tagging. Tag incoming tickets with the article's cluster so you can measure it. If you already use AI to tag and route support tickets, add the new cluster labels to its list.
Built-in generators in Zendesk and Freshdesk
If your help desk has its own generator, it can replace the export and clustering stages, and your data stays inside a tool you already trust with it.
Zendesk Knowledge builder went generally available on 20 November 2025 for customers whose plans include Zendesk's knowledge product. It analyses the last 90 days of ticket data, proposes a help centre structure of up to 40 articles, lets you regenerate the proposal up to 10 times, and creates the articles as drafts with an AI-generated label. It builds one help centre per brand and can't be rerun for that brand afterwards, so do your scoring on its proposed titles before you accept.
Freshdesk's Solution Article Generator needs a Pro or Enterprise plan plus the Freddy AI Copilot add-on, and an admin has to switch it on. It drafts an article from a title and prompts you type in, so you still bring the facts (paste the best agent reply in as the prompt). Freshdesk's own help page tells you to review every generated article before publishing.
Neither tool does the scoring or the fact-check for you, and neither knows which agent replies were improvised. If you're choosing between the two for a small team, Freshdesk vs Zendesk for small AI-assisted teams compares them on more than article generation. For internal IT-style fixes rather than customer-facing help, the approach in turning fixed tickets into a searchable knowledge base suits better.
Time and cost for a first batch of articles
For the holiday-let example, with 12 articles in the first batch, a realistic split is:
| Stage | Time |
|---|---|
| Export and tidy the CSV | 30 to 60 minutes |
| Redaction formulas plus a manual skim | 1 to 2 hours |
| Two clustering passes and COUNTIF totals | 1 to 2 hours |
| Scoring clusters | 30 minutes |
| Drafting (about 20 minutes each) | 4 hours |
| Owner fact-check (about 15 minutes each) | 3 hours |
| Publishing, macros and links | 1 to 2 hours |
That is roughly two working days spread over a fortnight. Software cost is whatever chat plan you use for the month, or nothing extra if your help desk plan already includes a generator. The owner's review time is the part people underestimate, and it's the part you can't skip.
How to tell an article is cutting tickets
Count tickets per cluster per week for six weeks before publishing and six weeks after. Then adjust for how busy you were, because raw counts fall in quiet months whether or not the article works.
Run the numbers for a hypothetical campsite that published "How electric hook-up works on our pitches": 46 hook-up tickets across 312 bookings in the six weeks before, which is 14.7 per 100 bookings. In the six weeks after, 21 tickets across 290 bookings, or 7.2 per 100. Raw tickets fell by 54%, but the per-booking rate is the honest number, and it roughly halved.
Three other signals worth watching:
- Help centre searches with no results. These are questions you haven't written up yet, and often the next cluster to score.
- "Did this help?" votes, if your help desk offers them. A run of "no" votes on one article usually means a step is wrong or missing.
- Tickets that mention the article ("I followed your guide but…"). These are the most useful tickets you'll get, because they show exactly which step failed.
The same before-and-after comparison applies if a chatbot is answering from the articles; measuring whether your chatbot works covers the extra numbers to track there.
Stop the articles going stale
A wrong help article is worse than none, because customers act on it and then complain with the article as evidence. Here's how that shows up. In one invented but typical case, a guest house moved breakfast from 8:00-10:00 to 7:30-9:30 at the start of the season but didn't touch its "Breakfast times and dietary requests" article. Within two weeks, three guests had arrived at 9:45 to a cleared dining room, and each complaint quoted the article's times.
Four habits prevent that:
- An owner and a review date on every article, taken from the sign-off log. Quarterly review is enough for most.
- "Update help articles" on every policy-change checklist, next to updating the website and the booking confirmation.
- A trigger for early review: if tickets in an article's cluster rise by half over four weeks, something has changed or the article has a gap.
- A clustering rerun each quarter on the latest tickets, to catch new questions after a new booking system, a new property or a price change.
Run those four for a quarter and the help centre stops being a one-off project. It becomes a record of your answers that the team keeps current, and every new cluster the rerun finds is the next article to write.
Questions about building help articles from tickets
How many tickets do I need before this is worth doing?
Roughly 150 solved tickets over two or three months is enough to see repeat questions. Below that, list your ten most common questions from memory and draft those. Above about 1,000 tickets a quarter, use batching or a help desk's built-in generator, because pasting everything into one chat stops working reliably.
Should AI-written help articles say they were written by AI?
Help articles that a person has fact-checked and approved are your business's content, so most firms don't label them. What matters is that a named owner has checked them. A chatbot that talks to customers is different: if you sell to customers in the EU, the AI Act's transparency rules require telling people they are talking to AI.
Can I publish articles straight from Zendesk's Knowledge builder?
Zendesk creates them as drafts with an AI-generated label, so someone still has to review and publish each one. Treat those drafts exactly like drafts from a chat assistant: check every number, button name and promise against current policy before switching them live.
What if my answers differ by property, branch or product?
Write one article for the shared steps and put the variable detail in a table or in a per-location page. Never publish door codes, wifi passwords or alarm codes in a public help centre; send those in booking confirmations or arrival messages instead.
Further reads
- How to Build a Company Knowledge Base AI Can Answer From — Turn the same articles into a source your internal AI tools answer from.
- How to Build the FAQ Your AI Chatbot Needs Before Launch — Shape the published articles into the FAQ a chatbot needs.
- How to Stop an AI Chatbot Giving Customers Wrong Answers — What to do when a bot misquotes your freshly published content.
- Best AI Customer Support Software for Small Teams in 2026 — Compare help desks whose AI can draft articles for you.
- How to Spot-Check AI Support Replies: A Weekly Sampling Routine — A sampling routine that also catches stale articles.
- AI Customer Service for Small Businesses: What to Automate First — Where help articles fit among the support jobs worth automating.
- Is AI Ticket Automation Worth It for a Small IT Support Shop? — When AI ticket automation pays for a small IT support shop, when it quietly cuts your revenue, and a 30-day test to find out.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Zendesk help pages on Knowledge builder (general availability announcement and usage guide); Freshdesk support page for the Freddy AI Solution Article Generator; Microsoft Support page for the Excel REGEXREPLACE function.