PHPackages                             crumbls/helpdesk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. crumbls/helpdesk

ActiveLibrary[Framework](/categories/framework)

crumbls/helpdesk
================

HelpDesk Package for Laravel.

2.1.0(2mo ago)00MITPHPPHP ^8.0

Since Feb 6Pushed 2mo agoCompare

[ Source](https://github.com/Crumbls/helpdesk)[ Packagist](https://packagist.org/packages/crumbls/helpdesk)[ Docs](https://github.com/crumbls/helpdesk)[ RSS](/packages/crumbls-helpdesk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (9)Versions (5)Used By (0)

Crumbls HelpDesk
================

[](#crumbls-helpdesk)

A helpdesk and ticket management package for Laravel. Provides a complete REST API for managing tickets, priorities, statuses, departments, and ticket types.

Beta Status
-----------

[](#beta-status)

This package is in active development. While core API functionality is working and tested, please note:

- APIs are subject to change
- Not recommended for production use without thorough testing
- Breaking changes may occur between releases
- Some features (custom fields, topics) are not yet implemented

Features
--------

[](#features)

- **REST API** with full CRUD for all resources
- **Content negotiation** -- responds with JSON or XML based on `Accept` header
- **Config-driven models** -- swap any model class via config
- **Soft deletes** on all resources
- **Policy support** -- optional, per-resource authorization via Laravel policies
- **Auto-calculated foreground colors** from background hex via the `HasColors` trait

Requirements
------------

[](#requirements)

- PHP 8.0+
- Laravel 9.0, 10.0, 11.0, or 12.0

Installation
------------

[](#installation)

```
composer require crumbls/helpdesk
```

The service provider is auto-discovered. Run migrations:

```
php artisan migrate
```

To publish the config file:

```
php artisan vendor:publish --provider="Crumbls\HelpDesk\HelpDeskServiceProvider"
```

Configuration
-------------

[](#configuration)

After publishing, configure your helpdesk in `config/helpdesk.php`:

```
return [
    'api' => [
        'enabled' => true,
        'route-prefix' => 'api/helpdesk',
        'middleware' => ['web'],

        'department'  => ['usePolicy' => false],
        'priority'    => ['usePolicy' => false],
        'status'      => ['usePolicy' => false],
        'ticket'      => ['usePolicy' => false],
        'ticket_type' => ['usePolicy' => false],
    ],
];
```

### Options

[](#options)

KeyDescriptionDefault`api.enabled`Enable or disable the API entirely`true``api.route-prefix`URL prefix for all API routes`api/helpdesk``api.middleware`Middleware applied to all API routes`['web']``api.{resource}.usePolicy`Enable policy authorization per resource`false`### Swappable Models

[](#swappable-models)

Override any model class via `config/helpdesk.php`:

```
'models' => [
    'department'   => \App\Models\CustomDepartment::class,
    'priority'     => \App\Models\CustomPriority::class,
    'status'       => \App\Models\CustomTicketStatus::class,
    'ticket'       => \App\Models\CustomTicket::class,
    'type'         => \App\Models\CustomTicketType::class,
],
```

API Endpoints
-------------

[](#api-endpoints)

All endpoints are prefixed with your configured `route-prefix` (default: `/api/helpdesk`).

ResourceEndpointMethodsDepartments`/departments`GET, POST, GET/:id, PUT/:id, DELETE/:idPriorities`/priorities`GET, POST, GET/:id, PUT/:id, DELETE/:idStatuses`/statuses`GET, POST, GET/:id, PUT/:id, DELETE/:idTickets`/tickets`GET, POST, GET/:id, PUT/:id, DELETE/:idTypes`/types`GET, POST, GET/:id, PUT/:id, DELETE/:idA `GET /` endpoint lists all available API routes.

### Quick Example

[](#quick-example)

```
curl -X POST http://localhost/api/helpdesk/priorities \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"title": "Critical", "color_background": "#EF4444", "level": 5}'
```

### XML Responses

[](#xml-responses)

Set the `Accept` header to receive XML instead of JSON:

```
curl -X GET http://localhost/api/helpdesk/priorities/1 \
  -H "Accept: application/xml"
```

API Documentation
-----------------

[](#api-documentation)

Detailed API documentation with curl examples for each endpoint:

- [Departments](docs/api-departments.md)
- [Priorities](docs/api-priorities.md)
- [Statuses](docs/api-statuses.md)
- [Tickets](docs/api-tickets.md)
- [Types](docs/api-types.md)

Testing
-------

[](#testing)

```
composer test:unit
```

Or run just the Pest tests directly:

```
./vendor/bin/pest
```

Roadmap
-------

[](#roadmap)

- REST API for tickets, priorities, statuses, departments, types
- JSON and XML content negotiation
- Config-driven model swapping
- Soft deletes
- Custom fields
- Topics
- Email integration
- Frontend client portal
- Automated ticket routing
- SLA management
- Knowledge base
- Webhook support

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE.md).

Credits
-------

[](#credits)

- Created by [Chase C. Miller](https://crumbls.com)
- Built with [Laravel](https://laravel.com)

Support
-------

[](#support)

1. Check the [API documentation](docs/)
2. Search [existing issues](https://github.com/crumbls/helpdesk/issues)
3. Open a new issue if needed

As this is beta software, support is limited and response times may vary.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance83

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

4

Last Release

87d ago

Major Versions

0.0.1a → 1.0.02026-02-06

1.0.0 → 2.0.02026-02-06

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3020753?v=4)[Chase C. Miller](/maintainers/chasecmiller)[@chasecmiller](https://github.com/chasecmiller)

---

Top Contributors

[![chasecmiller](https://avatars.githubusercontent.com/u/3020753?v=4)](https://github.com/chasecmiller "chasecmiller (7 commits)")

---

Tags

deskhelphelpdesklaravelosticketsupportsystemlaravelSettingsCrumbls

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/crumbls-helpdesk/health.svg)

```
[![Health](https://phpackages.com/badges/crumbls-helpdesk/health.svg)](https://phpackages.com/packages/crumbls-helpdesk)
```

###  Alternatives

[laravel/nightwatch

The official Laravel Nightwatch package.

3486.1M13](/packages/laravel-nightwatch)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3691.5k](/packages/codewithdennis-larament)[kompo/kompo

Laravel &amp; Vue.js FullStack Components for Rapid Application Development

11812.4k21](/packages/kompo-kompo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
