Download the PHP package opscale-co/nova-service-desk without Composer

On this page you can find all versions of the php package opscale-co/nova-service-desk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package nova-service-desk

Support us

At Opscale, we're passionate about contributing to the open-source community by providing solutions that help businesses scale efficiently. If you've found our tools helpful, here are a few ways you can show your support:

⭐ Star this repository to help others discover our work and be part of our growing community. Every star makes a difference!

πŸ’¬ Share your experience by leaving a review on Trustpilot or sharing your thoughts on social media. Your feedback helps us improve and grow!

πŸ“§ Send us feedback on what we can improve at [email protected]. We value your input to make our tools even better for everyone.

πŸ™ Get involved by actively contributing to our open-source repositories. Your participation benefits the entire community and helps push the boundaries of what's possible.

πŸ’Ό Hire us if you need custom dashboards, admin panels, internal tools or MVPs tailored to your business. With our expertise, we can help you systematize operations or enhance your existing product. Contact us at [email protected] to discuss your project needs.

Thanks for helping Opscale continue to scale! πŸš€

Description

Resolve customer requests on time, every time. Service Desk for Laravel Nova gives you a complete ticketing pipeline β€” intake forms, SLA-driven prioritization, custom workflows with stage guards and a drag-and-drop Kanban board β€” so your team stays focused on the right work and nothing falls through the cracks.

Demo

Installation

Latest Version on Packagist

Install the package in a Laravel app that uses Nova:

Publish and run the migrations:

Optionally publish the configuration file:

Register the tool in your NovaServiceProvider:

The tool's menu() method automatically adds a Service Desk sidebar section grouped into:

Configuration

config/nova-service-desk.php exposes a single resolver map keyed by template key (the first three uppercase characters of a task key):

Each resolver implements Opscale\NovaServiceDesk\Contracts\WorkflowResolver, which is the single extension point for per-template behavior:

Method Purpose
allowedTransitions(Task, WorkflowStage) Returns the stage IDs the task can move to from the given current stage
canTransitionTo(Task, WorkflowStage) Guard rule executed before applying a transition (e.g. required fields, role checks)
message() Error message surfaced when canTransitionTo() returns false
priorityScore(Task) Optional custom priority score. Return null to fall back to the default priority β†’ score mapping in CalculatePriority

The package also exposes two strategy contracts and an enum contract:

Contract Purpose
RequiresService Strategy contract β€” servedEntities(): array returns the entities apt to have tasks placed on them (Customers, Departments, devices…)
ProvidesService Strategy contract β€” servingAgents(): array returns the agents that deliver the service. AssignTask resolves this from the container to populate the assignee dropdown
CanTransition Implemented by status enums (TaskStatus) to declare allowed master-status transitions

RequiresService and ProvidesService are NOT marker interfaces meant to be inherited by Eloquent models. They are strategy interfaces with a single implementation per app. The application binds one resolver class to both contracts in the service container β€” package code (AssignTask, the Account Nova resource) then resolves the implementation via app(ProvidesService::class) / app(RequiresService::class) instead of scanning models.

Worked examples live in workbench/app/Resolvers/:

Usage

1. Bootstrap data

Configure the records that drive the service desk via Nova:

  1. Templates β€” define the intake form (fields + actions). Used to create dynamic Request resources
  2. Categories / Subcategories β€” Categorize requests; subcategories carry the default impact and urgency
  3. SLA Policies β€” One per priority. Each defines max_contact_time, max_resolution_time, supported channels, service hours and exceptions
  4. Accounts β€” Link a customer (User or any morphable model) to one or more SLA policies and categories
  5. Workflows β€” Optional. Each workflow has a unique key (matches the template key prefix), a URL slug, and a list of stages. Stages can be created inline with the workflow via the Stages repeater field

2. Create requests

Requests are created from a Template. The Template's URI key (Str::slug($label)) becomes the Nova resource β€” e.g. a "Support Tickets" template lives at /nova/resources/support-tickets.

If the template has preset categorization (account_id, category_id, subcategory_id), those fields are hidden in the form. Otherwise the user picks them at intake time.

3. Assign tasks

From a Request's detail page, click Assign Task. The action:

  1. Generates a sequential task key from the subcategory key (TEC-001-000001)
  2. Calls CalculatePriority (impact Γ— urgency matrix β†’ Critical/High/Medium/Low/Planning)
  3. Calls CalculateDueDate against the Account's SLA policy for that priority
  4. Resolves a workflow β€” first tries the explicit selection, then falls back to Workflow::resolveForTemplate($templateKey)
  5. Sets the task to the workflow's first stage (if any) and copies its maps_to_status and name
  6. Creates the task and marks the request as assigned

4. Transition tasks

The unified Change Status action handles both modes:

The action surfaces as a toolbar button on task detail pages thanks to opscale-co/nova-toolbar-actions.

5. Kanban board

Visit /nova-service-desk for the Kanban view. The URL accepts a ?workflow=<slug> query string that selects which workflow to render:

Drag-and-drop between columns calls the same ChangeStatus action under the hood, so workflow guard rules apply identically. Browser back/forward and bookmarks work because the selected workflow is part of the URL.

The Nova menu auto-generates one entry per workflow under Service Desk β†’ Task Board.

Architecture

The package follows the Opscale conventions:

Testing

The package ships three test suites:

Suite Scope
Unit (tests/Unit) Models, enums, repository helpers, transition rules β€” in-memory SQLite
Feature (tests/Feature) Opscale Action integration β€” exercises CalculatePriority, ChangeStatus, GetSubcategorySequence, GetTaskSequence end-to-end against the package migrations
Browser (tests/Browser) Dusk tests against Nova via orchestra/testbench-dusk. ConfigurationTest covers creating Category, Subcategory, SLA Policy and Workflow via the Nova UI; OperationTest covers the full operational lifecycle β€” create request from template, assign task, view task, transition stage

Browser tests require a built workbench:

The workbench seeder (workbench/database/seeders/ServiceDeskSeeder.php) populates a complete fixture set so you can also run ./vendor/bin/testbench serve for manual exploration. The workbench's WorkbenchServiceProvider registers an example WorkflowResolver for the seeded TEC template that enforces sane stage transitions.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of nova-service-desk with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
opscale-co/actions Version ^1.0
opscale-co/nova-comments Version ^1.0
opscale-co/nova-dynamic-resources Version ^1.7
opscale-co/nova-package-tools Version ^1.0
opscale-co/nova-toolbar-actions Version ^1.0
opscale-co/validations Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package opscale-co/nova-service-desk contains the following files

Loading the files please wait ...