A support ticket is a decision with a paper trail: someone asks, staff own the thread, the answer either becomes public knowledge or stays private. XenForo 2.3 will hold a private room, prefixes, conversations, and a set of help pages. It will not, in stock form, turn inbound mail into a numbered ticket or let a guest open a case without an account. If you need those, there is a named add-on. If you do not, do not buy it.
This is not the moderation article. That one owns the approval queue, reports, warnings, and the shift. A report is “this post broke a rule.” A ticket is “I cannot log in / the launcher fails / I want my whitelist reviewed.” Different inbox. Different permissions. Do not dump both into one forum named Support.
Official sources: nodes and private-node behaviour, Communication → Help pages, conversations as a contact method, the report system as the other stock inbox. Community product named in this article, and only this one: Tickets: Help Desk and Knowledge Base by Naz (NixFifty), XenForo resource 7442, listed compatible with XF 2.1–2.3, $60, requires PHP 7.2+ and Standard Library by Xon. Features below are from that resource’s public page. Do not invent a second ticket product.
Decide the job before you create the inbox
Say “we need tickets” and four different queues answer. Pick one.
| Job | Who asks | Who must see it | Stock shape |
|---|---|---|---|
| Public how-to | Anyone, including guests | Everyone | Help pages + optional Page nodes |
| Technical support | Members (sometimes guests) | Author + staff; sometimes the whole forum | Question forum, or private + prefixes |
| Account / billing / ban appeal | One person | Author + staff only | Conversation, or a staff-only node plus a conversation (stock cannot hide other threads from peers) |
| Rule break | Anyone about a post | Moderators | Report system — not a ticket |
If the answer is row one, stop. Write the help page. A ticket add-on will not make a missing FAQ appear.
If the answer is row two and you can live with a public or staff-visible thread list, stock is enough.
If the answer is row three and “only author + staff, never other applicants” is the product, stock XenForo cannot do that in a forum. The whitelist article already said there is no permission that means “view only my own threads.” Conversations are the stock private channel. The add-on is the stock-shaped ticket channel.
If the answer is row four, open Reports. Do not clone a ticket category named “Report a user.”
Stock architecture
Four official pieces, one queue you invent with prefixes.
1. Help pages (the thing people should have read)
Official Communication chapter: help pages do not contact users. They impart information. A default install already ships Smilies, BB codes, Trophies, cookies, Terms and rules, and Privacy policy. Add-ons may add more. Terms and Privacy forcing lives in the Terms and rules section of the manual — not in this article.
Help page manager: add, toggle, delete. Editor fields official docs actually name:
| Field | What it does |
|---|---|
| URL portion | /help/{portion}. Example: getting-started → /help/getting-started |
| Title and description | Top of the page and in the manager |
| Display order | Help navigation; higher after lower |
| Page content | HTML plus XenForo template syntax (the page is saved as a template) |
| Advanced mode | Omits the usual wrapper. You own the styling |
| PHP callback | Developers only: PHP generates variables for the template |
Write three pages before you open a queue: getting-started, common-errors, contact-staff. Official editor steps, once, so you do not invent a fourth product:
- Open the Help page manager (Communication chapter — Help pages).
- Add help page.
- URL portion
getting-started— that is the only public path,/help/getting-started. Do not encode the year. - Title and a one-line description a skimming member can use.
- Display order
10. The next two pages are20and30. - Page content: HTML plus template syntax if you need it. Leave Advanced mode off until you have a reason to own the wrapper.
- Leave PHP callback empty unless you are a developer generating variables. Official: powerful, not easy for non-developers.
- Save. Open the public URL as a guest. Confirm the help navigation lists it.
Link those URLs from the onboarding path and from a Link forum if you want the tree to show them. Do not keep a second copy on a Page node and a third in a pinned thread. You will edit the wrong one.
Route filters can drop a pages/ prefix on page nodes. Official warning in the research: careful not to clash. Help URLs already live under /help/. Leave them there.
Index page route can be pages/page-name/ if the whole site is a handbook. That is a portal decision. It is not a ticket system.
2. Page nodes (a KB that sits in the tree)
Official node types: a Page is static HTML in the node tree. Official use includes FAQ / manual / knowledge base. Use a page when the answer does not need replies. Use a Question forum when it does, and mark a solution.
A small support KB that stays stock:
- Category
help(public) - Pages:
launcher,whitelist-rules,account-recovery - One Question forum
tech-supportnext to them
Search forums can view unanswered questions. They are not a home. The nodes article is the type picker.
3. Conversations (the stock private ticket)
Official contact methods include Messages (conversations) alongside alerts and email. Conversations are already permissioned, already searchable by participants, already off the public forum list.
Operational pattern for account issues:
- A help page says “for account or billing, start a conversation with
SupportStaff.” - That account is a real staff user or a shared mailbox account that several people can log into — shared logins are a security smell; prefer several staff invited to the same conversation.
- Staff invite the right specialist rather than forwarding screenshots into Discord.
- Close the loop in the conversation. If the answer is reusable, copy it to a help page. Do not leave the only copy in a PM.
Limits: no prefixes, no custom thread fields, no forum view, no public count of open cases. You have a mailbox. For a two-person staff on a hobby board, that is enough. For a team that needs “unassigned / mine / waiting on user,” it is not.
The whitelist article’s staff-only apply forum plus a conversation is the same mailbox. Reuse the policy. Do not invent a second one.
4. A support forum with prefixes (the stock queue)
When the answer can be public — launcher errors, “which Java,” “how do I set a prefix” — a Question forum is the right type. Official thread types since 2.2: discussion, article, question, suggestion. Questions mark a solution. That is the closest stock thing to “resolved.”
Forums → Nodes → add tech-support as Question. Description: one line that points at the help pages first.
Prefixes on that forum (same pattern as the whitelist queue):
| Prefix | Meaning | Who may set it |
|---|---|---|
New |
Just posted | Default on create, or staff only if you moderate new threads |
Waiting on staff |
Member replied | Staff |
Waiting on user |
Staff asked a question | Staff |
Solved |
Solution marked or staff closed | Staff |
Upstream |
Vendor / host / game bug | Staff |
Changing the prefix does not close anything and does not notify a workflow. It is a filter. Staff work the list by prefix, the same Monday-morning habit as applications.
Custom thread fields (Forums → Custom thread fields): belong to the first post, not replies. Display before message, after message, or in the thread status block (status block repeats on every page). Applicable forums + Editable by user groups — same pattern as prefixes. Useful fields: product (choice: board / game / billing), repro (multi-line). Do not put a password in a thread field. Official XML / thread storage is not a vault.
Private node on a billing or appeals forum: View node = Yes on Administrative, Moderating, and a custom Support group. Official: Private only clears View. Official: do not forget staff. Parent View still wins.
Privacy reminder, again, because support is where people paste emails: if Registered can View the node, they can read every visible thread. Stock has no “own threads only.” For ban appeals and payment receipts, use conversations or the add-on. Do not put card last-fours in a public question.
Moderate new threads on a public support forum is how you stop spam. It is also how you hide every new question from the people who could have answered it. Hold new-account URLs. Do not hold “Java version?” until you hire. The moderation queue is a page at a time.
Node-specific moderators on tech-support give a trusted member queue rights without a global moderator badge. They inherit to children. They are not a substitute for Private.
A worked stock desk
You run a gaming board. Launchers fail. Whitelist is a separate apply forum. Billing is rare.
- Help pages:
getting-started,common-errors,contact-staff. Display order 10 / 20 / 30. - Category
supportwith a Question forumtech-supportand a Pageaccount-recoverythat says “conversation with staff, never post your password.” - Prefixes as in the table. Default prefix
New. Registered cannot useSolved. - Thread field
productas a choice. Status block on. - Group
Support(secondary, styling optional). View on a Privateappealsforum. Conversations for anything with PII. - Notice: “Read /help/common-errors first.” Page criteria:
tech-supportonly. Dismissible. - Three sessions: guest can read help and public questions; fresh Registered can post a question;
Supportcan prefix, mark solution, and seeappeals. Analyze permissions.
That is a desk. Measure it for a month. If the pain is “inbound mail,” “guests without accounts,” or “I cannot see what is assigned to me,” you have add-on reasons. If the pain is “nobody wrote the FAQ,” you do not.
A Monday on the stock desk
Staff do not need a product to work a prefix queue. They need a habit.
- Open
tech-support. Filter prefixNew, thenWaiting on staff. - Read the status block (
product,repro) before the first post. If those fields are empty, reply once with the missing questions and setWaiting on user. Do not start a diagnosis in Discord where the next person cannot see it. - If the answer is already on
/help/common-errors, reply with that URL and mark the question solved. Convert the first post into a help-page sentence only if the help page was wrong. - If it is billing or a ban appeal, stop. Move the person to a conversation. Soft-delete or close the public thread if they pasted an email address. Do not “Private” the thread after the fact and assume peers did not see it.
- Prefix
Solvedwhen the member confirms or when you marked a solution. Prefix is not a workflow. The marked solution on a Question forum is the artefact. - Once a week, pick the three questions you answered twice and add a paragraph to a help page. That is the KB. The add-on later just makes the conversion a button.
Track two numbers, not a dashboard add-on: questions posted, questions still New after 24 hours. If the second number is the whole first number, you do not have a ticket problem. You have a staffing problem. The moderation article already said the 2.3 queue is a page at a time. The same math applies here.
When stock is the wrong tool
Stock XenForo will not:
- Create a ticket from an email sent to
support@your-board - Let a guest open a case, get mail replies, and come back through a password-protected session
- Assign a case to a staff member with a queue filtered to “mine”
- Run a workflow (“if waiting on user for 7 days, close and reply”)
- Convert a solved thread into a KB article in one action
- Hide every other ticket from the author in a shared list
If two or more of those sentences are the product, look at the named add-on. If they are wishes, write the help page.
Do not use user group promotions as a ticket state. Official promotions: hourly, recently-active only, empty criteria never award, disable does not demote. “Has open ticket” is not a criterion you should invent with a custom field you then forget to clear.
Do not use a user upgrade as a support SLA unless paid support is really the rule, written down, on its own group.
Tickets: Help Desk and Knowledge Base (Naz)
Resource 7442 on xenforo.com. Author Naz. Listed $60. Compatible XF 2.1, 2.2, 2.3. Additional requirements the resource names: PHP 7.2.0+ and Standard Library by Xon (related resource on the same page). License text on the resource forbids redistribution; yearly renewal is listed. Visible branding: no.
Public feature set, grouped the way the resource groups it. If a control is not named there, it is not named here.
Intake
- Member tickets in categories you define, with per-category permissions for who can view and reply
- Email channels that route inbound mail to a category
- Guest tickets without an account; email reply notifications; password-protected guest access, including a list of that guest’s tickets
- Inbound email character-set decoding
- Filtering for auto-replies, bounces, and mailing-list messages
- Replies to deleted tickets ignored; oversized inbound messages skipped
- Member accounts associated with inbound email only from verified addresses
This is the row stock cannot do. If your “tickets” are members posting in a forum, you do not need it yet.
Workflows
The resource describes workflows that act on tickets matching criteria such as status, priority, assignee, age, and category.
Matching workflows can change status, priority, category, assignment, prefixes, and tags; lock, approve, or delete tickets; post replies or internal messages; send alerts or emails; and create discussion threads.
Each workflow runs on activity, once per ticket, or continuously while a ticket matches. You can preview affected tickets before enabling a workflow. Custom criteria can be added through code.
Treat a workflow like a promotion: empty or sloppy criteria will fire on the wrong cases. Preview. Do not invent a “close everything” rule on day one.
Views
Views filter, sort, and name ticket lists. Each has its own URL and count. Built-in views cover open tickets, tickets assigned to you or other staff, deleted tickets, and all tickets.
Tickets can be assigned to staff and filtered by assignee or state. The main queue is itself an editable view. Any active view can be the default.
Staff can post internal messages visible only to the team. An inline activity log records status changes, reassignments, edits, and other activity.
That is the Monday-morning UI stock prefixes only approximate.
Notifications
Open tickets poll for new replies and activity without a page refresh. Members get alerts and emails. They can watch categories, tickets, or specific users. Business hours and holidays can tell customers when replies may be delayed.
Official XenForo Email options (PHP mail, SMTP, Google OAuth) still own transport. The add-on will not fix a dead mailer. Test Tools mail before you turn on inbound.
Knowledge base
Convert a forum thread into a public KB article, or copy a ticket message into a new article. The resource also names KB categories, permissions, attachments, and advertising positions.
This is the tidy end of a good ticket: the third person should read an article, not open case #1842. Stock help pages still matter for Terms, Privacy, and BB codes. Use the add-on KB for answers that start life as tickets. Do not migrate Smilies into it.
A later dedicated KB article will go deeper on page nodes versus help pages versus this add-on’s KB. This article only needs: do not run three canons.
Integration
The resource says it uses native XenForo permissions, alerts, search, moderation, and webhooks. Ticket and message webhooks are available on XenForo 2.3 and later. The 2.3 article already introduced webhooks as a core feature. Here they fire on ticket events, not only thread_insert.
Also named on the resource: custom fields, priorities, statuses, prefixes, tags, attachments, warnings, predefined responses (with ticket and starter details filled), inline moderation, admin batch updates, read tracking, search index inclusion, on-demand discussion threads per category, ticket merging that preserves participants and read records.
Install Xon’s Standard Library first. Confirm both packages list 2.3. Uninstall in the ACP before you ever delete files — orphan listeners are the upgrade white screen.
First week on 7442, if you buy it
The resource names the objects. It does not, on the public page, publish every ACP label for “create category.” Use the add-on’s own screens. Order of operations, not invented paths:
- Backup first — database plus
data/andinternal_data/. The backup article is the procedure. - Install Standard Library, then 7442, from the ACP. Confirm both show as installed.
- One ticket category (
Support) with per-category view/reply for Registered and forSupportstaff. Split later. - One view you will open on Monday (open, or assigned to you). The resource says the main queue is an editable view; any active view can be default.
- Guest tickets only if a guest is a real customer. Email intake only after Setup → Options → Email options already sends mail. Then one channel, one category.
- Two predefined responses (named on the resource): “need a screenshot,” “need the exact error.” One workflow after twenty real tickets — preview first; close-and-reply on age is enough. Webhooks on XF 2.3+ only if you have a destination.
- Convert one solved forum thread into a KB article so you know the button works. Do not bulk-convert Introductions.
If a control is not on your screen, the public resource page did not name it as required. Skip it. Do not install a second ticket product to supply a button you imagined.
Permissions and hygiene
Whether you stay stock or install 7442:
- Registered stays primary. A
SupportorHelpdeskgroup is secondary. The permissions primer and the mistakes article both open with that sentence because people still promote a tech lead by changing primary. - Analyze permissions as a guest, a throwaway Registered, a
Supportmember, and a moderator. Private nodes that lock staff out are not premium. They are bunkers. - Require two-step verification = Yes on Moderating and Administrative (official user-group general permission). Support staff who can read billing conversations are administrators in practice.
- Do not collect more than you will defend. Custom user fields export with Users → Data portability XML (all custom field values). Thread fields live on the first post. A leaked ticket with a real name is your incident.
- Shared
SupportStaffpasswords are how you fail an audit. Invite people to the conversation or assign the ticket.
Discord can hear a webhook. It should not be the ticket. A case that only exists in a guild channel has no activity log, no guest access, and no KB conversion.
What not to build
A second report system. Official reports already take “this post is wrong.” Tickets take “I need help.” If staff keep moving reports into tickets, your categories are wrong, not the software.
A prefix that grants a group. Same lie as the whitelist. Prefix VIP support does not add Subscribers. A person does.
HTML forms on a Page node that POST nowhere. Official pages are templates. They are not an intake API. The whitelist article’s “do not fake it with a page node of HTML forms” applies here.
Three FAQs. Help page + page node + pinned thread + add-on KB is how “how do I reset 2FA” has four answers. Pick a canon per topic.
An inbound mailbox on day one if you have not fixed outbound. Official transport first. Bounced email address on Setup → Options → Email options. Then, if you still need it, an email channel on 7442.
Checklist
- You can name the job: public how-to, public tech, private account, or report.
- Help pages exist for the three questions you already know. URL portions are stable.
- Public tech is a Question forum with prefixes and, if needed, one thread field.
- Private account issues are conversations or a Private node whose privacy policy you have written down (stock cannot hide sibling threads).
- Reports stay in Reports.
- If you buy 7442: Xon Standard Library, PHP 7.2+, XF 2.3 webhooks only if you are on 2.3, one category, one view, one workflow after a week — not ten on install night.
- Mail works in both directions before you advertise
support@. - Three sessions still make sense after you add the
Supportgroup. - Cron last-run is today. Workflows and promotions do not fire if cron is dead.
- The backup was taken before you installed the add-on.
Takeaways
- Stock support is help pages + a Question forum + conversations + an optional Private node. Prefixes are the queue.
- Stock will not hide other people’s threads, will not eat inbound mail, and will not assign a case. Those sentences are how you know you need Tickets: Help Desk and Knowledge Base (Naz, resource 7442, $60, Xon Standard Library).
- Do not invent another ticket product. Do not treat the moderation queue as a helpdesk.
- Write the FAQ first. The add-on does not replace
/help/getting-started. - Prove guest / Registered / staff after every permission change. Then, if the mailbox is still the pain, buy the mailbox that is actually a ticket system.
Support is a trail. If you cannot find last week’s answer, you do not have a desk. You have a forum named Support. Name the rooms, write the three help pages, and only then spend the sixty dollars.

