Helpdesk/ticketing system development
A helpdesk system manages customer or employee requests: accepts via multiple channels, routes to specialists, tracks SLA, maintains interaction history. Built as alternative to Zendesk, Freshdesk, Jira Service Management — when deep customization, specific integrations, or closed deployment needed.
Ticket lifecycle
new → open → in_progress → pending (awaits customer)
↓
resolved → closed
(auto-close after 48h no response)
Each status transition logged with timestamp and user.
Request intake channels
| Channel | Implementation |
|---|---|
| Parse incoming emails (IMAP/Mailgun Inbound) | |
| Website widget | JS widget with form and chat |
| API | REST endpoint for integrations |
| Telegram | Bot creating tickets |
| Phone | Integration with PBX (Asterisk, Mango) |
Incoming email → ticket creation via Mailgun Routes or Laravel mail parsing:
// Incoming email handler
public function handle(InboundEmail $email): void
{
$ticket = Ticket::create([
'subject' => $email->subject(),
'body' => $email->text(),
'customer' => Customer::firstOrCreate(['email' => $email->from()]),
'channel' => 'email',
'status' => 'new',
]);
$ticket->attachFiles($email->attachments());
}
SLA and escalations
SLA (Service Level Agreement) — commitment to respond/resolve within time. Configuration by priority:
| Priority | First response | Resolution |
|---|---|---|
| Critical | 1 hour | 4 hours |
| High | 4 hours | 24 hours |
| Normal | 8 hours | 72 hours |
| Low | 24 hours | 5 days |
SLA timer accounts for business hours and holidays. On breach — auto-escalate: notify manager, change priority, reassign.
Ticket routing
Auto-route by rules:
- By subject/keywords → right group
- By customer email domain → account manager
- Round-robin within group
- By agent load (least-loaded)
Macros and auto-replies
Frequent actions → macros: one click applies template response + changes status + adds tag. Auto-reply on ticket creation — confirmation with ticket number.
Analytics
- First response time (FRT)
- Mean time to resolve (MTTR)
- SLA compliance %
- Tickets by agent/group/period
- CSAT — customer satisfaction survey after close
Knowledge base (self-service)
Attached KB reduces ticket volume: when creating ticket, show relevant articles. Auto-suggest closing if article solved problem.
Timeline
MVP (email + widget, statuses, customer portal, basic SLA): 6–8 weeks. Full Helpdesk with multiple channels, SLA escalations, analytics, knowledge base: 3–4 months.







