hasfoug/freshdesk-laravel
Freshdesk Service Provider for Laravel 6+
This is a service provider for interacting with the Freshdesk API v2 via the freshdesk-php-sdk in Laravel and Lumen applications.
Installation
Run:
composer require hasfoug/freshdesk-laravel
Then add the Freshdesk facade alias in the aliases key in your config/app.php:
'aliases' => array(
// ...
'Freshdesk' => Mpclarkson\Laravel\Freshdesk\Freshdesk::class,
)
Configuration
Set these env variables:
FRESHDESK_API_KEY=
FRESHDESK_DOMAIN=
If you need to customize the config - you can publish it by running following command:
php artisan vendor:publish --provider="Mpclarkson\Laravel\Freshdesk\FreshdeskServiceProvider"
Accessing the Freshdesk API
In a controller you can access Freshdesk resource as follows:
//Contacts
$contacts = Freshdesk::contacts()->update($contactId, $data);
//Agents
$me = Freshdesk::agents()->current();
//Companies
$company = Freshdesk::companies()->create($data);
//Groups
$deleted = Freshdesk::groups()->delete($groupId);
//Tickets
$ticket = Freshdesk::tickets()->view($filters);
//Time Entries
$time = Freshdesk::timeEntries()->all($ticket['id']);
//Conversations
$ticket = Freshdesk::conversations()->note($ticketId, $data);
//Categories
$newCategory = Freshdesk::categories()->create($data);
//Forums
$forum = Freshdesk::forums()->create($categoryId, $data);
//Topics
$topics =Freshdesk::topics()->monitor($topicId, $userId);
//Comments
$comment = Freshdesk::comments()->create($forumId);
//Email Configs
$configs = Freshdesk::emailConfigs()->all();
//Products
$product = Freshdesk::products()->view($productId);
//Business Hours
$hours = Freshdesk::businessHours()->all();
//SLA Policy
$policies = Freshdesk::slaPolicies()->all();
Filtering
All GET requests accept an optional array $query parameter to filter
results. For example:
//Page 2 with 50 results per page
$page2 = Freshdesk::forums()->all(['page' => 2, 'per_page' => 50]);
//Tickets for a specific customer
$tickets = Freshdesk::tickets()->view(['company_id' => $companyId]);
Please read the Freshdesk documentation for further information on
filtering GET requests.
Contributing
This is a work in progress and PRs are welcome. Please read the contributing guide.
Author
The library was written and maintained by Matthew Clarkson from Hilenium.
References
Related Packages
Lookup for visitor's IP information, such as country, region, city, coordinates,...
This package provides jQuery and the jQuery-ujs driver for your Laravel >= 5.1 a...
