Artumi Logo

Modernising Our Own Helpdesk, Live, With Zero Downtime

Every business we work with eventually asks the same question about a system they rely on daily: how do you modernise something that can't afford to break? We had our own answer to give, because we had our own system to modernise.

Our in-house ticketing and helpdesk platform has run our support operation for years. It's built on arcode, an in-house PHP framework we've maintained since long before Laravel existed. It works, and our team depends on it every day, but the tooling around it - and the pace at which we could add to it - was showing its age.

The Challenge

We needed to bring the helpdesk onto a modern stack, but a full rewrite carries real risk: a big-bang cutover means a long stretch where nothing can be verified against real usage, and any regression shows up all at once, in production, on a system the whole business is actively using to do its job.

We didn't want to freeze feature work for months to get there, and we didn't want a weekend cutover that either worked perfectly or didn't.

The Approach

We used a strangler-fig migration: Laravel and Filament were stood up alongside the existing arcode application, sharing the same database. We ported the permission model first - the rules governing who can see and act on which support queues - onto Laravel's Gates and Policies, so both systems could enforce access control identically.

From there, screens were converted one at a time: queue views, the ticket view and reply flow, search, invoices, user management, and the ticket actions (merge, rename, create child, manage relations). Both systems stayed live throughout, so at every point we could compare old and new side by side against real data, and roll back a single page if something wasn't right - without touching anything else.

Once every screen had a Laravel equivalent, we moved the front controller so all traffic went to Laravel, and retired the old arcode request path entirely.

Before and After

A handful of screens show the change clearly. Client and ticket content in these screenshots has been redacted or replaced with placeholder data. Click any screenshot to view it larger.

Overview dashboard

Before

Old arcode overview dashboard

After

New Filament overview dashboard

The queue overview - the page every member of staff lands on - keeps the same at-a-glance ticket counts by priority, now rendered with a modern component library instead of hand-rolled tables.

Viewing a ticket

Before

Old arcode ticket view

After

New Filament ticket view

The core ticket screen - status, priority, queue, and the message thread - is functionally identical, but the page itself is now a Filament page backed by Eloquent instead of an arcode template.

Replying to a ticket

Before

Old arcode reply form

After

New Filament reply form

The rich-text reply editor carried across largely unchanged in look and feel - the goal here was never to retrain staff, just to modernise what sits underneath.

A queue's ticket list

Before

Old arcode queue ticket list

After

New Filament queue ticket list

Queue views gained filtering by client and a live search box, on top of the same open/closed ticket data.

Search

Before

Old arcode search page

After

New Filament instant search

The old page of separate search forms - full text, quick code lookup, advanced fields - carried across as the new Search page's Advanced Search tab, with the same structured filters (queue, priority, status, tag, client, and who created, replied to, owns, or is working each ticket) plus ranked full-text search. Sitting alongside it is something arcode didn't have: an instant-search box in the header, on every page, for the common case of just wanting a specific ticket by code or keyword.

Invoices

Before

Old arcode invoice list (figures redacted)

After

New Filament invoice list (figures redacted)

The invoice list now leads with summary totals and sortable columns, built on the same VAT and PDF generation logic as before, just moved into a dedicated service class.

The Outcome

The same approach we recommend to clients rescuing or replacing a legacy system - stand the new system up alongside the old one, migrate piece by piece, and only retire the old path once every piece has been proven - is the approach we used on our own critical infrastructure.

TALK TO US ABOUT YOUR CURRENT SET UP

If your systems are slowing down growth, creating manual work, or becoming difficult to support, we can help you identify what needs fixing and what comes next.

Please provide your details below and we will do our best to get back to you.

Prefer to talk? Call us on 0114 299 8033, 9am–5pm Monday–Friday.

Contact Information

Artumi Systems Ltd. Company Number 8557359

VAT Reg 889031788

Phone number: 0114 299 8033

Opening hours: 9am–5pm, Monday–Friday