Skip to main content

PBJ Helpdesk — Changelog

Current release: 2.35.0 (August 2026)

2.35.0 — 16 August 2026

Ticket reporting now lives on the CRM’s unified Reports screen. Helpdesk registers its searchable ticket report only while the module is installed, so there is one reporting destination and no empty Helpdesk placeholder when it is absent.

Requires PBJ CRM 1.46.0 or newer. No database change.

2.34.0 — 16 August 2026

Current tickets now appear in the CRM profile’s Everything view. They are filed for the customer, the business, the assignee and the member of staff who created them, while the existing CRM visibility rules still decide who may see each row.

Personal helpdesk notification choices now use the CRM’s self-service Notification settings on the staff member’s own profile. Owners continue to control site and group notification rules in admin. Requires PBJ CRM 1.44.0 or newer; no database change.

2.33.0 — 16 August 2026

Your name in the CRM top bar now opens your own CRM profile and timeline. Helpdesk no longer redirects it to notification and canned-reply settings; those settings remain available from Helpdesk navigation.

Requires PBJ CRM 1.44.0. No database change.

2.32.0 — 15 August 2026

“First reply” is now a record of what happened instead of an editable box. First reply due and resolution due remain editable targets, and a ticket with no reply yet says “Not yet”.

The assignee, requester and client names link to their CRM records only when you are allowed to open them. Triage no longer pulls the whole Tickets menu in or appears twice; Reports and site settings live on the CRM’s shared screens; and dialogs follow the chosen theme.

2.31.1 — 15 August 2026

A ticket made from a visit was being recorded as if somebody had typed it in by hand. When a booked job is turned into a follow-up ticket, the ticket was stored as hand-logged work, and the only trace of where it really came from was a reference number nothing ever put on screen. A ticket now knows that a visit can be where it started, and the opening line of its history says “opened from a visit”.

That opening line now names any way of raising a ticket, including one it has not been taught yet. It only ever mentioned email, so a ticket that came in from a form or from a visit said nothing at all about where it came from.

“Who this is with changed” shows properly in the history again. That note has been written since 2.30.0 but was never registered with the timeline, so it turned up with no icon, no heading, and could not be filtered for. It now reads like every other entry.

No database change.

2.31.0 — 15 August 2026

A ticket is now something you can attach things to — tasks, notes and files. One declaration to the CRM does all three.

Anything attached to a ticket follows it when the ticket is escalated to a visit, and comes back if that visit is turned back into a ticket.

The ticket’s own number is used wherever an attached item says where it lives — the number stored on the ticket, never one worked out from its id, so it always matches the number on emails you have already sent.

Also carries the to-do box fix from 2.30.2, which was never released on its own.

2.30.2 — 15 August 2026

The “add a to-do” box now has a width of its own. It relied entirely on being stretched to fill its row — the same shape that collapsed the CRM’s checklist box to a sliver on an iPhone.

The phone case was already handled here and is untouched. On a narrow screen this row has always stacked so the box takes a full line. What is new is the band between a phone and a laptop, and any browser that will not stretch a box at all.

Found by sweeping for the same shape everywhere after fixing the CRM, not from a separate report. Look only, and no database change.

2.30.0 — 14 August 2026

Send and close. A reply box now has a second button that sends your reply and closes the ticket in one press, after asking you to confirm. If the reply fails to send the ticket stays open; if the reply sends but the close fails, you are told that plainly rather than being left to send it twice.

Closing is a button, not a date. The “Closed” row used to be a date field, which let you write a closing date onto a ticket that was still open — a ticket claiming to be finished while sitting in the open list. It is now a Close button that actually closes it, which means the notifications go out and the customer is told.

The opening date and time can no longer be changed. When a ticket was opened is the fact everything else is measured against — the response clocks, its age in every list, the order of its history — so it is shown as plain text now.

You can say who a ticket is with. A ticket logged over the phone, or an email whose sender was not recognised, had nobody on it and no way to add one. There is now a picker, the same one used for choosing the customer. A ticket still does not need one — “set to nobody” is a real choice, not a mistake.

2.29.0 — 14 August 2026

You can now add ANY email to ANY ticket by hand. Open an email in the mail client and press “Add this email to a ticket”, then search by ticket number, subject or customer. Until now the only way to file an email onto an existing ticket was to accept the one ticket the help desk had guessed for you — and when it guessed nothing, or guessed wrong, there was no way to do it at all.

The mail client can now be opened by your agents — but only if you switch it on. It is OFF when you update, so nothing changes for anybody until you tick “Let agents use the mail client” under Helpdesk settings. With it off the mail client stays administrators-only, exactly as it has always been.

Once you have switched it on: an agent sees an email attached to a ticket only if they can see that ticket. Email that is not on a ticket yet belongs to nobody, so any agent can pick it up and file it — that is what filing an email requires, and it is spelled out on the settings screen before you turn it on. Attachments follow the same rule as the email they came from.

Emptying the bin, blocking a sender, composing, retention and the mailbox list are unchanged and still administrator-only.

2.28.0 — 14 August 2026

The help desk can answer “what does this customer see”, and the standalone page finally has a margin.

On a contact or business in the CRM there is a new Show as client button. The help desk is what fills it in: it hands over that customer’s tickets in the same shape a client sees them — the number, what it is about, where it has got to and when — and nothing an agent sees. No assignee, no clock, no internal notes. Closed tickets are included, because a customer’s own page is their history.

The standalone help desk page had no margin at all. If your help desk is on its own page rather than inside the PBJ CRM portal, everything on it started hard against the left edge of the screen. It now has a proper gutter. Nothing changes if you run the help desk inside the CRM portal, which already supplied one. No database change.

2.27.0 — 14 August 2026

The ticket screen has one place for the facts, and every one of them can be changed where it stands.

Who it is assigned to, which team, who it is for, the category, the status, the priority and all four dates now sit in a single Attributes panel down the right-hand side — and each one is a live control, not a label. The five separate boxes that used to restate those same facts underneath are gone: the screen used to say everything twice, once as text and once as a control, and the two could disagree while you looked at them.

Choosing the business or person is now a pop-up rather than a permanent block of the sidebar. Dates can be corrected for the first time — a job phoned in on Friday and logged on Monday can be dated Friday — and every correction writes the old value and the new one onto the timeline, so the record gains the correction rather than losing the original.

On a phone the order changed: Attributes at the top, collapsed, then the conversation, then your checklist, then the portal account, with the requester’s details last. The requester card now starts closed and its email, phone and web addresses are clickable. Print puts every panel back on the page. No database change.

2.26.2 — 13 August 2026

Housekeeping, all of it invisible in normal use. The mail checker was writing a PHP warning into the site’s error log every single time it ran, and the same fault meant that on an email made of several parts the help desk could take the wrong part as the message body. Nearly all email is one part, which is why this never turned into a complaint. A second fault logged a database error while WordPress was working out its scheduled jobs, and on one occasion stopped the schedule list being saved at all. A third logged a database error when updating from 2.12.0 or earlier. Mail delivery itself was never interrupted. No database change.

2.26.1 — 13 August 2026

Fixes the amber “due today” chip in the Triage feed, which could never appear. It tested for two words that nothing in the suite has ever sent, so in practice a row either showed the red overdue chip or showed no chip at all. It now recognises the word the CRM actually sends, and the older wordings are kept as well, so an older CRM behaves exactly as it does today rather than losing the chip. A finished job still gets no chip, which is the point. No database change.

2.26.0

A ticket now reads in a fixed order. Who it is for and who is handling it, then what it is about, then when it came in, and then why. Conversation and Timeline sit underneath, both working exactly as they did before.

You can now rename a ticket. Click the subject and type. Managers and owners only, and the change is written onto the ticket’s timeline, so everybody can see what it used to be called.

A clear Edit button at the top, and a print button. Printing a ticket now leaves out the menus, the reply box and the welcome banner.

2.24.0

An assistant can now answer a ticket, not just raise one. Until now it could start a ticket and read one, but it could not reply. It can now post a reply the customer sees, or a note only your team sees, and it obeys exactly the same rules about who may write what that the portal obeys. Internal notes are only ever in the list for the people entitled to see them, and that decision is made in one place rather than two.

It can also look up your categories and your status steps. An assistant can ask what categories you have, and what the steps are on one of them, so it can file something in the right place without first having to open another ticket to see what the right place is called.

2.23.0

“What has changed since” now gives an honest total. Ask an assistant which tickets have changed since a date and the number it reports is the number that really did change, and it agrees with the tickets listed beside it. It used to hand back the total for every ticket you have, so the count stopped short of the truth — an assistant reading it would either give up early or keep hunting through work that was not there. An assistant asking what has changed now gets the complete answer.

2.22.0

Triage is rebuilt as the place a manager or owner runs the whole day. Everything due across the system — tasks, tickets and visits together; incoming mail still to be turned into tickets; and your teams: a card for every member of the groups you manage, with their open and overdue counts and a “Give it to them” button, plus staff not yet in any group in a simple list. Managers and owners get it — not just administrators.

Triage no longer appears inside Tickets. It lives in the Dashboard, full stop.

Fixed: clicking an email in the inbox opened My Queue instead of the email. Opening a message now works from anywhere you can see one.

2.21.0

Tickets are available to the CRM’s new assistant connector (Apps & Assistants). Requires PBJ CRM 1.29.0 or newer.

2.20.0

My Queue no longer shows closed tickets. Clicking “Your open tickets” in the top bar used to land on a list that mixed in tickets you had already closed. My Queue and the group queues now start on open tickets only, and both carry the same All open and closed · Open · Closed choice the other ticket lists already had — your closed tickets are one click away instead of mixed in with the live ones. Unassigned is deliberately unchanged: a ticket waiting to be assigned is open by definition. No database changes.

2.19.0

Mail now has exactly one home. The mail client lives in Communication ▸ Help desk inbox only — the Tickets and Triage sections no longer build a Mail pill or the mail screen behind it. And Triage joins the CRM’s new Dashboard group as the landing screen for administrators, alongside PBJ CRM 1.28.0.

2.18.0

The ticket search now honours the search’s per-kind limit exactly as documented. No visible change on most sites.

2.17.0

The help desk now feeds the CRM’s new top bar: your open-ticket count (the same number the triage screen shows) and, for mail managers only, the unread inbox count. Ticket search joins the CRM’s new global search — subject, reference or customer — and only ever returns tickets you could already open. Clicking your name in the top bar opens your helpdesk profile. Requires PBJ CRM 1.24.0 for the new bar; on an older CRM everything simply stays as it was.

2.16.0

Phase 14’s help desk half. No database change.

The booking form speaks your words. If PBJ Dispatch (1.4.0+) has been told to call a visit a “call-out” or an appointment a “fitting”, every sentence on the “Book this in” form says so too. With an older Dispatch, everything reads exactly as it did.

Handing the job over. Managers and owners can hand the new visit to a different agent right on the booking form — “Who is doing this one?”, with the current agent pre-picked. The list only ever contains people the server will actually accept, and when there is nobody it says so in a sentence instead of showing an empty box. Employees see who has the ticket and no picker.

A directory fix. A manager who was not in any team used to see a directory containing only themselves. The list now comes from PBJ CRM’s one suite-wide roster (CRM 1.23.0+): your teams, plus staff not yet in any team, never anybody above your own rank.

2.15.0

Two things, both about letting the rest of the suite reach a ticket. No database change.

A “Create an invoice” button on a ticket — open or closed. The row of buttons at the top of a ticket was written for PBJ Dispatch and only ever drew for it. It now draws for PBJ Invoicing as well, so with PBJ Invoicing 1.16.0 or newer you can turn any ticket into an invoice, including one you have already closed. Each add-on is checked separately, so having one and not the other never hides the other’s button, and on a site with neither the bar looks exactly as it did.

People who are not in your contact book can open a ticket. Until now every way into the help desk needed a login. There is now a public ticket-intake seam, and its first user is the public invoice page: a customer looking at their invoice can ask a question about it and it arrives as a ticket, with no account and no password.

Worth being clear about what that does and does not mean. Nothing on your site becomes publicly reachable just by updating — the seam is a socket, and with nothing plugged into it nothing happens. It is deliberately built as a place things plug into rather than as one fixed form, so a proper public contact form can arrive later without changing the help desk. The spam trap, the rate limits and the confirm step all belong to the help desk itself, so nothing that plugs in can switch them off. And a stranger’s typed-in name does not go into your contact book: their details arrive on the ticket, where an agent reads them and adds the person deliberately.

2.14.0

Agents can now add a brand-new person or business right from the new-ticket screen — no hopping over to the CRM first. The “Who is this for?” boxes on the new-ticket form now use PBJ CRM’s shared contact picker: type a few letters and matching people and businesses appear together, and when nobody matches, the box offers to add them on the spot with a small name, email and phone form. Nothing is ever created without you asking. Needs PBJ CRM 1.22.0 or newer to appear; on an older CRM the form keeps its own search boxes, unchanged.

Every person and business page in the CRM (1.22.0+) now carries a “Start something” row, and the help desk puts a “New ticket” button on it. Pressing it opens the new-ticket form with that customer already chosen — a business record arrives in business mode, a person in person mode — and either can still be changed or cleared before the ticket is made. Opened any other way, or on an older CRM, the form behaves exactly as it always did. No database changes.

2.13.0

The spam pile now has an “Empty the spam pile now” button, the one the bin has had for a while — and both buttons now tell you what they left behind. Email that belongs to a ticket is never deleted, so an “empty” can legitimately leave messages behind: instead of a bare number that does not add up, you now get how many were deleted and how many were kept, and why, and the two always reconcile against the pile’s badge.

A new “All mailboxes” entry at the top of the mail rail shows every mailbox’s mail in one list, with the pile counts added up to match. It only appears when you actually have more than one mailbox, and you cannot send from it — composing picks a real mailbox.

And when one email address belongs to more than one customer, the ticket now asks you which one it is for, offering the choices instead of quietly filing under the oldest — anything you have taught it before is listed first and marked as remembered. It only ever asks: nothing is written until you click a name, so tickets filed correctly months ago are unaffected, and it only names records your own account is allowed to see. There is a small database change (schema version 9): one address can now REMEMBER more than one customer. One index changes shape and nothing else — no message, ticket or contact is deleted, updated or re-filed. Shared addresses need PBJ CRM 1.20.0 or newer.

2.12.0

Four fixes from a sweep of things reported on the live site. The Welcome line at the top of the portal now stays gone once you close it — it used to come back in the next tab, the next day, and the moment somebody’s role changed. Emails now always open on a white page in the mail screen: on the dark colour schemes a plain email could come out as dark text on a dark background and simply could not be read. The little calendar button on the “Book this in” date box is visible on the dark schemes instead of a black smudge. And one email address is now allowed to belong to more than one customer — the help desk still files a ticket under exactly the customer it always did, it just now knows when there is more than one possible answer, ready for the screen that asks (which arrived in 2.13.0). Shared addresses need PBJ CRM 1.20.0 or newer; on an older CRM everything else here still works, unchanged. No database changes.

2.10.0

New: a documented seam for other plugins to hold back one closure email. When a ticket is closed, the help desk now asks — once, for that close — whether the “your ticket has been closed” message should be sent. With nothing listening, it sends, exactly as before.

Why it exists. PBJ Dispatch closes a ticket when it turns it into a booked visit. Without this, the customer would get the booking confirmation and a closure notice in the same minute, for one job. The help desk does not know or care which plugin is asking; it just asks the question.

Only the email is held back. The stage change, the closed stamp, the silent claim, the timeline note and the status-changed action all still happen, exactly as they do for any other close. There is no site-wide “closure emails off” switch, and this is not one.

The existing bulk-manager behaviour is unchanged and still takes precedence on its own.

No database changes. Pairs with PBJ Dispatch 1.1.0, released alongside it.

2.9.0

A safety release for the database. On a site where an earlier update had only partly applied, the help desk could fail in ways that looked like something else entirely — new tickets refusing to save, incoming email quietly not being stored, or a mailbox connection being made over and over. Every one of those paths now checks first and steps around the missing piece instead of failing, and the site repairs itself the moment the database catches up.

The plugin also stops recording a database change as done unless it can see that it actually happened, and stops retrying for ever on a host that will never allow it — after five attempts it leaves one clear notice naming what is missing.

It also now checks that PBJ CRM is not just installed but new enough. On a site running an older CRM the help desk could take the whole site down; it now shows one notice and loads nothing. Some tidying of code and settings nobody used. No database change.

2.8.0

Your tickets now appear on the CRM’s new Today screen, alongside your tasks, in one list sorted by when things are due. You still only ever see the tickets you were already allowed to see — the help desk decides that, exactly as it does on every other list, and the CRM only merges what it is handed. Update PBJ CRM to 1.16.0 as well, or Today will show tasks only.

The per-stage status dropdown has been removed from every ticket list. Every row already prints its exact status in the Status column, so the dropdown asked you to re-specify something you could already see — and it was the half of the pair that produced silent empty lists, because its “Open” meant one single stage while the control beside it meant “not closed”. What survives is the simple one: All open and closed · Open · Closed.

The triage screen’s “New messages (not tickets yet)” card has been removed. It counted inbound mail sitting in spam, in the bin and in filed, while the list directly beneath it showed the inbox only — so it could read “191” over an empty list. The inbox is right there underneath; the number was not telling you anything the list was not.

2.7.0

The Email Templates and Canned Replies tabs have gone from the help desk’s own settings. Both editors moved to PBJ CRM’s Templates & Notifications tab back in 2.5.0, and until now they sat in both places at once — the same editor behind two different doors. Every link and button that used to point here takes you straight to the CRM tab instead, including the “Review the templates” step in the setup guide. Nothing about the templates themselves has changed and nothing has been deleted. On a site still running a CRM older than 1.12.0 the two tabs stay exactly where they were, so nothing can become unreachable. No database changes.

2.6.0

When you reply to a ticket you can now choose which of your mailboxes it goes out from, instead of the help desk always deciding for you. Leave it alone and it decides exactly as before. The choice applies to public replies only — an internal note is never emailed, and a client never picks the address your business sends from. No database changes.

2.5.0

The triage screen now leads with the tickets assigned to you. Its first tile used to count new messages, which is not something anybody is answerable for; it now counts your own still-open tickets and opens them as cards when clicked. Open-ness is read from each ticket’s own status path, so a category with its own stages is counted properly rather than against a fixed list of names. “Tickets waiting to be assigned” appeared twice — a tally and the heading of the list it was counting, each fetched separately; the tally and its database query are gone. New messages have moved to the top of the screen. Clicking a person on the Team screen now shows what they have been working on beneath their open tickets — replies and notes across every ticket you are allowed to see, newest first, each naming its ticket, with a filter by kind of activity. You can add your own sign-off to replies, written once on your profile using your name, job title and direct number; it is off until you turn it on, and a manager can set a shared one instead. Categories can carry their own wording, so a “Billing” ticket reads differently from a “Technical help” one — fill in only what differs. Email templates and canned replies have moved to PBJ CRM’s Templates & Notifications tab alongside every other add-on’s, and groups are now created and edited in the CRM, leaving this Groups tab as “Group categories” for the one job the CRM cannot do. History, Reports, Team, Settings and Profile are tucked under a single “Settings” button rather than sitting in the main row — nothing moved out of reach and nobody sees more than before. Security: the sign-up link at the bottom of a client’s email now expires after 24 hours and offers a fresh one, where before it worked indefinitely, so a forwarded email handed account setup to whoever received it. Requires PBJ CRM 1.10.0 or newer. No database changes.

2.4.1

A fix for 2.4.0. On some servers the database update from that release did not complete, and when that happened the mail list came back completely empty — while the message count above it still showed the right number, so the inbox looked wiped rather than broken. No mail was ever lost. This release repairs the database by itself on the next page load and the list comes straight back.

Two related fixes came with it. The update used to record itself as finished even when the database change had been refused, so it never tried again; it now only records success once the change is really in place. And every part of the plugin that uses the new columns checks they exist first, so a site part-way through the update keeps replying, keeps taking internal notes and keeps collecting email as normal — you simply do not get follow-up suggestions until the update finishes.

2.4.0

Plenty of customers do not press reply. They open a brand-new email, type the same subject, and send it — and until now that landed in your inbox looking like fresh work, with the ticket it belonged to sitting open two feet away. The helpdesk now spots those. When an email arrives from the same person, about the same thing, as mail already on a ticket, it gets a caution mark in the inbox, and opening it offers Add to ticket HD-n — showing you that ticket, what it is about and whether it is still open, so you can check before you agree. Nothing is ever attached on its own. There is a Not a follow-up button too, which clears the prompt and leaves the email where it was.

Every ticket also has a new Timeline tab beside the conversation: the whole life of the job in order, day by day — opened, what the customer wrote, what you replied, internal notes, status and priority changes, reassignments, category and customer changes, missed response targets, and follow-up emails you added. When a job has dragged on and somebody asks what actually happened, the answer is one tab away. Tickets you raised long before this update get a full timeline too. Internal notes stay staff-only there, and group tickets stay nameless, exactly as everywhere else.

The database updates itself when you upgrade. A background job fills in what is needed to match older mail; until it finishes, suggestions simply do not appear for that older mail.

2.3.0

A bug-fix release from a full code review. Seventeen colour tints across the portal — status pills, notice backgrounds, hover shades — were being thrown away by every browser because of a stray character in the stylesheet; they all render again. An email you sent can no longer be marked as junk, which used to block your own sending address. Deleting a ticket now files your sent replies instead of dropping them into the inbox as if they were new mail. While PBJ CRM is running, new mailboxes are created there rather than here, so one address is never set up twice.

2.2.0

Email that became a ticket now lives in a permanent Tickets pile — kept for reference until the ticket itself is deleted. New “Manage tickets” screen: every ticket in one filterable list with bulk assign, group, category, status, priority, customer, CSV export and delete (bulk actions only email people when you tick the box).

2.1.x

Invites are sent only when an agent asks (with a confirm naming the recipient); closing a ticket emails the requester a closed notice; every reply footer carries the portal link and the customer’s own never-expiring sign-up link. Full mobile pass.

2.0.0

The helpdesk became a true module of PBJ CRM: your agents ARE your CRM staff — one list, one set of roles, nothing programmed twice. Existing helpdesk staff are moved onto CRM roles automatically.

1.5.0–1.10.1

Mailbox connections moved into PBJ CRM (entered once, used by campaigns, invoices and ticket replies); the Mailboxes tab became a simple picker; collection is strictly INBOX-only and one-way — nothing on your mail server is moved or deleted; mail hygiene (spam button + sender blocklist, automatic filing at 90 days), remembered sender→customer matches, and a long list of review fixes.

1.0.0–1.4.0

The foundation: portal, ticket engine, silent claim, SLA ladder, built-in mail client, agent intake, Team view, reports, invites, and the move inside the PBJ CRM hub.

August 4, 2026

Current release: 2.35.0 (August 2026)

2.35.0 — 16 August 2026

Ticket reporting now lives on the CRM’s unified Reports screen. Helpdesk registers its searchable ticket report only while the module is installed, so there is one reporting destination and no empty Helpdesk placeholder when it is absent.

Requires PBJ CRM 1.46.0 or newer. No database change.

2.34.0 — 16 August 2026

Current tickets now appear in the CRM profile’s Everything view. They are filed for the customer, the business, the assignee and the member of staff who created them, while the existing CRM visibility rules still decide who may see each row.

Personal helpdesk notification choices now use the CRM’s self-service Notification settings on the staff member’s own profile. Owners continue to control site and group notification rules in admin. Requires PBJ CRM 1.44.0 or newer; no database change.

2.33.0 — 16 August 2026

Your name in the CRM top bar now opens your own CRM profile and timeline. Helpdesk no longer redirects it to notification and canned-reply settings; those settings remain available from Helpdesk navigation.

Requires PBJ CRM 1.44.0. No database change.

2.32.0 — 15 August 2026

“First reply” is now a record of what happened instead of an editable box. First reply due and resolution due remain editable targets, and a ticket with no reply yet says “Not yet”.

The assignee, requester and client names link to their CRM records only when you are allowed to open them. Triage no longer pulls the whole Tickets menu in or appears twice; Reports and site settings live on the CRM’s shared screens; and dialogs follow the chosen theme.

2.31.1 — 15 August 2026

A ticket made from a visit was being recorded as if somebody had typed it in by hand. When a booked job is turned into a follow-up ticket, the ticket was stored as hand-logged work, and the only trace of where it really came from was a reference number nothing ever put on screen. A ticket now knows that a visit can be where it started, and the opening line of its history says “opened from a visit”.

That opening line now names any way of raising a ticket, including one it has not been taught yet. It only ever mentioned email, so a ticket that came in from a form or from a visit said nothing at all about where it came from.

“Who this is with changed” shows properly in the history again. That note has been written since 2.30.0 but was never registered with the timeline, so it turned up with no icon, no heading, and could not be filtered for. It now reads like every other entry.

No database change.

2.31.0 — 15 August 2026

A ticket is now something you can attach things to — tasks, notes and files. One declaration to the CRM does all three.

Anything attached to a ticket follows it when the ticket is escalated to a visit, and comes back if that visit is turned back into a ticket.

The ticket’s own number is used wherever an attached item says where it lives — the number stored on the ticket, never one worked out from its id, so it always matches the number on emails you have already sent.

Also carries the to-do box fix from 2.30.2, which was never released on its own.

2.30.2 — 15 August 2026

The “add a to-do” box now has a width of its own. It relied entirely on being stretched to fill its row — the same shape that collapsed the CRM’s checklist box to a sliver on an iPhone.

The phone case was already handled here and is untouched. On a narrow screen this row has always stacked so the box takes a full line. What is new is the band between a phone and a laptop, and any browser that will not stretch a box at all.

Found by sweeping for the same shape everywhere after fixing the CRM, not from a separate report. Look only, and no database change.

2.30.0 — 14 August 2026

Send and close. A reply box now has a second button that sends your reply and closes the ticket in one press, after asking you to confirm. If the reply fails to send the ticket stays open; if the reply sends but the close fails, you are told that plainly rather than being left to send it twice.

Closing is a button, not a date. The “Closed” row used to be a date field, which let you write a closing date onto a ticket that was still open — a ticket claiming to be finished while sitting in the open list. It is now a Close button that actually closes it, which means the notifications go out and the customer is told.

The opening date and time can no longer be changed. When a ticket was opened is the fact everything else is measured against — the response clocks, its age in every list, the order of its history — so it is shown as plain text now.

You can say who a ticket is with. A ticket logged over the phone, or an email whose sender was not recognised, had nobody on it and no way to add one. There is now a picker, the same one used for choosing the customer. A ticket still does not need one — “set to nobody” is a real choice, not a mistake.

2.29.0 — 14 August 2026

You can now add ANY email to ANY ticket by hand. Open an email in the mail client and press “Add this email to a ticket”, then search by ticket number, subject or customer. Until now the only way to file an email onto an existing ticket was to accept the one ticket the help desk had guessed for you — and when it guessed nothing, or guessed wrong, there was no way to do it at all.

The mail client can now be opened by your agents — but only if you switch it on. It is OFF when you update, so nothing changes for anybody until you tick “Let agents use the mail client” under Helpdesk settings. With it off the mail client stays administrators-only, exactly as it has always been.

Once you have switched it on: an agent sees an email attached to a ticket only if they can see that ticket. Email that is not on a ticket yet belongs to nobody, so any agent can pick it up and file it — that is what filing an email requires, and it is spelled out on the settings screen before you turn it on. Attachments follow the same rule as the email they came from.

Emptying the bin, blocking a sender, composing, retention and the mailbox list are unchanged and still administrator-only.

2.28.0 — 14 August 2026

The help desk can answer “what does this customer see”, and the standalone page finally has a margin.

On a contact or business in the CRM there is a new Show as client button. The help desk is what fills it in: it hands over that customer’s tickets in the same shape a client sees them — the number, what it is about, where it has got to and when — and nothing an agent sees. No assignee, no clock, no internal notes. Closed tickets are included, because a customer’s own page is their history.

The standalone help desk page had no margin at all. If your help desk is on its own page rather than inside the PBJ CRM portal, everything on it started hard against the left edge of the screen. It now has a proper gutter. Nothing changes if you run the help desk inside the CRM portal, which already supplied one. No database change.

2.27.0 — 14 August 2026

The ticket screen has one place for the facts, and every one of them can be changed where it stands.

Who it is assigned to, which team, who it is for, the category, the status, the priority and all four dates now sit in a single Attributes panel down the right-hand side — and each one is a live control, not a label. The five separate boxes that used to restate those same facts underneath are gone: the screen used to say everything twice, once as text and once as a control, and the two could disagree while you looked at them.

Choosing the business or person is now a pop-up rather than a permanent block of the sidebar. Dates can be corrected for the first time — a job phoned in on Friday and logged on Monday can be dated Friday — and every correction writes the old value and the new one onto the timeline, so the record gains the correction rather than losing the original.

On a phone the order changed: Attributes at the top, collapsed, then the conversation, then your checklist, then the portal account, with the requester’s details last. The requester card now starts closed and its email, phone and web addresses are clickable. Print puts every panel back on the page. No database change.

2.26.2 — 13 August 2026

Housekeeping, all of it invisible in normal use. The mail checker was writing a PHP warning into the site’s error log every single time it ran, and the same fault meant that on an email made of several parts the help desk could take the wrong part as the message body. Nearly all email is one part, which is why this never turned into a complaint. A second fault logged a database error while WordPress was working out its scheduled jobs, and on one occasion stopped the schedule list being saved at all. A third logged a database error when updating from 2.12.0 or earlier. Mail delivery itself was never interrupted. No database change.

2.26.1 — 13 August 2026

Fixes the amber “due today” chip in the Triage feed, which could never appear. It tested for two words that nothing in the suite has ever sent, so in practice a row either showed the red overdue chip or showed no chip at all. It now recognises the word the CRM actually sends, and the older wordings are kept as well, so an older CRM behaves exactly as it does today rather than losing the chip. A finished job still gets no chip, which is the point. No database change.

2.26.0

A ticket now reads in a fixed order. Who it is for and who is handling it, then what it is about, then when it came in, and then why. Conversation and Timeline sit underneath, both working exactly as they did before.

You can now rename a ticket. Click the subject and type. Managers and owners only, and the change is written onto the ticket’s timeline, so everybody can see what it used to be called.

A clear Edit button at the top, and a print button. Printing a ticket now leaves out the menus, the reply box and the welcome banner.

2.24.0

An assistant can now answer a ticket, not just raise one. Until now it could start a ticket and read one, but it could not reply. It can now post a reply the customer sees, or a note only your team sees, and it obeys exactly the same rules about who may write what that the portal obeys. Internal notes are only ever in the list for the people entitled to see them, and that decision is made in one place rather than two.

It can also look up your categories and your status steps. An assistant can ask what categories you have, and what the steps are on one of them, so it can file something in the right place without first having to open another ticket to see what the right place is called.

2.23.0

“What has changed since” now gives an honest total. Ask an assistant which tickets have changed since a date and the number it reports is the number that really did change, and it agrees with the tickets listed beside it. It used to hand back the total for every ticket you have, so the count stopped short of the truth — an assistant reading it would either give up early or keep hunting through work that was not there. An assistant asking what has changed now gets the complete answer.

2.22.0

Triage is rebuilt as the place a manager or owner runs the whole day. Everything due across the system — tasks, tickets and visits together; incoming mail still to be turned into tickets; and your teams: a card for every member of the groups you manage, with their open and overdue counts and a “Give it to them” button, plus staff not yet in any group in a simple list. Managers and owners get it — not just administrators.

Triage no longer appears inside Tickets. It lives in the Dashboard, full stop.

Fixed: clicking an email in the inbox opened My Queue instead of the email. Opening a message now works from anywhere you can see one.

2.21.0

Tickets are available to the CRM’s new assistant connector (Apps & Assistants). Requires PBJ CRM 1.29.0 or newer.

2.20.0

My Queue no longer shows closed tickets. Clicking “Your open tickets” in the top bar used to land on a list that mixed in tickets you had already closed. My Queue and the group queues now start on open tickets only, and both carry the same All open and closed · Open · Closed choice the other ticket lists already had — your closed tickets are one click away instead of mixed in with the live ones. Unassigned is deliberately unchanged: a ticket waiting to be assigned is open by definition. No database changes.

2.19.0

Mail now has exactly one home. The mail client lives in Communication ▸ Help desk inbox only — the Tickets and Triage sections no longer build a Mail pill or the mail screen behind it. And Triage joins the CRM’s new Dashboard group as the landing screen for administrators, alongside PBJ CRM 1.28.0.

2.18.0

The ticket search now honours the search’s per-kind limit exactly as documented. No visible change on most sites.

2.17.0

The help desk now feeds the CRM’s new top bar: your open-ticket count (the same number the triage screen shows) and, for mail managers only, the unread inbox count. Ticket search joins the CRM’s new global search — subject, reference or customer — and only ever returns tickets you could already open. Clicking your name in the top bar opens your helpdesk profile. Requires PBJ CRM 1.24.0 for the new bar; on an older CRM everything simply stays as it was.

2.16.0

Phase 14’s help desk half. No database change.

The booking form speaks your words. If PBJ Dispatch (1.4.0+) has been told to call a visit a “call-out” or an appointment a “fitting”, every sentence on the “Book this in” form says so too. With an older Dispatch, everything reads exactly as it did.

Handing the job over. Managers and owners can hand the new visit to a different agent right on the booking form — “Who is doing this one?”, with the current agent pre-picked. The list only ever contains people the server will actually accept, and when there is nobody it says so in a sentence instead of showing an empty box. Employees see who has the ticket and no picker.

A directory fix. A manager who was not in any team used to see a directory containing only themselves. The list now comes from PBJ CRM’s one suite-wide roster (CRM 1.23.0+): your teams, plus staff not yet in any team, never anybody above your own rank.

2.15.0

Two things, both about letting the rest of the suite reach a ticket. No database change.

A “Create an invoice” button on a ticket — open or closed. The row of buttons at the top of a ticket was written for PBJ Dispatch and only ever drew for it. It now draws for PBJ Invoicing as well, so with PBJ Invoicing 1.16.0 or newer you can turn any ticket into an invoice, including one you have already closed. Each add-on is checked separately, so having one and not the other never hides the other’s button, and on a site with neither the bar looks exactly as it did.

People who are not in your contact book can open a ticket. Until now every way into the help desk needed a login. There is now a public ticket-intake seam, and its first user is the public invoice page: a customer looking at their invoice can ask a question about it and it arrives as a ticket, with no account and no password.

Worth being clear about what that does and does not mean. Nothing on your site becomes publicly reachable just by updating — the seam is a socket, and with nothing plugged into it nothing happens. It is deliberately built as a place things plug into rather than as one fixed form, so a proper public contact form can arrive later without changing the help desk. The spam trap, the rate limits and the confirm step all belong to the help desk itself, so nothing that plugs in can switch them off. And a stranger’s typed-in name does not go into your contact book: their details arrive on the ticket, where an agent reads them and adds the person deliberately.

2.14.0

Agents can now add a brand-new person or business right from the new-ticket screen — no hopping over to the CRM first. The “Who is this for?” boxes on the new-ticket form now use PBJ CRM’s shared contact picker: type a few letters and matching people and businesses appear together, and when nobody matches, the box offers to add them on the spot with a small name, email and phone form. Nothing is ever created without you asking. Needs PBJ CRM 1.22.0 or newer to appear; on an older CRM the form keeps its own search boxes, unchanged.

Every person and business page in the CRM (1.22.0+) now carries a “Start something” row, and the help desk puts a “New ticket” button on it. Pressing it opens the new-ticket form with that customer already chosen — a business record arrives in business mode, a person in person mode — and either can still be changed or cleared before the ticket is made. Opened any other way, or on an older CRM, the form behaves exactly as it always did. No database changes.

2.13.0

The spam pile now has an “Empty the spam pile now” button, the one the bin has had for a while — and both buttons now tell you what they left behind. Email that belongs to a ticket is never deleted, so an “empty” can legitimately leave messages behind: instead of a bare number that does not add up, you now get how many were deleted and how many were kept, and why, and the two always reconcile against the pile’s badge.

A new “All mailboxes” entry at the top of the mail rail shows every mailbox’s mail in one list, with the pile counts added up to match. It only appears when you actually have more than one mailbox, and you cannot send from it — composing picks a real mailbox.

And when one email address belongs to more than one customer, the ticket now asks you which one it is for, offering the choices instead of quietly filing under the oldest — anything you have taught it before is listed first and marked as remembered. It only ever asks: nothing is written until you click a name, so tickets filed correctly months ago are unaffected, and it only names records your own account is allowed to see. There is a small database change (schema version 9): one address can now REMEMBER more than one customer. One index changes shape and nothing else — no message, ticket or contact is deleted, updated or re-filed. Shared addresses need PBJ CRM 1.20.0 or newer.

2.12.0

Four fixes from a sweep of things reported on the live site. The Welcome line at the top of the portal now stays gone once you close it — it used to come back in the next tab, the next day, and the moment somebody’s role changed. Emails now always open on a white page in the mail screen: on the dark colour schemes a plain email could come out as dark text on a dark background and simply could not be read. The little calendar button on the “Book this in” date box is visible on the dark schemes instead of a black smudge. And one email address is now allowed to belong to more than one customer — the help desk still files a ticket under exactly the customer it always did, it just now knows when there is more than one possible answer, ready for the screen that asks (which arrived in 2.13.0). Shared addresses need PBJ CRM 1.20.0 or newer; on an older CRM everything else here still works, unchanged. No database changes.

2.10.0

New: a documented seam for other plugins to hold back one closure email. When a ticket is closed, the help desk now asks — once, for that close — whether the “your ticket has been closed” message should be sent. With nothing listening, it sends, exactly as before.

Why it exists. PBJ Dispatch closes a ticket when it turns it into a booked visit. Without this, the customer would get the booking confirmation and a closure notice in the same minute, for one job. The help desk does not know or care which plugin is asking; it just asks the question.

Only the email is held back. The stage change, the closed stamp, the silent claim, the timeline note and the status-changed action all still happen, exactly as they do for any other close. There is no site-wide “closure emails off” switch, and this is not one.

The existing bulk-manager behaviour is unchanged and still takes precedence on its own.

No database changes. Pairs with PBJ Dispatch 1.1.0, released alongside it.

2.9.0

A safety release for the database. On a site where an earlier update had only partly applied, the help desk could fail in ways that looked like something else entirely — new tickets refusing to save, incoming email quietly not being stored, or a mailbox connection being made over and over. Every one of those paths now checks first and steps around the missing piece instead of failing, and the site repairs itself the moment the database catches up.

The plugin also stops recording a database change as done unless it can see that it actually happened, and stops retrying for ever on a host that will never allow it — after five attempts it leaves one clear notice naming what is missing.

It also now checks that PBJ CRM is not just installed but new enough. On a site running an older CRM the help desk could take the whole site down; it now shows one notice and loads nothing. Some tidying of code and settings nobody used. No database change.

2.8.0

Your tickets now appear on the CRM’s new Today screen, alongside your tasks, in one list sorted by when things are due. You still only ever see the tickets you were already allowed to see — the help desk decides that, exactly as it does on every other list, and the CRM only merges what it is handed. Update PBJ CRM to 1.16.0 as well, or Today will show tasks only.

The per-stage status dropdown has been removed from every ticket list. Every row already prints its exact status in the Status column, so the dropdown asked you to re-specify something you could already see — and it was the half of the pair that produced silent empty lists, because its “Open” meant one single stage while the control beside it meant “not closed”. What survives is the simple one: All open and closed · Open · Closed.

The triage screen’s “New messages (not tickets yet)” card has been removed. It counted inbound mail sitting in spam, in the bin and in filed, while the list directly beneath it showed the inbox only — so it could read “191” over an empty list. The inbox is right there underneath; the number was not telling you anything the list was not.

2.7.0

The Email Templates and Canned Replies tabs have gone from the help desk’s own settings. Both editors moved to PBJ CRM’s Templates & Notifications tab back in 2.5.0, and until now they sat in both places at once — the same editor behind two different doors. Every link and button that used to point here takes you straight to the CRM tab instead, including the “Review the templates” step in the setup guide. Nothing about the templates themselves has changed and nothing has been deleted. On a site still running a CRM older than 1.12.0 the two tabs stay exactly where they were, so nothing can become unreachable. No database changes.

2.6.0

When you reply to a ticket you can now choose which of your mailboxes it goes out from, instead of the help desk always deciding for you. Leave it alone and it decides exactly as before. The choice applies to public replies only — an internal note is never emailed, and a client never picks the address your business sends from. No database changes.

2.5.0

The triage screen now leads with the tickets assigned to you. Its first tile used to count new messages, which is not something anybody is answerable for; it now counts your own still-open tickets and opens them as cards when clicked. Open-ness is read from each ticket’s own status path, so a category with its own stages is counted properly rather than against a fixed list of names. “Tickets waiting to be assigned” appeared twice — a tally and the heading of the list it was counting, each fetched separately; the tally and its database query are gone. New messages have moved to the top of the screen. Clicking a person on the Team screen now shows what they have been working on beneath their open tickets — replies and notes across every ticket you are allowed to see, newest first, each naming its ticket, with a filter by kind of activity. You can add your own sign-off to replies, written once on your profile using your name, job title and direct number; it is off until you turn it on, and a manager can set a shared one instead. Categories can carry their own wording, so a “Billing” ticket reads differently from a “Technical help” one — fill in only what differs. Email templates and canned replies have moved to PBJ CRM’s Templates & Notifications tab alongside every other add-on’s, and groups are now created and edited in the CRM, leaving this Groups tab as “Group categories” for the one job the CRM cannot do. History, Reports, Team, Settings and Profile are tucked under a single “Settings” button rather than sitting in the main row — nothing moved out of reach and nobody sees more than before. Security: the sign-up link at the bottom of a client’s email now expires after 24 hours and offers a fresh one, where before it worked indefinitely, so a forwarded email handed account setup to whoever received it. Requires PBJ CRM 1.10.0 or newer. No database changes.

2.4.1

A fix for 2.4.0. On some servers the database update from that release did not complete, and when that happened the mail list came back completely empty — while the message count above it still showed the right number, so the inbox looked wiped rather than broken. No mail was ever lost. This release repairs the database by itself on the next page load and the list comes straight back.

Two related fixes came with it. The update used to record itself as finished even when the database change had been refused, so it never tried again; it now only records success once the change is really in place. And every part of the plugin that uses the new columns checks they exist first, so a site part-way through the update keeps replying, keeps taking internal notes and keeps collecting email as normal — you simply do not get follow-up suggestions until the update finishes.

2.4.0

Plenty of customers do not press reply. They open a brand-new email, type the same subject, and send it — and until now that landed in your inbox looking like fresh work, with the ticket it belonged to sitting open two feet away. The helpdesk now spots those. When an email arrives from the same person, about the same thing, as mail already on a ticket, it gets a caution mark in the inbox, and opening it offers Add to ticket HD-n — showing you that ticket, what it is about and whether it is still open, so you can check before you agree. Nothing is ever attached on its own. There is a Not a follow-up button too, which clears the prompt and leaves the email where it was.

Every ticket also has a new Timeline tab beside the conversation: the whole life of the job in order, day by day — opened, what the customer wrote, what you replied, internal notes, status and priority changes, reassignments, category and customer changes, missed response targets, and follow-up emails you added. When a job has dragged on and somebody asks what actually happened, the answer is one tab away. Tickets you raised long before this update get a full timeline too. Internal notes stay staff-only there, and group tickets stay nameless, exactly as everywhere else.

The database updates itself when you upgrade. A background job fills in what is needed to match older mail; until it finishes, suggestions simply do not appear for that older mail.

2.3.0

A bug-fix release from a full code review. Seventeen colour tints across the portal — status pills, notice backgrounds, hover shades — were being thrown away by every browser because of a stray character in the stylesheet; they all render again. An email you sent can no longer be marked as junk, which used to block your own sending address. Deleting a ticket now files your sent replies instead of dropping them into the inbox as if they were new mail. While PBJ CRM is running, new mailboxes are created there rather than here, so one address is never set up twice.

2.2.0

Email that became a ticket now lives in a permanent Tickets pile — kept for reference until the ticket itself is deleted. New “Manage tickets” screen: every ticket in one filterable list with bulk assign, group, category, status, priority, customer, CSV export and delete (bulk actions only email people when you tick the box).

2.1.x

Invites are sent only when an agent asks (with a confirm naming the recipient); closing a ticket emails the requester a closed notice; every reply footer carries the portal link and the customer’s own never-expiring sign-up link. Full mobile pass.

2.0.0

The helpdesk became a true module of PBJ CRM: your agents ARE your CRM staff — one list, one set of roles, nothing programmed twice. Existing helpdesk staff are moved onto CRM roles automatically.

1.5.0–1.10.1

Mailbox connections moved into PBJ CRM (entered once, used by campaigns, invoices and ticket replies); the Mailboxes tab became a simple picker; collection is strictly INBOX-only and one-way — nothing on your mail server is moved or deleted; mail hygiene (spam button + sender blocklist, automatic filing at 90 days), remembered sender→customer matches, and a long list of review fixes.

1.0.0–1.4.0

The foundation: portal, ticket engine, silent claim, SLA ladder, built-in mail client, agent intake, Team view, reports, invites, and the move inside the PBJ CRM hub.

Latest Articles