mpclarkson / freshdesk-laravel by hilenium

Laravel package for the Freshdesk API (v2)
65,422
16
3
Package Data
Maintainer Username: hilenium
Maintainer Contact: mpclarkson@gmail.com (Matthew Clarkson)
Package Create Date: 2016-04-22
Package Last Update: 2019-08-05
Language: PHP
License: MIT
Last Refreshed: 2024-11-14 15:03:46
Package Statistics
Total Downloads: 65,422
Monthly Downloads: 192
Daily Downloads: 29
Total Stars: 16
Total Watchers: 3
Total Forks: 45
Total Open Issues: 5

Freshdesk Service Provider for Laravel 5

Build Status Scrutinizer Code Quality SensioLabsInsight Packagist

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