New, free * You are told when a colleague is on the same ticket. A line above the reply box names whoever else has it open, and says so more loudly when one of them is actually typing — so the second person to arrive finds out before writing the reply rather than after sending it. The bar is empty and invisible on a ticket nobody else is on, and somebody who leaves the ticket, closes the tab or switches to another window drops off it within a minute. Nothing is stored: it is worked out from who is on the page right now. * And if a reply lands while you are writing, the ticket says so. Someone who arrives, answers and leaves in the time it takes you to compose a paragraph would otherwise be invisible, and the customer gets two answers that do not agree. The composer notices the ticket has moved on and offers to reload it before you send. It never stops you sending — if you have read the warning and still mean to reply, you are usually right. * Your reply is kept as you type. The composer saves a copy in your browser as you write and another on the server every twenty seconds, so a refresh, an expired session or a closed laptop no longer costs you a long reply. Come back to the ticket and it offers the unsent text back with the time you last touched it — it never pastes it in for you, because quietly restoring something you had abandoned is how a half-finished reply gets sent. Public replies and internal notes are kept separately, drafts are yours alone even when a colleague is on the same ticket, and posting clears them. * System Status, a page answering the questions a support engineer asks first: versions and limits, whether every scheduled job is actually running, whether the plugin can write to the folders it needs, what happens to your data if the plugin is deleted, and the most recent errors. Below it is a Download debug file button producing one file you can attach to a bug report — with passwords, API keys and licence keys stripped out first. Redaction is default-deny: anything whose name looks like a credential is removed, and so is anything that looks like one regardless of its name. * Each page load now carries a short identifier that appears on any error it records, so a support engineer can ask for everything from one click rather than guessing which log lines belong together. * Setup, a six-point checklist that tells you whether this help desk actually works yet: a page your customers can use, an address to send from, somewhere for tickets to go, somebody to answer them, proof that e-mail leaves the building, and one ticket raised end to end. Every point is checked against your site each time you open it — not against what you have clicked — so it is still right when somebody else inherits the site, and it notices if the help desk page gets unpublished a year from now. The page can be created from the list in one click; the rest take you to the screen that already does that job. It appears in the menu with a count of what is left, and you can hide it whenever you like. A one-person help desk with no Agents add-on counts as complete rather than being shown a step it can never finish. * Email Health, a new screen under Emails, for the complaint every help desk gets and nobody can answer: “I never got the e-mail.” It reports the four things that actually explain it. Who sends your mail — a named plugin if you have one, or a warning that nothing does and WordPress is falling back to PHP mail(), which most hosts either block or send from an address receiving servers do not trust. What address your notifications claim to be from, and whether that will survive the checks receiving servers run: sending as a Gmail, Yahoo or Outlook address is called out as the outright failure it is, because those providers instruct receivers to discard mail sent on their behalf from anywhere else. Whether the last message this site tried to send was accepted or refused, with the mail service’s own error if it was refused. And whether the scheduled jobs behind mail collection are actually running, including the case where WP-Cron is switched off in wp-config.php and nobody set up a real cron to replace it — a site in that state looks perfectly healthy until somebody asks why no e-mail has been collected for a week. * A test message you can send from that screen to any address. It travels exactly the same path a real notification does, so whatever handles your mail handles the test too, and the result tells you what happened rather than just that it failed. * One place to write, and no doubt about who will read it. Posting an internal note used to mean opening a pop-up that looked nothing like the reply box; now the reply box itself has two modes — Public reply and Internal note — switched with a tab above it. Internal mode turns the whole composer amber and states plainly that the customer cannot see it and will not be notified. The two remain separate forms behind the scenes, so text written as a note cannot be posted as a reply. * The ticket list keeps its card-per-ticket layout, and gains the things it was missing: a Compact switch that fits about a fifth more tickets on a screen, and keyboard movement — j and k move between tickets, Enter opens one, x ticks it for a bulk action. Nothing fires while you are typing in the search box. Cards were kept deliberately: any field on this system can be flagged “show on listing”, custom fields included, so the number of things to show is set by you and has no limit. A card stacks label and value, so twenty fields make the card taller; columns would have made the page scroll sideways. * Keyboard navigation. j and k move down and up the list, Enter opens the ticket, and x ticks it for a bulk action. Nothing fires while you are typing in the search box or a filter. * Help Topics are now just Topics, and they do considerably more. A topic can sit under a parent topic, up to three levels deep, so “Billing → Refunds → Chargebacks” is one structure rather than three unrelated entries — and the nesting shows as an indented tree on the topics screen and in the ticket form’s list. A topic that would end up underneath itself, or nested too deep, is refused with the reason; a topic that still has topics underneath it cannot be deleted until they are moved. * A topic can name the agent who owns it, and one topic can be marked as the default and is preselected on the ticket form. * Topics now fill in the form. Choosing one sets the department and the priority the person filling in the form has not already chosen — an explicit choice is never overridden. The rule runs on the server as well as in the browser, so a ticket arriving by e-mail or from a form whose scripts did not load is routed the same way as one typed in by hand. * Search the ticket queue. One box above the list searches the subject, the customer’s first message, every reply on the ticket, the customer’s name and e-mail address, and the ticket ID — all at once. Type two words and you get the tickets where both appear, wherever they appear: “refund invoice” finds the ticket whose subject says refund and whose third reply says invoice. Put quotation marks round words to search them as a phrase. The search narrows whatever tab and filters you already have set rather than replacing them. * Two new queues answer the question the ticket list never used to. Waiting on Agent is every open ticket whose last word came from the customer — the work that is actually yours. Waiting on Customer is every open ticket whose last word came from an agent. Both are worked out from who replied last, so they are right on day one, on a site with renamed statuses, and on a site with statuses of its own. * Saved views. Set up the search and filters you use every morning, give them a name, and pick them from the list next time. A view stores the tab, the search, and every filter on the screen, and choosing one puts the queue back exactly as it was. Views are your own — nobody else sees yours. Shared and team views remain paid features. * Ticket tags. Any ticket can carry tags, typed as a comma-separated list on the ticket screen, with the tags already in use suggested as you type. Spelling and case do not create duplicates: Billing, billing and BILLING are one tag. Tags show on the ticket list, clicking one filters the list to it, and the queue has a tag filter of its own. Every tag change is recorded on the ticket history with who made it. Tags are internal — customers never see them. * Retention cleanup is now part of the free plugin, and it will tell you what it is about to do before it does it. The settings screen shows how many tickets would be permanently deleted, how many attachments would go and how much storage that frees, the cutoff date, the exclusions in force and the oldest tickets in scope — recalculated every time you open the screen, deleting nothing. You can keep whole departments or priorities out of retention, and the last run is reported with what it removed. Archive tiers, legal hold and deletion approvals remain paid features. * Blocking senders is now part of the free plugin, and it can block a whole domain: enter an address to block one person, or a domain such as @throwaway.example to refuse every address at it. Entries are validated when you add them and duplicates are refused, so a rule that blocks nothing cannot sit in the list looking as though it works. Wildcards and regular expressions, imported lists, automation, the ban log and reputation signals remain paid features. * Ticket limits per customer are now part of the free plugin: a lifetime cap and a cap on how many tickets one customer may have open at once, both with a message that tells the customer the number rather than a bare refusal. Plan, product, customer and company quotas remain paid features. * Ticket export is now part of the free plugin, and it is real CSV. Filter by date range, department, agent, customer, priority, status or overdue, and download a file with one row per ticket that opens directly in Excel, LibreOffice Calc, Numbers and Google Sheets. Large exports stream rather than being built in memory. Scheduled exports, XLSX and PDF, audit packages and anonymisation remain paid features. * The WordPress dashboard widgets are now part of the free plugin — latest tickets and ticket counts on your wp-admin home page — and the help desk dashboard’s reports can now cover the last 7 or 30 days, chosen per administrator. Which cards appear was already yours to configure. * The Email CC add-on copies any notification to extra addresses as Cc or Bcc, per e-mail template. Addresses are now checked when you add them, so a mistyped one is reported instead of silently breaking every notification it was attached to. * A second agent tier, and both tiers are ordinary WordPress roles you can hand out from Users without the Agents add-on. Help Desk Light Agent is new: it reads the ticket queue and writes internal notes, and that is the whole of it — it cannot answer the customer, cannot close, reopen, re-prioritise, transfer or assign a ticket, cannot edit what has already been written, and cannot publish to the knowledge base. It is the seat for the developer who has to look at the bug but must not reply to the person who reported it, and for the manager who wants to read the queue without being able to speak for the company in it. Help Desk Agent is the existing role and works the queue in full: reads it, answers customers, moves tickets through their life, edits a ticket or a reply, and writes the knowledge base and the FAQ. Both get their own menu in wp-admin showing tickets and nothing else — no settings, no configuration. Deleting and merging tickets are deliberately in neither role; they are destructive and hard to undo, so they stay with administrators until you grant them to a role on purpose. * The registration settings are now part of the free plugin: the role given to people who sign up through the portal, and whether the registration form is verified. The role list is restricted to roles that are safe to hand out publicly — Administrator, Editor and anything else that can administer the site, manage users, publish content or work tickets is no longer offered, and the screen says which roles were left out and why. * Help topics are now part of the free plugin, working exactly as the add-on did: the topic list with ordering and activation, the add and edit screen, the topic field on the ticket form, the topic column on the queue and the ticket, and the department and priority a topic routes a ticket to. * Ticket actions are now part of the free plugin: lock and unlock, mark in progress, change priority, transfer department and the print-friendly view. Three things are new on top of that — you can give a reason for any action and it is recorded on the ticket history; you can select several tickets in the list and lock, unlock, close, reopen, mark in progress, re-prioritise or transfer them in one go with a single reason recorded against each; and the ticket screen has keyboard shortcuts (R reply, I in progress, L lock, P priority, S status, N note, H history, M merge). * The Merge Tickets add-on does more than before: tick several tickets and merge them all into one in a single step, see likely duplicates flagged with a match score, read a preview of exactly what will change and what is kept before confirming, and find every merged ticket listed on the one you kept — with an Unmerge link that restores the status it had before. Nothing is moved or deleted by a merge, so it is always reversible. * Canned responses are now part of the free plugin: a shared reply library with placeholders. Write a response once with {customer_name}, {ticket_id}, {agent_name}, {ticket_url} and the like, and each one is filled in from the real ticket the moment an agent inserts it. Folders, teams, permissions, approval, usage analytics and AI rewrite remain paid features. * Internal notes are now part of the free plugin. Post a private note with a title and an attachment, add a reason note when transferring or assigning a ticket, and read the note thread on the ticket. Notes are never shown to the customer. @mentions, restricted visibility and approvals remain paid features. * Ticket history is now part of the free plugin. Every ticket has a readable activity timeline showing who acted, where the action came from (portal, backend, e-mail, cron, API) and which field changed from what to what, with filters by event and source. Immutable audit export and long retention remain paid features. * Modern spam protection. The new built-in method is invisible: a hidden field, a submission-timing check and a small calculation your visitor’s browser does automatically. No account, no third-party request, and nothing for a customer to read or solve. Visitors with JavaScript switched off still get a simple arithmetic question. * Cloudflare Turnstile and hCaptcha are supported alongside Google reCAPTCHA v2 and v3, chosen from one Verification method setting, all verified on the server. reCAPTCHA v3 accepts or rejects on a score you set. * Per-visitor submission rate limits on the ticket and registration forms. Agents and administrators are never limited.