Skip to main content

PBJ CRM — Changelog

Current release: 1.46.0 (August 2026)

1.46.0 — 16 August 2026

Admin is simpler and the controls now live where their names say they do. The empty Tasks, Tickets and Invoices & Orders setup tabs are gone. Viewing rules are gathered under Settings → Permissions, and legacy links still lead to the right replacement screen.

Reports are now one searchable, module-driven screen. Tickets and invoices appear when their add-ons are installed, future add-ons can register their own reports, and an absent module leaves no empty report behind.

Admin and portal tabs now switch to the same nested hamburger navigation at the same screen width, including subtabs. The old phone message about Desktop being remembered has been removed. Services contract 9; no database change.

1.45.0 — 16 August 2026

The chosen suite theme now owns the whole WordPress admin when admin theming is enabled. Core pages and installed plugins use the same surfaces, stripes, notices, selections, figures and menu highlights, instead of keeping white panels or WordPress blue underneath a painted cover.

Named palettes are complete light-and-dark looks. Choosing one warns that it will clear fine-tuned colours, then it takes over all theme tokens. The palettes are more distinct; Florida remains Florida and Miami is a separate neon option; Notebook is handwritten paper; Rustic is a light whiteboard or dark chalkboard. Preview buttons, colour dots and the Handwritten and Marker font choices now show and apply their real defaults.

Everything now means everything. A staff profile can include its tasks, current tickets, invoices, visits and safe Vault metadata. Staff manage their own Notification settings, while owners keep site and group rules in admin.

Tabs and subtabs become nested hamburger menus at smaller widths, including in admin. The toolbar renders one supplied logo or one “PBJ CRM” text fallback—never both—and its notification count refreshes after every CRM page change. Services contract 9; no database change.

1.44.0 — 16 August 2026

Vault records now follow the same identity rules as the rest of CRM. A record pinned to a business appears on that business, while client people and members of staff use their own proper records.

If somebody is both a client and a member of staff, their client and staff Vault records can appear together without duplicates. Every record still has to pass both the Vault security settings and the CRM rules for who may open that person or business.

Your name in the top bar now opens your own CRM profile and timeline. It no longer leads to a dead or settings-only address.

1.43.1 — 15 August 2026

Task lists on a phone are readable again. A task’s words were coming down the screen one character at a time beside a tall coloured stripe. Tick boxes and radio buttons are tick-box sized again on every simplified phone list.

1.43.0 — 15 August 2026

Dialogs, overlays and pop-up panels now follow your chosen theme. This includes the preview showing what a business can see, on every light and dark look.

The empty second menu row is gone; screens no longer repeat the tab you are already standing on; tasks and deals in Today open properly; Reports has its own menu item; and Setup is now Settings, gathering installed add-ons in one place.

Four new looks and six colour palettes were added, and your logo now links to your own home screen.

1.42.1 — 15 August 2026

An add-on declaring a malformed kind of record is now refused immediately. It is no longer quietly registered under a different name and allowed to fail later. The same check covers notification events, merge-token contexts and assistant fields and filters. Services contract 7; no database change.

1.42.0 — 15 August 2026

Tasks, notes and files can now be attached to records throughout the PBJ suite. Work attached to a ticket follows it when it becomes a visit and comes back if it becomes a ticket again, keeping its original history rather than being copied.

Unattached work appears on the customer record, with the business taking precedence when both a person and their business could claim it. Adds one attachment table; no existing table is changed.

1.41.1 — 14 August 2026

The dates on tickets your timeline already had are put right. The previous release stopped new lines being stamped with the moment the automatic catch-up ran — but the lines already written kept that stamp, so tickets opened weeks ago sat together under the day you updated.

Every one of them is moved back to the day its own ticket was opened, automatically, a minute or two after this update. Nothing is added, nothing is removed, and a line that already had the right date is left exactly as it is.

1.41.0 — 14 August 2026

The history got finer controls, because it really is everything now. “What has happened” carries every kind of entry a record can have — notes, emails you sent, marketing emails, support tickets, tasks, deals, anything brought in from a file and anything added automatically — and until now you could only narrow it to four of those. There is now a row of Just: buttons under the view chooser, one for each kind. Choosing one keeps you in the history and shows only that kind.

On a phone the same choices sit in the one Timeline view dropdown, grouped under “Narrow what has happened”, with the record’s own sections under “Sections of this record” — so the two questions that dropdown answers are labelled instead of jumbled together.

Fixed — tickets added by the automatic catch-up were dated the day it ran. A ticket opened three weeks ago now sits on the timeline under the day it was opened, not under today. Only newly added lines were affected; a line moved from one record to another has always kept its original date.

1.40.0 — 14 August 2026

A ticket you raised now appears on your own record. It only ever appeared for the person it was from, the business behind them, and whoever it was assigned to — so if you logged a ticket and gave it to somebody else, you had nothing to show for it. Whoever raised a ticket is now on it too.

Tickets you already have are brought up to date automatically, a minute or two after you update. Nothing is duplicated and no date is changed.

1.39.0 — 14 August 2026

You can now actually open a staff member’s record. 1.38.0 gave everybody on your team a record and 1.38.1 filled it with their work — but because those records are hidden, nothing anywhere linked to them, so the only way in was to dig through the hidden list in Manage everything and type the address by hand. Every place that lists your team now carries a direct link to that person’s record.

1.38.1 — 14 August 2026

Fixes 1.38.0 so it actually finishes the job. Staff got a record of their own, but the work already on your system had been filed before that record existed — so an agent’s history was empty. Existing tickets are now put onto the agent’s history too, automatically, a couple of minutes after the update. Nothing is duplicated and no date is changed.

1.38.0 — 14 August 2026

Your staff now have a record of their own, so work shows up on it. A ticket assigned to somebody already appears on the customer’s history and their business’s history — now it appears on the agent’s history too, which is what “everyone who touches a ticket sees it” was always meant to mean.

These staff records are hidden. They do not appear in your contact list, your business list, the people pickers or the duplicate finder, and they are never included in a marketing email because they have never been asked to subscribe.

If a member of staff is already in your contact book — because they are also a customer — that record is used as it stands. Nothing about it is hidden, changed or unsubscribed, and no second copy of them is created.

Existing staff are set up automatically a minute after you update. Nothing for you to do.

1.37.0 — 14 August 2026

Tickets now show up on every record that touches them. A ticket filed to a business appears on the business’s timeline as well as the person’s, and on the agent who owns it — before, it only ever appeared on one record, so a business you had carefully filed tickets under showed an empty history.

The Support tickets list on a record reads the ticket’s own customer fields instead of guessing from the email address. Filing a ticket under a customer now actually puts it on that customer.

Two people who share an email address no longer see each other’s tickets on their records.

Existing tickets are put onto the timelines they were missing from, automatically and in the background, once after updating.

1.36.3 — 14 August 2026

Housekeeping only. The translation template shipped inside 1.36.2 was one version out of date, because it was regenerated after the release file had already been built. Nothing on screen changes and nothing you do changes. No database change.

1.36.2 — 14 August 2026

On a phone, a contact or business page could show BOTH the Timeline view dropdown AND the full row of section buttons at the same time.

Whether it happened depended on which tab style your site is set to under the look settings: sites on Segment got both, sites on Underline did not — which is why it took a real phone to catch. The phone now shows the dropdown only, whichever tab style you use. Nothing changes on a computer. No database change.

1.36.1 — 14 August 2026

There was still a second way to choose what you were looking at on a contact or business, and it made the page read as though it had two timelines. The row of sections along the middle and the “Show me” dropdown under the note box both picked what the page showed, and four of the choices — Support tickets, Tasks, Deals and Marketing emails — appeared in both.

There is now ONE control. It carries everything: the whole history, the four ways to narrow it down (notes, emails you sent, things brought in from a file, things added automatically), and every section of the record. Nothing has been taken away — the four choices that were in both lists now open the fuller section view instead of a filtered feed. No database change.

1.36.0 — 14 August 2026

The contact and business page has been rebuilt, and the Mobile/Desktop switch has moved.

There is now ONE “Desktop” button, in the top bar beside your logo, and its background tells you which version you are on — solid when you are on the desktop version, outlined when you are on the phone screens. It replaces the pair of buttons that used to sit at the end of the menu row.

On a contact or a business, everything about the record is now in one block on the left: the photo, the name, a much smaller business/person switch, the labels, and the contact details. Those details now show ONLY what somebody has actually filled in — no more columns of “Not set” — with an Edit button that brings the empty ones back when you want to add one. “Start something” is now called “Add Work”, and on a phone it becomes a dropdown instead of a row of buttons.

The row of history tabs is unchanged on a computer, and on a phone it collapses into a single “Timeline view” dropdown, because ten tabs ran off the side of the screen.

Everything that used to be the unnamed column down the right is now called Attributes. On a computer it sits at the top of that column; on a phone it moves to the bottom and starts closed. The marketing email setting has moved into it. At the top of it is a new Show as client button, which shows you what that customer sees when they sign in to your portal — read-only, and built from what each part of the system says a client may see, never from a fresh look at the raw records.

The whole page now fits on a phone in one column with nothing running off the edge. No database change.

1.35.2

Finished work no longer appears on your day at all. The previous release stopped a completed job being called overdue, but left it in the list – so a visit marked Done and dated two days earlier still showed under “Due, across everything” in Triage. It is now removed where the list is built rather than at each screen that reads it, so every screen gets it.

1.35.1

Fixes work vanishing from the Agenda on a phone. The Agenda kept only rows whose lateness was worded one of two particular ways, and the three places that fill that list did not all word it the same – so a visit due tomorrow, and every open ticket on a site with no service-level policy, was fetched, permission-checked and then quietly dropped before it reached the screen. Nothing errored, which is why the rows simply looked absent. The CRM now decides how late every row is itself, in one wording, on the server, and it believes a plugin that says a job is finished instead of recalculating from the date. The Agenda now lists everything still open, latest first, and leaves out only genuinely finished work.

1.35.0

Your whole diary on your phone, from one button. On a phone the Agenda now has a single button at the top that puts your diary on the phone and keeps it up to date by itself, instead of a separate download every time you visit. One thing worth knowing: the link that does it is personal to you, and anybody who has it can see your diary — so treat it like a key to the van.

Every visit in the Agenda now carries two buttons, Google Maps and Apple Maps. Tap either one and the address is already in it.

Contacts, businesses and marketing emails have all had their tops tidied. A clear Edit button at the top of the screen, a title you can change just by clicking it, and a print button.

Fixed: printing a CRM screen now gives you a clean black-and-white page. If you were using a dark colour scheme, printing could come out almost blank. Printed pages now ignore the colour scheme altogether.

1.32.0

Businesses, tags, your saved lists and a record’s history are now open to your assistant. Businesses come through the same door the rest of the CRM uses, so a manager or an employee is handed exactly the list they already see on their own screen. Tags and saved lists can be listed and opened by name, so an assistant can say what a tag is for without reading every contact that carries it. And an assistant can read the history on a person: asking about somebody you are not allowed to see answers exactly the same way as asking about somebody who does not exist, so it can never be used to find out who is in the book.

Fixed: page two really is page two. Asking an assistant for the second page of your files, your calendar entries or your staff used to hand back the first page again.

Fixed: a business you are not allowed to open no longer carries a link to it. On a business whose details are withheld from you, the assistant was still being handed a direct link to that record. It is now left out altogether — left out, not blanked. Nothing about the business itself changed: everybody still sees every business name.

Your assistant now has 74 jobs it can do across 25 kinds of record, up from 38 across 11 — and every new one follows the rule the first 38 followed: an assistant sees exactly what the person whose link it is can see, and nothing else. Every job that existed before still exists and answers the same way.

1.31.1

The assistant connection lives in one place. It is on the Apps & Assistants settings screen and nowhere else — the extra copies that had turned up in the portal and on the phone screen have been taken away, because nobody asked for them. The connection itself is unchanged: the same link, the same Copy button, the same “Test my connection” check and the same safety notes.

1.31.0

Three assistant jobs that could never work now work. Listing your files, opening one file and opening one calendar entry all answer properly instead of coming back with nothing.

You can now narrow what you ask for. Each kind of record offers its own set of filters: people by who looks after them, by business, or by whether they may be marketed to; tasks by list, customer, who they are handed to and when they are due; deals by list, customer, business, owner and stage; calendar entries by the dates they fall between. The choices are handed to the assistant and checked again on the website, so a value that is not on the list is refused with a plain message instead of being quietly ignored. A filter can only ever narrow what that person could already see — it can never widen it.

The calendar window can be moved. It still starts at a month back and three months ahead, but an assistant can now ask for months outside that; a stretch longer than a year is trimmed rather than turned away.

“What has changed since” now gives an honest total everywhere it is offered, and it is no longer offered at all on records that do not carry a changed-on date.

A new “Test my connection” check answers in plain English — for example, “Working. Your assistant can see 38 tools across 11 kinds of record.” It never creates a token as a side effect. And the Copy button now tells you out loud whether it worked, then puts itself back a few seconds later.

1.30.1

The date-and-time picker (used when booking a visit, among other places) now follows the dark themes: the browser draws its calendar pop-up and its little icon dark instead of white. The earlier fix covered plain date fields only.

1.30.0

Tasks and Tickets are now separate main tabs, in the portal and in wp-admin — old links keep working. Dispatch gets its own main tab between Invoices & Orders and Companies & People, and the Archive add-on now shows as Vault, under Communication.

A Mobile/Desktop switch lives in the menu bar on every screen. Press Mobile and this device opens the simplified phone interface from now on; press Desktop and it stays on the full workspace. Each device remembers its own choice.

A person can belong to more than one business. The contact page gains a Businesses panel — link somebody to every firm they really work at, jump to any of them, unlink when they move on.

More ways to make it yours. Look and feel adds a typeface picker (system typefaces only — nothing is downloaded from anybody) and per-colour overrides for the main colours. Everything starts from your current preset and nothing changes until you change it; Reset puts the look back and keeps your logo and app icon.

The company logo no longer shows as a broken picture. The folder it lives in could inherit a “deny everyone” rule written for private files; the logo and app-icon folders now state their own permission. Home-screen app icons are fixed by the same change.

Manage tasks now works like Manage tickets: opens on open work, sortable columns, bulk set-a-due-date and delete, and “apply to everything that matches” — deleting asks you to type the count first.

1.29.0

Apps & Assistants. Connect an AI assistant (Claude, ChatGPT) to your CRM with a personal token: it can look up and work with contacts, tasks, deals, tickets, invoices, visits, files and calendar entries — always as you, seeing only what you could already see. Off until you create a token; revoking one cuts access immediately; protected Vault values are never handed out.

1.28.0

The Calendar group is now the Dashboard — and it is where you land. Triage first for administrators, the Today queue first for everyone else, with the Calendar right beside them. Nothing moved out of reach: Tasks and Tickets keep their own screens.

Subscribe to your calendar. A personal, private link Google Calendar or Apple Calendar can subscribe to — your own tasks, tickets, visits and invoice dates, updating on its own. Get a new link, or turn it off, any time from the Calendar screen.

Photos on people and businesses. Stored privately inside the CRM — never the public Media Library — and only shown to people allowed to see the record. Existing photos keep working until replaced.

Manage tasks. A manager screen listing every task your rung allows, with filters, bulk done and reopen, and hand-to-someone using the same roster as Manage tickets.

Also in this release: tickets, tasks and invoices each carry their own colour on the calendar and cards — adjustable on Settings ▸ Theming and readable on every preset; the calendar’s List view now shows the newest day first, with a toggle to flip it that remembers your choice; and the phone app icon now has a shipped default, so a site that never uploads one gets a proper CRM icon instead of whatever the phone invents.

1.27.0

One place to say how your email leaves this website — for the CRM and every add-on. A new Email delivery card on Connected accounts lets everything go out through a mailbox you already own instead of the website’s built-in mailer. That matters more than it sounds: until now the built-in mailer carried nearly all of it — every appointment email, most help desk notices, invoice reminders unless you had chosen otherwise — and mail sent that way often lands in spam or is refused outright, because the service receiving it has no way to check your website was allowed to send as you.

There are no new server or password boxes to fill in: it uses the mailbox you already set up on the card above it, Gmail and Microsoft included. You also choose what the sender line says — leave every message exactly as it is, fill it in only where a message did not set one (the sensible default), or always send as one address. A Send a test email button tells you what the mail server actually said if something is wrong, in its own words.

Nothing changes until you pick a mailbox. Appointment invitations still arrive as proper calendar invitations, and where a campaign or an invoice was already set to send from its own mailbox, that still wins. No database change.

1.26.0

A simplified phone interface. On a phone the portal opens with three big choices — Find, Create, Desktop. Find gives every kind of record a phone-sized list: people get an A-to-Z rail and sorting, businesses a search-first list, and tickets, invoices and visits a type-to-find screen. Create adds people, businesses, tasks, deals, and notes with photos — photos go through the CRM’s own file store. Desktop is the full portal, and choosing it is remembered on that phone. Turn the whole thing off under Settings ▸ The basics ▸ Simplified mobile interface.

1.25.0

The header search can be narrowed. Pill filters for every kind of record — people, businesses, tasks, deals, files, and every module’s records. Deals and files join the search. Results only ever name what you could already open.

1.24.0

A new look-and-feel system and a new top bar. The Look and feel screen now offers a Mode (Light or Dark) and a Style (Standard, Terminal or Notebook) — every style works in both modes, every combination is contrast-checked, and the typefaces are ones already on your computer, so nothing is downloaded from anybody else. You can also upload a company logo, which appears in the new top bar and on the sign-in page. The sign-in page now follows your chosen look properly, including dark modes.

The WordPress admin bar is gone from CRM screens, replaced by the CRM’s own bar: your name (click it for your profile), your open task and ticket counts, your inbox count if you manage mail, who else is signed in right now, a shortcut to the admin side if you have it, a search that looks across people, businesses, tasks and tickets — and only ever shows you things you could already open — and Log out. On a phone it folds into a Menu button.

For developers: the services contract is now version 4, adding header-count and search seams; modules declare header_counts and search payloads, already scoped and already redacted, and the CRM never enriches them. New routes: GET /header, POST /header/heartbeat, GET /search.

1.23.0

One answer to “who can I hand work to”. A manager’s list is their teams, plus staff not yet in any team, never anybody above their own rank — and the same list is read by the screen that draws the dropdown and the server that enforces it, so the two can never disagree. This fixes a quiet family of blank pickers: a manager who was not in any team used to see nobody but themselves, which read as a broken screen rather than an answer.

For developers: the services contract is now version 3, adding selectable_staff() and can_assign_staff(). The help desk directory and the visits booking picker consume them; feature-detect on PBJ_CRM_Services::VERSION >= 3 and keep your fallback.

1.22.0

A fix that matters to anyone who is not a site administrator: the list of businesses you pick from was coming back empty for managers and employees, so filing a person under a business always answered “Pick a business first.” Everyone can now see and choose every business again — by name, with the private details still hidden from staff who are not allowed them. And businesses are now chosen by typing a few letters instead of scrolling a list, which used to stop at 200.

One shared search-and-choose box now handles attaching a person or business to something, starting with tasks: the task form gains “Who is it for? (optional)”, so a task can be tied to a customer — or untied from one — while you are writing it. Click into the box and your most recent records appear; type a few letters and matches appear, with businesses marked. If the person you need is not in your list yet, the box offers to add a new person or business on the spot — a small name, email and phone form — without leaving what you were doing. It only ever offers: nothing is saved until you press Save.

Every customer’s page — person or business — gains a “Start something” row. One press starts a task for that customer with their name already picked, and add-ons put their own buttons on the same row: the help desk adds “New ticket”, and Dispatch adds “New visit” and “New appointment”, each landing on its form with the customer already filled in. The row only appears when there is at least one thing you are allowed to start.

You can now hide the clients you are done with. A hidden record keeps everything — its history, its notes, its jobs, its invoices; old links still open it and an email it sends still matches up to it — but it drops out of your lists, your searches and every “pick a customer” or “pick a business” box until you put it back. That happens on the new “Hidden records” tab under Companies & People ▸ Manage everything, where every row has one button: “Put back”. It is a shelf, not a bin — nothing on that tab is ever deleted on a timer. Hiding also says nothing about marketing email: who may be emailed is still governed only by the record’s marketing status and the do-not-email list, so hide someone AND unsubscribe them if you mean both. An import that meets a hidden record again updates it quietly without bringing it back into your lists.

Importing contacts is now guided instead of instant. Whatever the source — Square, Google Contacts, Microsoft Outlook or a CSV file — you pick where the contacts come from, see what goes where, and then get a check that counts what WOULD happen: how many people would be added, how many updated, how many are already up to date, and how many rows have a problem, with the first ten rows shown. Nothing at all is written until you press the one confirm button, which states those counts on its face — “Bring in 12 new people and update 30.” Walking away imports nothing, and a check older than 15 minutes is run again first, so what you confirm is always what happens. Scheduled syncs and add-ons that import through code are unchanged.

Every address in the CRM now offers “Open in Google Maps” and “Open in Apple Maps” links — built in your browser and sent to nobody until somebody actually clicks one — with a tick box under Settings ▸ The basics (Map links, on unless you turn it off) that removes them entirely, so if you want no page of yours linking out to a maps provider at all, untick it and that is exactly what you get. This release adds one column to the contacts table and takes the database to version 17; every existing record reads as “not hidden” and behaves exactly as before.

1.21.0

The “All businesses” tab is now the same screen as “All people” instead of a thinner copy of it. You get the tag filter, the “who looks after them” filter, the “how they got here” filter, your saved lists, the marketing filter and a fourth sort order; you can tick several businesses and change their email choice in one go, with the same consent question and the same “we left these alone” panel; and every card now shows its tags, its marketing badge, who looks after it, when it last changed, and how many people work there.

Three things behave differently afterwards and are worth knowing. The businesses tab now follows your staff visibility settings exactly the way the people list always has, so a manager or an employee who is not allowed a particular business no longer sees it on this tab at all. The search box now matches names, both email addresses, both phone numbers and job title — so looking a firm up by its web address no longer finds it, while looking it up by email now does. And very old company entries left behind by early imports, never attached to a business record, cannot appear on this list at all; they are still reachable at their own address and nothing has been deleted. One smaller change on both tabs: the “People / Businesses / people and businesses” dropdown has gone, so each tab shows its own kind only and the same firm never turns up in two places. No database change.

1.20.0

Fixes the error you got when you put an email address on a customer and something else already had it. Sharing one address is normal — office@ for a whole firm, a couple on one mailbox, one person you deal with at two businesses — so saving now tells you who else is on that address instead of refusing to save. A second fix rides with it: when somebody on a shared address unsubscribes or their mail bounces, every contact on that address is marked, not just the oldest one — and that is the field your segments and audiences actually read. Also fixes date boxes on the dark colour schemes, where the little calendar button was drawn black on black and could not be seen. No database change.

1.19.0

Photos and paperwork now live on the record they belong to. Drag a picture onto a person, a company, a to-do or a job; pick one off your computer; paste a screenshot straight onto the page; or take a photo on your phone while you are standing in front of the thing. Pictures taken on a phone are shrunk before they are sent, so a job full of them does not eat your website’s room or your data allowance. A small picture stays small — the limit is a ceiling, not a target.

None of it goes into the WordPress media library. Files sit in a private folder the web server refuses to hand out, under names nobody could guess, and every download and every thumbnail checks who is asking before it answers. That is the point of it: a photo of a customer’s alarm panel, a signed worksheet or a serial plate is not something that should be readable by anybody who guesses the address.

Every file can carry a label. “Before”, “After”, “Receipt”, “Estimate”, “Serial plate”, “Signed”, “Damage”, “Parts” and “Site” are ready to tap, and you can add your own. Inside a record the files gather into a drop-down under each label, with anything unlabelled kept at the bottom where it cannot quietly go missing.

Each file has a “Share with the customer” switch, and it is off until somebody turns it on. When it is on, the customer sees the picture and not the notes attached to it — where it was taken and what took it are stripped out of the copy they get.

Files use the same 30-day recycle bin as everything else. Taking a file off a record takes it off THAT record; if it is not filed anywhere else it goes to the bin and you have 30 days to change your mind. Settings shows how much room your files are using and warns you at 80% of whatever you set aside for them, before your host does. Big files go up in small pieces, so a long video is not stopped by an upload limit, and a dropped connection only re-sends the piece that failed.

Deleting somebody under a privacy request now also destroys the files held only about them, the copies on disk included. Files that are also filed against somebody else’s job are kept, and the screen tells you so. This release adds four database tables and takes the database to version 16. Nothing existing was altered.

1.18.0

Businesses are visible to your staff again. The previous release protected a business’s private details by hiding the business itself from anyone whose contact list did not already include it — and a business that arrived from a CSV, Square, Google or Microsoft import belongs to nobody until somebody claims it. On a normal site that meant every business vanished for every employee and manager: the company list came back empty, and with it went filing a person under a business, raising an invoice against a company, and pinning an Archive record to one.

The protection is still there and still withholds exactly the same things. Somebody who is not allowed to see a business now sees its name and web address and nothing else — no notes, no phone number, no postal address. Enough to pick it from a list and label a record; nothing that was copied down from the business itself.

Opening a company directly no longer refuses staff who can see it in the list. Companies whose business is in the recycle bin are still not found, which is unchanged and deliberate. No database change.

1.17.0

A privacy fix worth taking: a business’s notes, phone number and address were visible to every staff member, whatever their contact list allowed. Also fixes the recycle bin refusing customers whose tickets are finished, and money on the calendar printing with no currency sign. No database change.

1.16.0

Put the CRM on your phone. Under Settings → Theming there is now a switch, a name and an icon upload; turn it on and a phone offers “Add to Home Screen”, giving your team a full-screen CRM with your own name and logo under it instead of a browser tab. The icon is cut square and resized for you and is kept in the CRM’s own folder, never your Media Library. It deliberately does not work offline — the CRM has to ask the website who you are on every visit, so there is nothing safe to keep on the phone. Off until you switch it on.

1.15.0

A List view on the calendar. One day after another instead of a grid, which is far easier to read on a phone and better at answering “what is next?”. The month grid is unchanged and both are always available — pick with “How to show it” and it remembers your choice. On a small screen the List is what you get until you choose otherwise. Day headings for today and days still to come open the same “New task” button the month view got in 1.14.0.

1.14.1

Fixed: calendar times now read on your business’s clock, not the clock of whichever computer you happen to be using. Before this, the DAY an item was filed under came from your business’s timezone while the TIME beside it was converted to the viewer’s — so a task due at midnight could sit under Wednesday and read “8:00 PM”. Every row on the calendar had it. Display only; nothing moved to a different day.

1.14.0

Tapping a day on the calendar now offers what you can start on it. Today and any day still to come show a “New task” button that opens the task editor right there with the date already filled in. Days that have been and gone do not offer it — a task dated last Tuesday is late the moment you save it. The list is built to grow, so add-ons can put their own entries beside it.

1.13.0

Today — a single list of everything with your name on it. Your tasks and your help desk tickets together, sorted by when they are due, with anything late in red at the top. It is the first thing under Tasks & Tickets. A task can now say which ticket it is the follow-up for, and when both would show they appear as ONE line carrying the ticket’s number and a button to open it. Nothing was replaced: the full Tasks and Tickets lists are still their own screens. Today only shows tickets when PBJ Helpdesk 2.8.0 or newer is installed.

1.12.0

Internal only. Add-ons can now ask the CRM for the address of their own settings panel on the Templates & Notifications tab, instead of guessing it. That is what lets an add-on move one of its screens here without leaving a dead link behind — PBJ Helpdesk 2.7.0 is the first to use it. Nothing changes on screen and no data is touched. Update this before updating the Help Desk.

1.11.0

Dark mode is properly dark — the page behind the CRM is black rather than charcoal, and it is black the moment the page opens instead of flashing white first. Cards stay slightly lighter than the page so they still read as cards. The CRM screen is also now genuinely independent of your website’s theme: your theme’s styling no longer reaches inside it at all, so the CRM looks and behaves the same whichever theme you run and however you change it — and every other page on your site is completely untouched. Finally, the screen uses the full width of your display instead of sitting in a fixed column, so wide tables get the room they need, with a hairline border keeping the edge visible: dark on a light page, light on a dark one. Appearance only — nothing changes about how anything works.

1.10.0

A new Templates & Notifications tab gives you one place to decide which emails your team gets — and, because add-ons put their own templates there too, one place to find the wording of anything you send. You can now change one person’s email settings on their behalf. Staff groups have moved into the CRM itself, so a group means the same thing whichever add-ons you run; your existing groups came across exactly as they were, and deleting a group now simply ungroups its people rather than leaving them pointing at something gone. Your team can fill in their own job title, direct number, booking link, office hours and photo, and drop any of it into an email with a click — every screen that writes an email now has a button for each merge field, offering only the fields that make sense there. The ready-made marketing emails sit above “write a new email” rather than inside it, and choosing which mailbox a marketing email sends from is a dropdown of your own mailboxes instead of a box asking for its number. The CRM screen now fills the page on its own, with no site logo, menu, header or footer around it. Security: removing someone from the CRM signs them out everywhere immediately and refuses to let them back in, and staff sign-ins now last hours rather than the site’s default of days — so anyone signed in when you update will be asked to sign in again. Your existing notification settings are carried across, and the database updates automatically.

1.9.0

The Square, Google Contacts and Microsoft Outlook import cards each gained a tick box: Bring people who are already here up to date too. Left off, which is still the recommendation, an import only fills in blanks on somebody already in the CRM, so it can never contradict what your team has typed. That is also why running the same list a second time reports a large “skipped” number and nothing has gone wrong: a person who needs no changes is counted as skipped, not updated. Tick the box and the other service wins where the two disagree, so records you imported months ago are brought up to date. A blank at the other end never wipes something you already have, either way. Off by default. No database changes.

1.8.0

A bug-fix release from a full code review of the whole suite. Merging two records no longer fails when their marketing settings differ. Somebody moved to the recycle bin can no longer be emailed by a campaign that is already going out. Invoices with no customer attached, or filed against a business, appear on the calendar at last. Editing a business through the company screen now follows the same permission rules as everywhere else. Plus: a timed-out sign-in asks you to refresh instead of claiming you have no access, the “Which PayPal” box no longer locks itself on Live, checklist ticks from two people at once no longer lose one, and turning a business back into a contact now really does check for open help desk tickets.

1.7.0

Campaign emails now write in the standard WordPress editor with starter templates and an “Insert a detail” personalization picker. Business profiles carry the full field set with an Employees panel and address boxes. The two-way sync can no longer create a business or company on its own — company changes arrive as a note for you to act on.

1.6.0

Square import fixes (custom fields now fetched per customer; phone-only customers import; same-provider duplicates stay separate), repeatable checklist tasks, calendar filters that remember your choices, card-style people/business lists, and a full mobile pass across the suite.

1.5.x

The CRM team became the ONLY staff list for the whole suite (helpdesk agents are CRM staff), and customer-less helpdesk tickets became visible on the calendar.

1.3.0–1.4.8

The fully guided Connected accounts page: a step-by-step card for Square, PayPal, Stripe, Google and Microsoft, visible webhook addresses, credential locking with a Disconnect button, “Sign in with” mailboxes that send over true XOAUTH2, and much clearer error messages throughout.

1.0.0–1.2.0

The foundation: contacts and businesses in one book, imports and two-way sync with a human approval gate, the drip email marketing engine with tracking/unsubscribe/consent, reports and GDPR tools, the whole-business calendar, the front-end portal with themes, the module hub, the 30-day recycle bin and the bulk record manager.

August 4, 2026

Current release: 1.46.0 (August 2026)

1.46.0 — 16 August 2026

Admin is simpler and the controls now live where their names say they do. The empty Tasks, Tickets and Invoices & Orders setup tabs are gone. Viewing rules are gathered under Settings → Permissions, and legacy links still lead to the right replacement screen.

Reports are now one searchable, module-driven screen. Tickets and invoices appear when their add-ons are installed, future add-ons can register their own reports, and an absent module leaves no empty report behind.

Admin and portal tabs now switch to the same nested hamburger navigation at the same screen width, including subtabs. The old phone message about Desktop being remembered has been removed. Services contract 9; no database change.

1.45.0 — 16 August 2026

The chosen suite theme now owns the whole WordPress admin when admin theming is enabled. Core pages and installed plugins use the same surfaces, stripes, notices, selections, figures and menu highlights, instead of keeping white panels or WordPress blue underneath a painted cover.

Named palettes are complete light-and-dark looks. Choosing one warns that it will clear fine-tuned colours, then it takes over all theme tokens. The palettes are more distinct; Florida remains Florida and Miami is a separate neon option; Notebook is handwritten paper; Rustic is a light whiteboard or dark chalkboard. Preview buttons, colour dots and the Handwritten and Marker font choices now show and apply their real defaults.

Everything now means everything. A staff profile can include its tasks, current tickets, invoices, visits and safe Vault metadata. Staff manage their own Notification settings, while owners keep site and group rules in admin.

Tabs and subtabs become nested hamburger menus at smaller widths, including in admin. The toolbar renders one supplied logo or one “PBJ CRM” text fallback—never both—and its notification count refreshes after every CRM page change. Services contract 9; no database change.

1.44.0 — 16 August 2026

Vault records now follow the same identity rules as the rest of CRM. A record pinned to a business appears on that business, while client people and members of staff use their own proper records.

If somebody is both a client and a member of staff, their client and staff Vault records can appear together without duplicates. Every record still has to pass both the Vault security settings and the CRM rules for who may open that person or business.

Your name in the top bar now opens your own CRM profile and timeline. It no longer leads to a dead or settings-only address.

1.43.1 — 15 August 2026

Task lists on a phone are readable again. A task’s words were coming down the screen one character at a time beside a tall coloured stripe. Tick boxes and radio buttons are tick-box sized again on every simplified phone list.

1.43.0 — 15 August 2026

Dialogs, overlays and pop-up panels now follow your chosen theme. This includes the preview showing what a business can see, on every light and dark look.

The empty second menu row is gone; screens no longer repeat the tab you are already standing on; tasks and deals in Today open properly; Reports has its own menu item; and Setup is now Settings, gathering installed add-ons in one place.

Four new looks and six colour palettes were added, and your logo now links to your own home screen.

1.42.1 — 15 August 2026

An add-on declaring a malformed kind of record is now refused immediately. It is no longer quietly registered under a different name and allowed to fail later. The same check covers notification events, merge-token contexts and assistant fields and filters. Services contract 7; no database change.

1.42.0 — 15 August 2026

Tasks, notes and files can now be attached to records throughout the PBJ suite. Work attached to a ticket follows it when it becomes a visit and comes back if it becomes a ticket again, keeping its original history rather than being copied.

Unattached work appears on the customer record, with the business taking precedence when both a person and their business could claim it. Adds one attachment table; no existing table is changed.

1.41.1 — 14 August 2026

The dates on tickets your timeline already had are put right. The previous release stopped new lines being stamped with the moment the automatic catch-up ran — but the lines already written kept that stamp, so tickets opened weeks ago sat together under the day you updated.

Every one of them is moved back to the day its own ticket was opened, automatically, a minute or two after this update. Nothing is added, nothing is removed, and a line that already had the right date is left exactly as it is.

1.41.0 — 14 August 2026

The history got finer controls, because it really is everything now. “What has happened” carries every kind of entry a record can have — notes, emails you sent, marketing emails, support tickets, tasks, deals, anything brought in from a file and anything added automatically — and until now you could only narrow it to four of those. There is now a row of Just: buttons under the view chooser, one for each kind. Choosing one keeps you in the history and shows only that kind.

On a phone the same choices sit in the one Timeline view dropdown, grouped under “Narrow what has happened”, with the record’s own sections under “Sections of this record” — so the two questions that dropdown answers are labelled instead of jumbled together.

Fixed — tickets added by the automatic catch-up were dated the day it ran. A ticket opened three weeks ago now sits on the timeline under the day it was opened, not under today. Only newly added lines were affected; a line moved from one record to another has always kept its original date.

1.40.0 — 14 August 2026

A ticket you raised now appears on your own record. It only ever appeared for the person it was from, the business behind them, and whoever it was assigned to — so if you logged a ticket and gave it to somebody else, you had nothing to show for it. Whoever raised a ticket is now on it too.

Tickets you already have are brought up to date automatically, a minute or two after you update. Nothing is duplicated and no date is changed.

1.39.0 — 14 August 2026

You can now actually open a staff member’s record. 1.38.0 gave everybody on your team a record and 1.38.1 filled it with their work — but because those records are hidden, nothing anywhere linked to them, so the only way in was to dig through the hidden list in Manage everything and type the address by hand. Every place that lists your team now carries a direct link to that person’s record.

1.38.1 — 14 August 2026

Fixes 1.38.0 so it actually finishes the job. Staff got a record of their own, but the work already on your system had been filed before that record existed — so an agent’s history was empty. Existing tickets are now put onto the agent’s history too, automatically, a couple of minutes after the update. Nothing is duplicated and no date is changed.

1.38.0 — 14 August 2026

Your staff now have a record of their own, so work shows up on it. A ticket assigned to somebody already appears on the customer’s history and their business’s history — now it appears on the agent’s history too, which is what “everyone who touches a ticket sees it” was always meant to mean.

These staff records are hidden. They do not appear in your contact list, your business list, the people pickers or the duplicate finder, and they are never included in a marketing email because they have never been asked to subscribe.

If a member of staff is already in your contact book — because they are also a customer — that record is used as it stands. Nothing about it is hidden, changed or unsubscribed, and no second copy of them is created.

Existing staff are set up automatically a minute after you update. Nothing for you to do.

1.37.0 — 14 August 2026

Tickets now show up on every record that touches them. A ticket filed to a business appears on the business’s timeline as well as the person’s, and on the agent who owns it — before, it only ever appeared on one record, so a business you had carefully filed tickets under showed an empty history.

The Support tickets list on a record reads the ticket’s own customer fields instead of guessing from the email address. Filing a ticket under a customer now actually puts it on that customer.

Two people who share an email address no longer see each other’s tickets on their records.

Existing tickets are put onto the timelines they were missing from, automatically and in the background, once after updating.

1.36.3 — 14 August 2026

Housekeeping only. The translation template shipped inside 1.36.2 was one version out of date, because it was regenerated after the release file had already been built. Nothing on screen changes and nothing you do changes. No database change.

1.36.2 — 14 August 2026

On a phone, a contact or business page could show BOTH the Timeline view dropdown AND the full row of section buttons at the same time.

Whether it happened depended on which tab style your site is set to under the look settings: sites on Segment got both, sites on Underline did not — which is why it took a real phone to catch. The phone now shows the dropdown only, whichever tab style you use. Nothing changes on a computer. No database change.

1.36.1 — 14 August 2026

There was still a second way to choose what you were looking at on a contact or business, and it made the page read as though it had two timelines. The row of sections along the middle and the “Show me” dropdown under the note box both picked what the page showed, and four of the choices — Support tickets, Tasks, Deals and Marketing emails — appeared in both.

There is now ONE control. It carries everything: the whole history, the four ways to narrow it down (notes, emails you sent, things brought in from a file, things added automatically), and every section of the record. Nothing has been taken away — the four choices that were in both lists now open the fuller section view instead of a filtered feed. No database change.

1.36.0 — 14 August 2026

The contact and business page has been rebuilt, and the Mobile/Desktop switch has moved.

There is now ONE “Desktop” button, in the top bar beside your logo, and its background tells you which version you are on — solid when you are on the desktop version, outlined when you are on the phone screens. It replaces the pair of buttons that used to sit at the end of the menu row.

On a contact or a business, everything about the record is now in one block on the left: the photo, the name, a much smaller business/person switch, the labels, and the contact details. Those details now show ONLY what somebody has actually filled in — no more columns of “Not set” — with an Edit button that brings the empty ones back when you want to add one. “Start something” is now called “Add Work”, and on a phone it becomes a dropdown instead of a row of buttons.

The row of history tabs is unchanged on a computer, and on a phone it collapses into a single “Timeline view” dropdown, because ten tabs ran off the side of the screen.

Everything that used to be the unnamed column down the right is now called Attributes. On a computer it sits at the top of that column; on a phone it moves to the bottom and starts closed. The marketing email setting has moved into it. At the top of it is a new Show as client button, which shows you what that customer sees when they sign in to your portal — read-only, and built from what each part of the system says a client may see, never from a fresh look at the raw records.

The whole page now fits on a phone in one column with nothing running off the edge. No database change.

1.35.2

Finished work no longer appears on your day at all. The previous release stopped a completed job being called overdue, but left it in the list – so a visit marked Done and dated two days earlier still showed under “Due, across everything” in Triage. It is now removed where the list is built rather than at each screen that reads it, so every screen gets it.

1.35.1

Fixes work vanishing from the Agenda on a phone. The Agenda kept only rows whose lateness was worded one of two particular ways, and the three places that fill that list did not all word it the same – so a visit due tomorrow, and every open ticket on a site with no service-level policy, was fetched, permission-checked and then quietly dropped before it reached the screen. Nothing errored, which is why the rows simply looked absent. The CRM now decides how late every row is itself, in one wording, on the server, and it believes a plugin that says a job is finished instead of recalculating from the date. The Agenda now lists everything still open, latest first, and leaves out only genuinely finished work.

1.35.0

Your whole diary on your phone, from one button. On a phone the Agenda now has a single button at the top that puts your diary on the phone and keeps it up to date by itself, instead of a separate download every time you visit. One thing worth knowing: the link that does it is personal to you, and anybody who has it can see your diary — so treat it like a key to the van.

Every visit in the Agenda now carries two buttons, Google Maps and Apple Maps. Tap either one and the address is already in it.

Contacts, businesses and marketing emails have all had their tops tidied. A clear Edit button at the top of the screen, a title you can change just by clicking it, and a print button.

Fixed: printing a CRM screen now gives you a clean black-and-white page. If you were using a dark colour scheme, printing could come out almost blank. Printed pages now ignore the colour scheme altogether.

1.32.0

Businesses, tags, your saved lists and a record’s history are now open to your assistant. Businesses come through the same door the rest of the CRM uses, so a manager or an employee is handed exactly the list they already see on their own screen. Tags and saved lists can be listed and opened by name, so an assistant can say what a tag is for without reading every contact that carries it. And an assistant can read the history on a person: asking about somebody you are not allowed to see answers exactly the same way as asking about somebody who does not exist, so it can never be used to find out who is in the book.

Fixed: page two really is page two. Asking an assistant for the second page of your files, your calendar entries or your staff used to hand back the first page again.

Fixed: a business you are not allowed to open no longer carries a link to it. On a business whose details are withheld from you, the assistant was still being handed a direct link to that record. It is now left out altogether — left out, not blanked. Nothing about the business itself changed: everybody still sees every business name.

Your assistant now has 74 jobs it can do across 25 kinds of record, up from 38 across 11 — and every new one follows the rule the first 38 followed: an assistant sees exactly what the person whose link it is can see, and nothing else. Every job that existed before still exists and answers the same way.

1.31.1

The assistant connection lives in one place. It is on the Apps & Assistants settings screen and nowhere else — the extra copies that had turned up in the portal and on the phone screen have been taken away, because nobody asked for them. The connection itself is unchanged: the same link, the same Copy button, the same “Test my connection” check and the same safety notes.

1.31.0

Three assistant jobs that could never work now work. Listing your files, opening one file and opening one calendar entry all answer properly instead of coming back with nothing.

You can now narrow what you ask for. Each kind of record offers its own set of filters: people by who looks after them, by business, or by whether they may be marketed to; tasks by list, customer, who they are handed to and when they are due; deals by list, customer, business, owner and stage; calendar entries by the dates they fall between. The choices are handed to the assistant and checked again on the website, so a value that is not on the list is refused with a plain message instead of being quietly ignored. A filter can only ever narrow what that person could already see — it can never widen it.

The calendar window can be moved. It still starts at a month back and three months ahead, but an assistant can now ask for months outside that; a stretch longer than a year is trimmed rather than turned away.

“What has changed since” now gives an honest total everywhere it is offered, and it is no longer offered at all on records that do not carry a changed-on date.

A new “Test my connection” check answers in plain English — for example, “Working. Your assistant can see 38 tools across 11 kinds of record.” It never creates a token as a side effect. And the Copy button now tells you out loud whether it worked, then puts itself back a few seconds later.

1.30.1

The date-and-time picker (used when booking a visit, among other places) now follows the dark themes: the browser draws its calendar pop-up and its little icon dark instead of white. The earlier fix covered plain date fields only.

1.30.0

Tasks and Tickets are now separate main tabs, in the portal and in wp-admin — old links keep working. Dispatch gets its own main tab between Invoices & Orders and Companies & People, and the Archive add-on now shows as Vault, under Communication.

A Mobile/Desktop switch lives in the menu bar on every screen. Press Mobile and this device opens the simplified phone interface from now on; press Desktop and it stays on the full workspace. Each device remembers its own choice.

A person can belong to more than one business. The contact page gains a Businesses panel — link somebody to every firm they really work at, jump to any of them, unlink when they move on.

More ways to make it yours. Look and feel adds a typeface picker (system typefaces only — nothing is downloaded from anybody) and per-colour overrides for the main colours. Everything starts from your current preset and nothing changes until you change it; Reset puts the look back and keeps your logo and app icon.

The company logo no longer shows as a broken picture. The folder it lives in could inherit a “deny everyone” rule written for private files; the logo and app-icon folders now state their own permission. Home-screen app icons are fixed by the same change.

Manage tasks now works like Manage tickets: opens on open work, sortable columns, bulk set-a-due-date and delete, and “apply to everything that matches” — deleting asks you to type the count first.

1.29.0

Apps & Assistants. Connect an AI assistant (Claude, ChatGPT) to your CRM with a personal token: it can look up and work with contacts, tasks, deals, tickets, invoices, visits, files and calendar entries — always as you, seeing only what you could already see. Off until you create a token; revoking one cuts access immediately; protected Vault values are never handed out.

1.28.0

The Calendar group is now the Dashboard — and it is where you land. Triage first for administrators, the Today queue first for everyone else, with the Calendar right beside them. Nothing moved out of reach: Tasks and Tickets keep their own screens.

Subscribe to your calendar. A personal, private link Google Calendar or Apple Calendar can subscribe to — your own tasks, tickets, visits and invoice dates, updating on its own. Get a new link, or turn it off, any time from the Calendar screen.

Photos on people and businesses. Stored privately inside the CRM — never the public Media Library — and only shown to people allowed to see the record. Existing photos keep working until replaced.

Manage tasks. A manager screen listing every task your rung allows, with filters, bulk done and reopen, and hand-to-someone using the same roster as Manage tickets.

Also in this release: tickets, tasks and invoices each carry their own colour on the calendar and cards — adjustable on Settings ▸ Theming and readable on every preset; the calendar’s List view now shows the newest day first, with a toggle to flip it that remembers your choice; and the phone app icon now has a shipped default, so a site that never uploads one gets a proper CRM icon instead of whatever the phone invents.

1.27.0

One place to say how your email leaves this website — for the CRM and every add-on. A new Email delivery card on Connected accounts lets everything go out through a mailbox you already own instead of the website’s built-in mailer. That matters more than it sounds: until now the built-in mailer carried nearly all of it — every appointment email, most help desk notices, invoice reminders unless you had chosen otherwise — and mail sent that way often lands in spam or is refused outright, because the service receiving it has no way to check your website was allowed to send as you.

There are no new server or password boxes to fill in: it uses the mailbox you already set up on the card above it, Gmail and Microsoft included. You also choose what the sender line says — leave every message exactly as it is, fill it in only where a message did not set one (the sensible default), or always send as one address. A Send a test email button tells you what the mail server actually said if something is wrong, in its own words.

Nothing changes until you pick a mailbox. Appointment invitations still arrive as proper calendar invitations, and where a campaign or an invoice was already set to send from its own mailbox, that still wins. No database change.

1.26.0

A simplified phone interface. On a phone the portal opens with three big choices — Find, Create, Desktop. Find gives every kind of record a phone-sized list: people get an A-to-Z rail and sorting, businesses a search-first list, and tickets, invoices and visits a type-to-find screen. Create adds people, businesses, tasks, deals, and notes with photos — photos go through the CRM’s own file store. Desktop is the full portal, and choosing it is remembered on that phone. Turn the whole thing off under Settings ▸ The basics ▸ Simplified mobile interface.

1.25.0

The header search can be narrowed. Pill filters for every kind of record — people, businesses, tasks, deals, files, and every module’s records. Deals and files join the search. Results only ever name what you could already open.

1.24.0

A new look-and-feel system and a new top bar. The Look and feel screen now offers a Mode (Light or Dark) and a Style (Standard, Terminal or Notebook) — every style works in both modes, every combination is contrast-checked, and the typefaces are ones already on your computer, so nothing is downloaded from anybody else. You can also upload a company logo, which appears in the new top bar and on the sign-in page. The sign-in page now follows your chosen look properly, including dark modes.

The WordPress admin bar is gone from CRM screens, replaced by the CRM’s own bar: your name (click it for your profile), your open task and ticket counts, your inbox count if you manage mail, who else is signed in right now, a shortcut to the admin side if you have it, a search that looks across people, businesses, tasks and tickets — and only ever shows you things you could already open — and Log out. On a phone it folds into a Menu button.

For developers: the services contract is now version 4, adding header-count and search seams; modules declare header_counts and search payloads, already scoped and already redacted, and the CRM never enriches them. New routes: GET /header, POST /header/heartbeat, GET /search.

1.23.0

One answer to “who can I hand work to”. A manager’s list is their teams, plus staff not yet in any team, never anybody above their own rank — and the same list is read by the screen that draws the dropdown and the server that enforces it, so the two can never disagree. This fixes a quiet family of blank pickers: a manager who was not in any team used to see nobody but themselves, which read as a broken screen rather than an answer.

For developers: the services contract is now version 3, adding selectable_staff() and can_assign_staff(). The help desk directory and the visits booking picker consume them; feature-detect on PBJ_CRM_Services::VERSION >= 3 and keep your fallback.

1.22.0

A fix that matters to anyone who is not a site administrator: the list of businesses you pick from was coming back empty for managers and employees, so filing a person under a business always answered “Pick a business first.” Everyone can now see and choose every business again — by name, with the private details still hidden from staff who are not allowed them. And businesses are now chosen by typing a few letters instead of scrolling a list, which used to stop at 200.

One shared search-and-choose box now handles attaching a person or business to something, starting with tasks: the task form gains “Who is it for? (optional)”, so a task can be tied to a customer — or untied from one — while you are writing it. Click into the box and your most recent records appear; type a few letters and matches appear, with businesses marked. If the person you need is not in your list yet, the box offers to add a new person or business on the spot — a small name, email and phone form — without leaving what you were doing. It only ever offers: nothing is saved until you press Save.

Every customer’s page — person or business — gains a “Start something” row. One press starts a task for that customer with their name already picked, and add-ons put their own buttons on the same row: the help desk adds “New ticket”, and Dispatch adds “New visit” and “New appointment”, each landing on its form with the customer already filled in. The row only appears when there is at least one thing you are allowed to start.

You can now hide the clients you are done with. A hidden record keeps everything — its history, its notes, its jobs, its invoices; old links still open it and an email it sends still matches up to it — but it drops out of your lists, your searches and every “pick a customer” or “pick a business” box until you put it back. That happens on the new “Hidden records” tab under Companies & People ▸ Manage everything, where every row has one button: “Put back”. It is a shelf, not a bin — nothing on that tab is ever deleted on a timer. Hiding also says nothing about marketing email: who may be emailed is still governed only by the record’s marketing status and the do-not-email list, so hide someone AND unsubscribe them if you mean both. An import that meets a hidden record again updates it quietly without bringing it back into your lists.

Importing contacts is now guided instead of instant. Whatever the source — Square, Google Contacts, Microsoft Outlook or a CSV file — you pick where the contacts come from, see what goes where, and then get a check that counts what WOULD happen: how many people would be added, how many updated, how many are already up to date, and how many rows have a problem, with the first ten rows shown. Nothing at all is written until you press the one confirm button, which states those counts on its face — “Bring in 12 new people and update 30.” Walking away imports nothing, and a check older than 15 minutes is run again first, so what you confirm is always what happens. Scheduled syncs and add-ons that import through code are unchanged.

Every address in the CRM now offers “Open in Google Maps” and “Open in Apple Maps” links — built in your browser and sent to nobody until somebody actually clicks one — with a tick box under Settings ▸ The basics (Map links, on unless you turn it off) that removes them entirely, so if you want no page of yours linking out to a maps provider at all, untick it and that is exactly what you get. This release adds one column to the contacts table and takes the database to version 17; every existing record reads as “not hidden” and behaves exactly as before.

1.21.0

The “All businesses” tab is now the same screen as “All people” instead of a thinner copy of it. You get the tag filter, the “who looks after them” filter, the “how they got here” filter, your saved lists, the marketing filter and a fourth sort order; you can tick several businesses and change their email choice in one go, with the same consent question and the same “we left these alone” panel; and every card now shows its tags, its marketing badge, who looks after it, when it last changed, and how many people work there.

Three things behave differently afterwards and are worth knowing. The businesses tab now follows your staff visibility settings exactly the way the people list always has, so a manager or an employee who is not allowed a particular business no longer sees it on this tab at all. The search box now matches names, both email addresses, both phone numbers and job title — so looking a firm up by its web address no longer finds it, while looking it up by email now does. And very old company entries left behind by early imports, never attached to a business record, cannot appear on this list at all; they are still reachable at their own address and nothing has been deleted. One smaller change on both tabs: the “People / Businesses / people and businesses” dropdown has gone, so each tab shows its own kind only and the same firm never turns up in two places. No database change.

1.20.0

Fixes the error you got when you put an email address on a customer and something else already had it. Sharing one address is normal — office@ for a whole firm, a couple on one mailbox, one person you deal with at two businesses — so saving now tells you who else is on that address instead of refusing to save. A second fix rides with it: when somebody on a shared address unsubscribes or their mail bounces, every contact on that address is marked, not just the oldest one — and that is the field your segments and audiences actually read. Also fixes date boxes on the dark colour schemes, where the little calendar button was drawn black on black and could not be seen. No database change.

1.19.0

Photos and paperwork now live on the record they belong to. Drag a picture onto a person, a company, a to-do or a job; pick one off your computer; paste a screenshot straight onto the page; or take a photo on your phone while you are standing in front of the thing. Pictures taken on a phone are shrunk before they are sent, so a job full of them does not eat your website’s room or your data allowance. A small picture stays small — the limit is a ceiling, not a target.

None of it goes into the WordPress media library. Files sit in a private folder the web server refuses to hand out, under names nobody could guess, and every download and every thumbnail checks who is asking before it answers. That is the point of it: a photo of a customer’s alarm panel, a signed worksheet or a serial plate is not something that should be readable by anybody who guesses the address.

Every file can carry a label. “Before”, “After”, “Receipt”, “Estimate”, “Serial plate”, “Signed”, “Damage”, “Parts” and “Site” are ready to tap, and you can add your own. Inside a record the files gather into a drop-down under each label, with anything unlabelled kept at the bottom where it cannot quietly go missing.

Each file has a “Share with the customer” switch, and it is off until somebody turns it on. When it is on, the customer sees the picture and not the notes attached to it — where it was taken and what took it are stripped out of the copy they get.

Files use the same 30-day recycle bin as everything else. Taking a file off a record takes it off THAT record; if it is not filed anywhere else it goes to the bin and you have 30 days to change your mind. Settings shows how much room your files are using and warns you at 80% of whatever you set aside for them, before your host does. Big files go up in small pieces, so a long video is not stopped by an upload limit, and a dropped connection only re-sends the piece that failed.

Deleting somebody under a privacy request now also destroys the files held only about them, the copies on disk included. Files that are also filed against somebody else’s job are kept, and the screen tells you so. This release adds four database tables and takes the database to version 16. Nothing existing was altered.

1.18.0

Businesses are visible to your staff again. The previous release protected a business’s private details by hiding the business itself from anyone whose contact list did not already include it — and a business that arrived from a CSV, Square, Google or Microsoft import belongs to nobody until somebody claims it. On a normal site that meant every business vanished for every employee and manager: the company list came back empty, and with it went filing a person under a business, raising an invoice against a company, and pinning an Archive record to one.

The protection is still there and still withholds exactly the same things. Somebody who is not allowed to see a business now sees its name and web address and nothing else — no notes, no phone number, no postal address. Enough to pick it from a list and label a record; nothing that was copied down from the business itself.

Opening a company directly no longer refuses staff who can see it in the list. Companies whose business is in the recycle bin are still not found, which is unchanged and deliberate. No database change.

1.17.0

A privacy fix worth taking: a business’s notes, phone number and address were visible to every staff member, whatever their contact list allowed. Also fixes the recycle bin refusing customers whose tickets are finished, and money on the calendar printing with no currency sign. No database change.

1.16.0

Put the CRM on your phone. Under Settings → Theming there is now a switch, a name and an icon upload; turn it on and a phone offers “Add to Home Screen”, giving your team a full-screen CRM with your own name and logo under it instead of a browser tab. The icon is cut square and resized for you and is kept in the CRM’s own folder, never your Media Library. It deliberately does not work offline — the CRM has to ask the website who you are on every visit, so there is nothing safe to keep on the phone. Off until you switch it on.

1.15.0

A List view on the calendar. One day after another instead of a grid, which is far easier to read on a phone and better at answering “what is next?”. The month grid is unchanged and both are always available — pick with “How to show it” and it remembers your choice. On a small screen the List is what you get until you choose otherwise. Day headings for today and days still to come open the same “New task” button the month view got in 1.14.0.

1.14.1

Fixed: calendar times now read on your business’s clock, not the clock of whichever computer you happen to be using. Before this, the DAY an item was filed under came from your business’s timezone while the TIME beside it was converted to the viewer’s — so a task due at midnight could sit under Wednesday and read “8:00 PM”. Every row on the calendar had it. Display only; nothing moved to a different day.

1.14.0

Tapping a day on the calendar now offers what you can start on it. Today and any day still to come show a “New task” button that opens the task editor right there with the date already filled in. Days that have been and gone do not offer it — a task dated last Tuesday is late the moment you save it. The list is built to grow, so add-ons can put their own entries beside it.

1.13.0

Today — a single list of everything with your name on it. Your tasks and your help desk tickets together, sorted by when they are due, with anything late in red at the top. It is the first thing under Tasks & Tickets. A task can now say which ticket it is the follow-up for, and when both would show they appear as ONE line carrying the ticket’s number and a button to open it. Nothing was replaced: the full Tasks and Tickets lists are still their own screens. Today only shows tickets when PBJ Helpdesk 2.8.0 or newer is installed.

1.12.0

Internal only. Add-ons can now ask the CRM for the address of their own settings panel on the Templates & Notifications tab, instead of guessing it. That is what lets an add-on move one of its screens here without leaving a dead link behind — PBJ Helpdesk 2.7.0 is the first to use it. Nothing changes on screen and no data is touched. Update this before updating the Help Desk.

1.11.0

Dark mode is properly dark — the page behind the CRM is black rather than charcoal, and it is black the moment the page opens instead of flashing white first. Cards stay slightly lighter than the page so they still read as cards. The CRM screen is also now genuinely independent of your website’s theme: your theme’s styling no longer reaches inside it at all, so the CRM looks and behaves the same whichever theme you run and however you change it — and every other page on your site is completely untouched. Finally, the screen uses the full width of your display instead of sitting in a fixed column, so wide tables get the room they need, with a hairline border keeping the edge visible: dark on a light page, light on a dark one. Appearance only — nothing changes about how anything works.

1.10.0

A new Templates & Notifications tab gives you one place to decide which emails your team gets — and, because add-ons put their own templates there too, one place to find the wording of anything you send. You can now change one person’s email settings on their behalf. Staff groups have moved into the CRM itself, so a group means the same thing whichever add-ons you run; your existing groups came across exactly as they were, and deleting a group now simply ungroups its people rather than leaving them pointing at something gone. Your team can fill in their own job title, direct number, booking link, office hours and photo, and drop any of it into an email with a click — every screen that writes an email now has a button for each merge field, offering only the fields that make sense there. The ready-made marketing emails sit above “write a new email” rather than inside it, and choosing which mailbox a marketing email sends from is a dropdown of your own mailboxes instead of a box asking for its number. The CRM screen now fills the page on its own, with no site logo, menu, header or footer around it. Security: removing someone from the CRM signs them out everywhere immediately and refuses to let them back in, and staff sign-ins now last hours rather than the site’s default of days — so anyone signed in when you update will be asked to sign in again. Your existing notification settings are carried across, and the database updates automatically.

1.9.0

The Square, Google Contacts and Microsoft Outlook import cards each gained a tick box: Bring people who are already here up to date too. Left off, which is still the recommendation, an import only fills in blanks on somebody already in the CRM, so it can never contradict what your team has typed. That is also why running the same list a second time reports a large “skipped” number and nothing has gone wrong: a person who needs no changes is counted as skipped, not updated. Tick the box and the other service wins where the two disagree, so records you imported months ago are brought up to date. A blank at the other end never wipes something you already have, either way. Off by default. No database changes.

1.8.0

A bug-fix release from a full code review of the whole suite. Merging two records no longer fails when their marketing settings differ. Somebody moved to the recycle bin can no longer be emailed by a campaign that is already going out. Invoices with no customer attached, or filed against a business, appear on the calendar at last. Editing a business through the company screen now follows the same permission rules as everywhere else. Plus: a timed-out sign-in asks you to refresh instead of claiming you have no access, the “Which PayPal” box no longer locks itself on Live, checklist ticks from two people at once no longer lose one, and turning a business back into a contact now really does check for open help desk tickets.

1.7.0

Campaign emails now write in the standard WordPress editor with starter templates and an “Insert a detail” personalization picker. Business profiles carry the full field set with an Employees panel and address boxes. The two-way sync can no longer create a business or company on its own — company changes arrive as a note for you to act on.

1.6.0

Square import fixes (custom fields now fetched per customer; phone-only customers import; same-provider duplicates stay separate), repeatable checklist tasks, calendar filters that remember your choices, card-style people/business lists, and a full mobile pass across the suite.

1.5.x

The CRM team became the ONLY staff list for the whole suite (helpdesk agents are CRM staff), and customer-less helpdesk tickets became visible on the calendar.

1.3.0–1.4.8

The fully guided Connected accounts page: a step-by-step card for Square, PayPal, Stripe, Google and Microsoft, visible webhook addresses, credential locking with a Disconnect button, “Sign in with” mailboxes that send over true XOAUTH2, and much clearer error messages throughout.

1.0.0–1.2.0

The foundation: contacts and businesses in one book, imports and two-way sync with a human approval gate, the drip email marketing engine with tracking/unsubscribe/consent, reports and GDPR tools, the whole-business calendar, the front-end portal with themes, the module hub, the 30-day recycle bin and the bulk record manager.

Latest Articles