mpclarkson/freshdesk-laravel
Freshdesk Service Provider for Laravel 5
This is a service provider for interacting with the Freshdesk API v2 via the freshdesk-php-sdk in Laravel and Lumen applications.
Installation
To add this bundle to your app, use Composer.
Add mpclarkson/freshdesk-laravel to your composer.json file:
{
"require": {
"mpclarkson/freshdesk-laravel": "dev-master"
}
}
Then run:
composer update
You must then register the provider in your application.
Register the provider in the providers key in your config/app.php:
'providers' => array(
// ...
Mpclarkson\Laravel\Freshdesk\FreshdeskServiceProvider::class,
)
Then add the Freshdesk facade alias in the aliases key in your config/app.php:
'aliases' => array(
// ...
'Freshdesk' => Mpclarkson\Laravel\Freshdesk\FreshdeskFacade::class,
)
Configuration
To customize the configuration file, publish the package configuration using Artisan.
php artisan vendor:publish
Update the settings in the app/config/freshdesk.php file.
return [
'api_key' => 'your_freshdesk_api_key',
'domain' => 'your_freshdesk_domain',
];
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
Laravel package for the Freshdesk API (v2). Added laravel 8 support
Service provider and facade to integrate the Help Scout Mailbox API 2.0 with Lar...
