Case management¶
How cases work in the CRM: where they come from, how to find one, what you can do to it, and what happened to the Voicemails screen.
1 · What a case is¶
A case is one thing a customer sent us that somebody has to deal with — a voicemail, an enquiry, a complaint — held as a single item that can be assigned, worked and closed.
It replaces the old Voicemails screen and generalises it. A voicemail was already almost a case: it had a venue, sometimes a contact, a category, follow-ups and an Actioned/Pending badge. What it could never describe was anything that was not a phone call. A case can.
Every case carries:
- a reference —
CASE-1042— which is what you read out on the phone - a subject — the line staff see in the queue
- a status, a category and a source
- optionally a venue and a contact
- optionally an assignee: a person, a team, or both
- optionally a follow-up date
- a timeline of everything that has happened to it
A case with no contact is normal, not broken.
Plenty of callers are people we hold no record of. The queue shows those as Anonymous rather than as a blank, because it is a real state of a case and not a field somebody forgot to fill in.
Where to find it. CRM → Cases in the left sidebar.
What you need to see it¶
Access to cases is granted by the case:view and case:edit roles. case:view gets you the queue, a case's detail and its history. case:edit is what lets you raise, assign, restatus, note and set follow-ups on a case.
The old voicemail roles do not grant case access.
voicemail:view and voicemail:edit never granted access to cases, and the Voicemails screen they did grant is gone. Anyone still holding only that pair can still sign in to the CRM, but lands on a bare page with an empty sidebar and nothing they can open. They need case:view or case:edit instead.
Needs confirming
Whether the voicemail roles have since been swapped for the case roles, and for whom. The CRM cannot do this. Roles are granted and withdrawn in Keycloak — the system that decides who can sign in to the CRM and what they can open — so whoever administers Keycloak for the CRM will know where that stands.
2 · Where cases come from¶
A case records how it reached us, and the queue can be filtered on it. There are four sources on the list, but only two of them actually raise cases today.
| Source | Raised how | Live? |
|---|---|---|
| Voicemail | Automatically, when a voicemail notification email is processed | Yes |
| Manual | By hand, from New case in the CRM | Yes |
| — | Not yet | |
| Contact form | — | Not yet |
Email and Contact form are on the list but nothing creates them.
Both appear in the Source filter because the system knows about them, but no part of the system raises a case from an inbound email or from a website contact form. Contact form submissions still go to an email inbox as they always did. If you filter the queue to either of these you should expect no results.
Voicemail cases¶
When a voicemail arrives, the notification email is processed automatically and becomes a case:
- Source is Voicemail and the status is New.
- The subject is Voicemail from followed by the calling number, so one call is distinguishable from another in the queue before anybody opens it.
- The venue is worked out from the voicemail extension the call came in on. If no venue matches that extension, no case is raised at all.
- The contact is matched from the calling number, comparing in international format — so 07700 900123 and +447700900123 are recognised as the same person. Where two contacts hold the same number the system declines to guess and leaves the case anonymous rather than attaching it to the wrong person.
- The recording and transcript are stored on the case.
A case raised from a new call arrives Uncategorised and stays that way: a category is only ever chosen by the person raising a case by hand. Voicemail cases migrated off the old screen are the exception — they kept the category they had there. See Categories.
A voicemail notification with no recording attached raises no case.
The recording is what a voicemail case is for, so if the notification email arrives without one, nothing is created and the call does not appear in the queue. The same is true if the extension it came in on matches no venue. If a caller says they left a message and there is no case for it, those are the two things to check.
Raising a case by hand¶
Press New case on the queue. You will be asked for:
- Subject — required. What staff will see in the queue; short and specific beats complete.
- Category — optional, defaults to Uncategorised.
- Venue — optional. Leave it blank if the case concerns no one venue.
- Contact — optional. Search by name; a case with no contact is fine.
- Opening note — optional, and worth writing. It is filed as the first note on the case's timeline, under your name.
You cannot choose the source.
A case raised through this dialog is always recorded as Manual. That is deliberate: if it could be labelled a voicemail or an email, hand-raised cases would show up in the channel figures as inbound work that never actually arrived.
The case is recorded as raised by whoever is signed in. That comes from your sign-in, not from anything on the form, so a case can never be filed under a colleague's name.
3 · Finding a case¶
The queue at CRM → Cases shows everything raised across the estate, newest first, 25 to a page.
The columns¶
| Column | What it shows |
|---|---|
| Reference | CASE-1042. Click it to open the case. |
| Subject | The line the case was raised under. |
| Status | New, Open, Waiting, Resolved or Closed. |
| Source | Voicemail, Email, Contact form or Manual. |
| Venue | The venue it concerns, or a dash if it concerns no one venue. |
| Contact | The customer, linked through to their contact record — or Anonymous. |
| Assignee | The person it sits with; the team, if it has no named person; otherwise Unassigned. |
| Created | When it arrived. |
| Due | The follow-up date, if one is set. |
The filters¶
Five dropdowns above the table: status, assignee, team, venue and source.
They combine with and, not or. Picking a person and a venue gives you that person's cases at that venue, not everything belonging to either. The five filters are held in the page's web address, so a filtered queue can be pasted to a colleague or bookmarked and it will come back filtered the same way. The page number is not: a bookmarked or shared link always opens at page 1.
There is no search box, and no sorting.
You cannot search the queue by reference, subject, phone number or customer name, and you cannot re-sort it — the order is always newest first. To find a specific case, narrow it with the filters and page through, or open it directly if you have its reference.
Reference numbers¶
A case's reference is CASE- followed by its own internal number: CASE-1042. They are allocated in order as cases are raised, and are never reused. Among cases migrated off the old Voicemails screen the numbering reflects the order they were copied across rather than the order the calls came in, so do not read a reference as a reliable stand-in for a date — the Created column is the date. There is no venue code, date or random suffix in them — a reference has one job, which is to be read out over the phone and typed back correctly.
4 · The case detail page¶
Opening a case shows its reference and subject at the top, with the status dropdown beside them.
Case facts¶
Status, source, category, contact, venue, assignee, when it was raised, when the follow-up is due, and when it was resolved. Every one of these is shown even when it is empty, so a missing venue is visibly missing.
Voicemail¶
Cases that came from a phone call carry an extra panel with the calling number, the transcript and the recording. The panel appears when the case has a voicemail attached to it — not because of what its Source says — so a case with no voicemail on it simply does not show the panel, whatever its source.
Where the calling number was not passed through, the panel shows Withheld in its place.
The transcript is a machine's best guess at a phone call.
It is generated automatically. A mangled name, address or postcode is a transcription to check against the recording, not what the caller actually said. The page says so under every transcript. Play the recording if anything reads oddly.
The panel copes with either half being missing: a transcript with no recording, or a recording with nothing transcribed. Where there is no recording it says so in as many words, rather than leaving a play button missing. The link the player uses is short-lived — an hour — and the player prints the exact time under itself, as Audio URL expires at …. An expired link fails as a dead player rather than as an error message, so if nothing happens when you press play, check that time and reload the page for a fresh link.
History¶
The case's timeline, oldest first — a case's own history reads forwards as a story, even though the queue of cases reads newest first. Each entry says what happened, when, and who did it.
| Entry | What it means |
|---|---|
| Note | Something a member of staff wrote down. |
| Status changed | Carries the status it moved from and the one it moved to. |
| Reassigned | Carries who or which team held it before, and who holds it now. |
| Follow-up set | A follow-up was set, moved or cleared, with whatever reason was typed at the time. |
| Message sent | A reply went out to the customer. |
| Message received | The customer got back in touch. |
The two message entries cannot appear yet.
Nothing in the system currently sends replies from a case or files inbound customer messages onto one. The timeline knows how to display them for when that arrives; today you will not see one.
Every follow-up entry reads \"Follow-up set\", including a clear.
The timeline shows the reason typed at the time but not the dates themselves, and it uses the same wording whether the follow-up was set, moved or removed. The reason is therefore the only thing distinguishing them — which is a good argument for always typing one. The current due date is on the case itself, under Due.
Internal notes¶
Below the timeline is a box to add a note. Notes are the substance of a case — what was tried, what the customer said, what happens next — and are the thing staff add far more often than they change a status.
A note is internal. The customer never sees it.
Notes are not correspondence, and nothing in the system can send one to a customer, which is why they are marked so heavily on screen. Correspondence with a customer, when replying from a case arrives, will land in this same timeline as a separate kind of entry — so the distinction is carried in words rather than in a colour.
A note is filed under whoever is signed in. Adding one does not change the case's status: writing down a detail while triaging is not the same as picking the case up, and if it were, the queue of unworked cases would empty itself every time somebody made a note.
5 · Statuses¶
Change a case's status from the dropdown at the top right of the case.
| Status | What it means |
|---|---|
| New | Raised, and nobody has picked it up. |
| Open | Being worked. |
| Waiting | Parked, waiting on the customer to come back to us. |
| Resolved | Dealt with, as far as we know. |
| Closed | Deliberately signed off and finished with. |
There is no fixed order and no gates: any status can be set from any other. Setting a status to what it already is does nothing and writes nothing to the timeline.
Why Resolved and Closed are not the same¶
This is the distinction most worth understanding.
Resolved means we believe we have dealt with it. Closed means somebody has deliberately signed it off. They are kept apart because a customer can come back on a case we thought was finished, and a customer reopening something we called resolved is not the same event as somebody reopening a case that was deliberately closed.
They are also stamped separately: a case records when it was resolved and, separately, when it was closed. Resolving is the moment the customer's problem stopped; closing is administrative and can happen days later. Keeping one timestamp for both would date every resolution to its paperwork instead of to the day it was actually dealt with.
Two behaviours follow from that:
- Moving a case out of Resolved to anything other than Closed clears its resolved timestamp. A case somebody is arguing with is not a resolved one, and would otherwise still be counted as one. The timeline keeps the record of the resolution that was undone.
- Closed is terminal. When replying from a case arrives, a customer message on a Resolved or Waiting case will bring it back to Open — a reply on a resolved case is the ordinary way a resolution turns out to have been wrong, and Waiting means waiting on the customer, so their reply is exactly the thing the case was parked for. A message on a Closed case will not reopen it: it was signed off, and reopening would rewrite numbers already reported on.
Nothing stops you closing a case by hand at any point.
The terminal behaviour above is about what an incoming customer message does to a case, not about what you are allowed to do. You can move a Closed case back to Open yourself if it was closed in error.
6 · Assignment¶
The Assignment panel on a case has two dropdowns — a person and a team — and a Save assignment button.
They are independent. A case can sit with a team before anyone has picked it up, and assigning it to a person as well is what gives it an owner. Neither implies the other, and both can be empty: assigned to nobody is a real state, not a mistake.
Assignment is a draft you confirm, not two dropdowns that save themselves.
Person and team are saved together, so nothing saves until you press Save assignment. Changing one dropdown and walking away changes nothing.
Every reassignment is written to the timeline with the names of who held it before and who holds it now.
Who appears in the dropdowns¶
The staff list maintains itself: a staff record is created the first time somebody signs in to the CRM, so anyone who has used it is already assignable. Deactivated staff are kept forever so that historic assignments stay readable, but they are not offered as assignees.
The one thing that cannot happen automatically is putting a new starter on the list before their first sign-in, which is exactly when their work has to go somewhere. CRM → Staff & Teams (administrators only) can add them by name and email; their first sign-in matches onto that record rather than creating a duplicate. The same screen creates and retires teams, and moves a staff member between them.
Look for Staff & Teams, not Staff.
The sidebar item directly above it is Staff Party, which is an unrelated screen.
Teams and staff are retired, never deleted.
Cases already sitting in a team's queue keep pointing at it, and timeline entries naming a person or a team have to stay readable after they have gone.
Removing somebody from the assignment list does not keep them off it.
A staff record is reactivated every time they use the CRM at all — signing in is taken as proof of current access. So anyone who can still log in reappears in the assignee dropdowns almost immediately after you remove them, and nothing tells you it happened.
Removing somebody from the list is therefore only useful for people who can no longer sign in. To actually remove a leaver, their access has to be withdrawn in Keycloak — the system that decides who can sign in to the CRM. Doing it only in the CRM will look as though it worked and will quietly undo itself.
7 · Follow-ups¶
A follow-up is a promise to come back to something. It is the Due date on the case and in the queue — always a date in the future, and always something still owed.
Follow-ups carried over from voicemails do not mean this.
On the old Voicemails screen a follow-up recorded a call-back that had already been made. Those came across as timeline entries and set no due date on anything — see What happened to the Voicemails screen.
The Follow-up panel has a date and time picker, an optional Why box, and buttons to set, change or clear.
- Set or Change follow-up writes the date onto the case.
- Clear follow-up removes it. The button only appears when there is one to clear.
Clearing a follow-up is an action, not an omission.
Emptying the date box is not the same as clearing the follow-up, which is why the picker has no clear button of its own and clearing is a button in its own right. Dropping a promise to ring somebody back is a decision somebody made, and it is written onto the timeline as one — with whatever you typed in the Why box as the reason.
Whatever you type in Why attaches to the change you are making, not to the date, and it is as useful on a clear ("customer sorted it themselves") as on a set ("ring back Thursday"). It is cleared once the action has been written.
Nothing reminds you when a follow-up is due.
There is no alert, no email and no overdue filter. The due date shows in the Due column of the queue and on the case, and that is all. If follow-ups matter to how your team works, somebody has to look at the queue.
8 · Categories¶
A case's category comes from the list carried over from voicemails — the same categories, unchanged, because every migrated voicemail was moved across on it and inventing new values would have baked in guesses staff then had to live with.
| Category | Used for |
|---|---|
| Uncategorised | The default. Every automatically raised voicemail case starts here. |
| Lost property | Something left at a venue. |
| Booking enquiry | Questions about a booking. |
| Customer issue | A complaint or a problem with a visit. |
| Police | Contact from the police. |
| Utilities | Suppliers and utilities. |
| Cold call | Sales calls and the like. |
A category is set when the case is raised and cannot be changed afterwards.
There is no category dropdown on the case detail page and no way to recategorise a case once it exists. Voicemail cases migrated off the old screen kept whatever category they had there, but a call arriving now becomes an Uncategorised case and stays one. If recategorising matters to your reporting, it needs raising as a change.
9 · What happened to the Voicemails screen¶
Now its own page: What happened to the Voicemails screen.
10 · Not in the CRM yet¶
Things a case system might be expected to do that this one does not do today. None of these are broken; they have not been built.
- Replying to a customer from a case. There is no reply box. Correspondence is handled outside the case, exactly as it was before.
- Attachments. A case can hold files in principle, but there is nothing in the CRM that uploads, lists or opens one.
- Editing a case after it is raised. Subject, category, venue and contact are set when the case is created and cannot be changed. There is no way to delete a case.
- Searching or sorting the queue. Filters only, newest first.
- A cases dashboard. No counts, no per-person workload view, no overdue list.
- Follow-up reminders. Covered in Follow-ups — nothing chases you.
11 · Roles¶
The other reference tables sit with the sections that explain them: sources, statuses, categories and timeline entries.
| Role | Grants |
|---|---|
case:view |
The queue, a case's detail, its timeline and its recording. The staff and team lists. |
case:edit |
All of the above, plus raising, assigning, restatusing, noting and setting follow-ups — and creating, editing and deactivating staff members, and creating and retiring teams. |
admin |
All of the above, plus the CRM → Staff & Teams screen itself. |
case:edit carries more than the case workspace.
Only administrators get the Staff & Teams screen, but the permission to change staff and teams is granted by case:edit itself. Anyone with it can add, rename or deactivate a staff member and create or retire a team. Worth knowing before granting it widely.