PHPackages                             smart-dato/desk365-sdk - 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. [API Development](/categories/api)
4. /
5. smart-dato/desk365-sdk

ActiveLibrary[API Development](/categories/api)

smart-dato/desk365-sdk
======================

Desk365 Laravel SDK - A Laravel package to interact with the Desk365 API.

0.0.9(3w ago)01.1k↓90.5%[2 PRs](https://github.com/smart-dato/desk365-sdk/pulls)MITPHPPHP ^8.4CI passing

Since Nov 24Pushed 1w agoCompare

[ Source](https://github.com/smart-dato/desk365-sdk)[ Packagist](https://packagist.org/packages/smart-dato/desk365-sdk)[ Docs](https://github.com/smart-dato/desk365-sdk)[ GitHub Sponsors](https://github.com/SmartDato)[ RSS](/packages/smart-dato-desk365-sdk/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (9)Dependencies (45)Versions (15)Used By (0)

Desk365 SDK for Laravel
=======================

[](#desk365-sdk-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e446e80b0d2f3ead63bfc0b3f42ec9aacb0e0b4a2753fb35ff8d445deb06db7b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736d6172742d6461746f2f6465736b3336352d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/smart-dato/desk365-sdk)[![GitHub Tests Action Status](https://camo.githubusercontent.com/a0f825d0c2c78d6e438806f52796ca1932fc9e2b62c1076cb4509937da0eb0eb/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f736d6172742d6461746f2f6465736b3336352d73646b2f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/smart-dato/desk365-sdk/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/ae9fba1fdd2f6d28197717978f7351bba72dcaf22d8635a7109864924197602e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f736d6172742d6461746f2f6465736b3336352d73646b2f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/smart-dato/desk365-sdk/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/fc7433583436dc0447d2f68f8f20c46cb1cd1f9d9ced14a48d04838b6eddd48c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736d6172742d6461746f2f6465736b3336352d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/smart-dato/desk365-sdk)

A Laravel SDK for the [Desk365](https://www.desk365.io/) helpdesk API. Built with [Saloon](https://docs.saloon.dev/).

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

[](#installation)

You can install the package via composer:

```
composer require smart-dato/desk365-sdk
```

Publish the config file:

```
php artisan vendor:publish --tag="desk365-sdk-config"
```

Add your Desk365 credentials to your `.env` file:

```
DESK365_API_KEY=your-api-key
DESK365_BASE_URL=https://yourcompany.desk365.io/apis/
```

Usage
-----

[](#usage)

### Basic Setup

[](#basic-setup)

```
use SmartDato\Desk365\Desk365;
use SmartDato\Desk365\Facades\Desk365 as Desk365Facade;

// Using the facade
Desk365Facade::connector()->send(new GetTicketsRequest());

// Or resolve from container
$desk365 = app(Desk365::class);
$desk365->connector()->send(new GetTicketsRequest());

// Or instantiate directly (useful for testing or multiple instances)
$desk365 = new Desk365(
    apiKey: 'your-api-key',
    baseUrl: 'https://yourcompany.desk365.io/apis/',
);
```

### Tickets

[](#tickets)

#### List Tickets

[](#list-tickets)

```
use SmartDato\Desk365\Requests\Tickets\GetTicketsRequest;

$response = $desk365->connector()->send(new GetTicketsRequest());
$tickets = $response->json('tickets');
```

#### Get Ticket Details

[](#get-ticket-details)

```
use SmartDato\Desk365\Requests\Tickets\GetTicketDetailsRequest;

$response = $desk365->connector()->send(
    new GetTicketDetailsRequest(ticketNumber: 12345)
);
$ticket = $response->json();
```

#### Create Ticket

[](#create-ticket)

```
use SmartDato\Desk365\Data\Tickets\CreateTicketData;
use SmartDato\Desk365\Enums\Ticket\TicketPriority;
use SmartDato\Desk365\Enums\Ticket\TicketStatus;
use SmartDato\Desk365\Enums\Ticket\TicketType;
use SmartDato\Desk365\Requests\Tickets\CreateTicketRequest;

$response = $desk365->connector()->send(
    new CreateTicketRequest(
        new CreateTicketData(
            email: 'customer@example.com',
            subject: 'Help needed',
            description: 'I need assistance with...',
            status: TicketStatus::Open,
            priority: TicketPriority::Medium,
            type: TicketType::Question,
        )
    )
);
```

#### Create Ticket with Attachments

[](#create-ticket-with-attachments)

```
use SmartDato\Desk365\Requests\Tickets\CreateTicketWithAttachmentRequest;

$response = $desk365->connector()->send(
    new CreateTicketWithAttachmentRequest(
        data: new CreateTicketData(
            email: 'customer@example.com',
            subject: 'Issue with screenshot',
            description: 'See attached files',
            status: TicketStatus::Open,
            priority: TicketPriority::Low,
        ),
        files: ['/path/to/screenshot.png', '/path/to/log.txt'],
    )
);
```

#### Update Ticket

[](#update-ticket)

```
use SmartDato\Desk365\Data\Tickets\UpdateTicketData;
use SmartDato\Desk365\Requests\Tickets\UpdateTicketRequest;

$response = $desk365->connector()->send(
    new UpdateTicketRequest(
        ticketNumber: 12345,
        data: new UpdateTicketData(
            status: TicketStatus::Resolved,
            priority: TicketPriority::Low,
        ),
    )
);
```

#### Get Ticket Conversations

[](#get-ticket-conversations)

```
use SmartDato\Desk365\Enums\ConversationSortBy;
use SmartDato\Desk365\Requests\Tickets\GetTicketConversationsRequest;

$response = $desk365->connector()->send(
    new GetTicketConversationsRequest(
        ticketNumber: 12345,
        sortBy: ConversationSortBy::LatestFirst,
        includePrivateNotes: false,
    )
);
```

#### Add Reply

[](#add-reply)

```
use SmartDato\Desk365\Requests\Tickets\AddReplyRequest;

$response = $desk365->connector()->send(
    new AddReplyRequest(
        ticketNumber: 12345,
        replyBody: 'Thank you for contacting us. We are looking into this.',
        agentEmail: 'agent@company.com',
    )
);
```

#### Add Note

[](#add-note)

```
use SmartDato\Desk365\Enums\Ticket\TicketVisibility;
use SmartDato\Desk365\Requests\Tickets\AddNoteRequest;

$response = $desk365->connector()->send(
    new AddNoteRequest(
        ticketNumber: 12345,
        noteBody: 'Internal note: Customer called about this issue.',
        visibility: TicketVisibility::Private,
    )
);
```

### Contacts

[](#contacts)

```
use SmartDato\Desk365\Requests\Contacts\GetContactsRequest;
use SmartDato\Desk365\Requests\Contacts\GetContactDetailsRequest;

// List all contacts
$response = $desk365->connector()->send(new GetContactsRequest());

// Get contact details
$response = $desk365->connector()->send(
    new GetContactDetailsRequest(email: 'customer@example.com')
);
```

### Companies

[](#companies)

```
use SmartDato\Desk365\Requests\Companies\GetCompaniesRequest;
use SmartDato\Desk365\Requests\Companies\GetCompanyDetailsRequest;

// List all companies
$response = $desk365->connector()->send(new GetCompaniesRequest());

// Get company details
$response = $desk365->connector()->send(
    new GetCompanyDetailsRequest(name: 'Acme Corp')
);
```

### Knowledge Base

[](#knowledge-base)

```
use SmartDato\Desk365\Requests\KnowledgeBase\Articles\GetArticlesRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Articles\GetArticleDetailsRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Categories\GetCategoryDetailsRequest;
use SmartDato\Desk365\Requests\KnowledgeBase\Folders\GetFolderDetailsRequest;

// List all articles
$response = $desk365->connector()->send(new GetArticlesRequest());

// Get article details
$response = $desk365->connector()->send(
    new GetArticleDetailsRequest(articleId: 123)
);
```

### Surveys

[](#surveys)

```
use SmartDato\Desk365\Requests\Surveys\GetSurveysRequest;
use SmartDato\Desk365\Requests\Surveys\GetSurveyRatingsRequest;

$response = $desk365->connector()->send(new GetSurveysRequest());
$response = $desk365->connector()->send(new GetSurveyRatingsRequest());
```

### Time Entries

[](#time-entries)

```
use SmartDato\Desk365\Requests\TimeEntries\GetTimeEntriesRequest;
use SmartDato\Desk365\Requests\TimeEntries\GetTimeEntryDetailsRequest;

$response = $desk365->connector()->send(new GetTimeEntriesRequest());
$response = $desk365->connector()->send(
    new GetTimeEntryDetailsRequest(timeEntryId: 456)
);
```

### Contracts

[](#contracts)

```
use SmartDato\Desk365\Requests\Contracts\GetContractsRequest;
use SmartDato\Desk365\Requests\Contracts\GetContractDetailsRequest;

$response = $desk365->connector()->send(new GetContractsRequest());
$response = $desk365->connector()->send(
    new GetContractDetailsRequest(contractId: 789)
);
```

Enums
-----

[](#enums)

The SDK provides enums for type-safe values:

### TicketPriority

[](#ticketpriority)

- `TicketPriority::Low` (1)
- `TicketPriority::Medium` (5)
- `TicketPriority::High` (10)
- `TicketPriority::Urgent` (20)

### TicketSource

[](#ticketsource)

- `TicketSource::Email` (1)
- `TicketSource::MicrosoftTeams` (5)
- `TicketSource::SupportPortal` (6)
- `TicketSource::PhoneOrOther` (7)
- `TicketSource::WebForm` (12)
- `TicketSource::WebWidget` (13)
- `TicketSource::API` (15)

### TicketType

[](#tickettype)

- `TicketType::Question`
- `TicketType::Incident`
- `TicketType::Problem`
- `TicketType::Request`

### ConversationSortBy

[](#conversationsortby)

- `ConversationSortBy::EarliestFirst`
- `ConversationSortBy::LatestFirst`

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [SmartDato](https://github.com/smart-dato)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance97

Actively maintained with recent releases

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~24 days

Recently: every ~37 days

Total

9

Last Release

24d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c3006db55caec62526937fa2d941da32fc5e69e2ca86a52e87c8046da5958d82?d=identicon)[smart-dato](/maintainers/smart-dato)

---

Top Contributors

[![michael-tscholl](https://avatars.githubusercontent.com/u/178569346?v=4)](https://github.com/michael-tscholl "michael-tscholl (13 commits)")[![tschigo](https://avatars.githubusercontent.com/u/344100?v=4)](https://github.com/tschigo "tschigo (8 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")[![Xsaven](https://avatars.githubusercontent.com/u/1726771?v=4)](https://github.com/Xsaven "Xsaven (1 commits)")

---

Tags

laravelSmartDatodesk365-sdk

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/smart-dato-desk365-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/smart-dato-desk365-sdk/health.svg)](https://phpackages.com/packages/smart-dato-desk365-sdk)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.1k11.2M100](/packages/dedoc-scramble)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

816333.8k3](/packages/defstudio-telegraph)[codebar-ag/laravel-docuware

DocuWare integration with Laravel

1123.7k](/packages/codebar-ag-laravel-docuware)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5021.9k](/packages/simplestats-io-laravel-client)[lettermint/lettermint-laravel

Official Lettermint driver for Laravel

1190.2k1](/packages/lettermint-lettermint-laravel)

PHPackages © 2026

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