1. Go to this page and download the library: Download smart-dato/desk365-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
smart-dato / desk365-sdk example snippets
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/',
);
use SmartDato\Desk365\Requests\Tickets\GetTicketsRequest;
$response = $desk365->connector()->send(new GetTicketsRequest());
$tickets = $response->json('tickets');
use SmartDato\Desk365\Requests\Tickets\GetTicketDetailsRequest;
$response = $desk365->connector()->send(
new GetTicketDetailsRequest(ticketNumber: 12345)
);
$ticket = $response->json();
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: '[email protected]',
subject: 'Help needed',
description: '<p>I need assistance with...</p>',
status: TicketStatus::Open,
priority: TicketPriority::Medium,
type: TicketType::Question,
)
)
);
use SmartDato\Desk365\Requests\Tickets\CreateTicketWithAttachmentRequest;
$response = $desk365->connector()->send(
new CreateTicketWithAttachmentRequest(
data: new CreateTicketData(
email: '[email protected]',
subject: 'Issue with screenshot',
description: 'See attached files',
status: TicketStatus::Open,
priority: TicketPriority::Low,
),
files: ['/path/to/screenshot.png', '/path/to/log.txt'],
)
);
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,
),
)
);
use SmartDato\Desk365\Enums\ConversationSortBy;
use SmartDato\Desk365\Requests\Tickets\GetTicketConversationsRequest;
$response = $desk365->connector()->send(
new GetTicketConversationsRequest(
ticketNumber: 12345,
sortBy: ConversationSortBy::LatestFirst,
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: '[email protected]',
)
);
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,
)
);
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: '[email protected]')
);
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')
);
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)
);
use SmartDato\Desk365\Requests\Surveys\GetSurveysRequest;
use SmartDato\Desk365\Requests\Surveys\GetSurveyRatingsRequest;
$response = $desk365->connector()->send(new GetSurveysRequest());
$response = $desk365->connector()->send(new GetSurveyRatingsRequest());
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)
);
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)
);