Support ticketing for providers serving many clients

Multi-Company Helpdesk

Support requests from the employees of many client companies, routed automatically to the right agent, with email at every step.

AT A GLANCEPROFESSIONAL & IT SERVICES
Apps
Web app with admin, agent, employee and guest access
Routing
Least-loaded available agent matched to company and category
Email
Mailbox configured in the app, password encrypted
Built with
Laravel 12, Bootstrap
9 MODULESBUILT AND SHIPPED

The problem

What it replaces

An IT or facilities provider supporting several companies gets requests by phone, email and chat, with no single queue. Tickets reach whoever happens to be free rather than the agent who knows that client, and clients never hear back until they chase.

This helpdesk lets each client company’s employees — or guests without an account — raise tickets that are routed to the least-loaded available agent for that company and category, discussed in a thread, and reported on by company, category, priority and agent.

Who uses it

Client employees
Register under their company, raise tickets and follow the conversation.
Guests
A no-login form for one-off requests.
Agents
Their own queue, availability status and dashboard.
Admins
Companies, agents, categories, email settings, branding and reports.

Features

What the system does

01

Companies

Client companies with their users and ticket counts.

02

Agents

Agents linked to the companies and categories they cover, with department and availability.

03

Categories, priorities and statuses

Low to urgent priorities; open, in progress, pending, resolved and closed.

04

Automatic assignment

New tickets go to the least-loaded available agent who covers that company.

05

Conversation thread

Every ticket has a running thread between requester and agent.

06

Email at every step

Notifications on creation, status change and assignment, from editable templates with variables.

07

Mailbox settings in the app

Common providers or custom SMTP, with the password encrypted and a test-connection button.

08

Reports

By category, priority, company and agent, with export, and an agent performance page.

09

White-label branding

Logo, favicon, name and contact details set by the admin.

Architecture

How the pieces fit together

A single Laravel application, containerised, where model observers send the right email whenever a ticket changes — so no code path can change a ticket without notifying people.

Apps

  • Admin & agent consoleBlade + AJAX
  • Employee portal
  • Guest ticket form

Platform

  • Tickets & threads
  • Assignmentleast-loaded
  • Notification observer
  • Reports

Data

  • MySQL or SQLite

Connected services

  • Email provider
Email is sent from a model observer on the ticket, not from each screen, so every change — from any screen or any future API — notifies the right people.
  1. RaiseAn employee or guest raises a ticket under a company and category.
  2. RouteIt is assigned to the least-loaded agent who covers that company.
  3. ResolveAgent and requester work it in the thread; every status change emails both.
  4. ReviewReports show volume and performance by company, category and agent.
Built with
  • PHP 8.2
  • Laravel 12
  • Eloquent
  • Blade
  • Bootstrap 5
  • Docker

Built before, fitted to you

Start from an architecture that has already shipped

We have delivered this kind of system, so yours starts from a design that is known to work, not a blank page. Your workflow, your terminology and your approval chain shape what we build on top of it.

Enquire Now