This is a PHP 5.5+ SDK for the Freshdesk API v2.
If you have questions, please contact me or open an issue on GitHub.
require __DIR__ . '/vendor/autoload.php';
use \Freshdesk\Api;
$api = new Api("your_freshdesk_api_key", "your_freshdesk_domain");
$all = $api->tickets->all();
$some = $api->tickets->all(['page' => 2]);
$new = $api->tickets->create($data);
$updated = $api->tickets->update($data);
$api->tickets->delete($id);
$existing = $api->tickets->view($id);
//Responses are simple arrays, e.g.:
$id = $existing['id'];
$first = $all[0];
- Symfony - FreshdeskBundle
- Laravel/Lumen - Freshdesk Larvel Service Provider .
To integrate this library into your application, use Composer.
Add mpclarkson/freshdesk-php-sdk
to your composer.json file:
{
"require": {
"mpclarkson/freshdesk-php-sdk": "dev-master"
}
}
Then run:
php composer.phar install
Full documentation is available here
Creating a new API instance is very easy. All you need is your Freshdesk API key and your Freshdesk domain.
require __DIR__ . '/vendor/autoload.php';
use \Freshdesk\Api;
$api = new Api("your_freshdesk_api_key", "your_freshdesk_domain");
The available methods for each resource are available via a public property on the api, for example:
//Contacts
$contacts = $api->contacts->update($contactId, $data);
//Agents
$me = $api->agents->current();
//Companies
$company = $api->companies->create($data);
//Groups
$deleted = $api->groups->delete($groupId);
//Tickets
$ticket = $api->tickets->view($filters);
//Time Entries
$time = $api->timeEntries->all($ticket['id']);
//Conversations
$ticket = $api->conversations->note($ticketId, $data);
//Categories
$newCategory = $api->categories->create($data);
//Forums
$forum = $api->forums->create($categoryId, $data);
//Topics
$topics = $api->topics->monitor($topicId, $userId);
//Comments
$comment = $api->comments->create($forumId);
//Email Configs
$configs = $api->emailConfigs->all();
//Products
$product = $api->products->view($productId);
//Business Hours
$hours = $api->businessHours->all();
//SLA Policy
$policies = $api->slaPolicies->all();
All responses are arrays of data. Please refer to Freshdesk's documentation for further information.
All GET
requests accept an optional array $query
parameter to filter
results. For example:
//Page 2 with 50 results per page
$page2 = $this->forums->all(['page' => 2, 'per_page' => 50]);
//Tickets for a specific customer
$tickets = $this->tickets->view(['company_id' => $companyId]);
Please read the Freshdesk documentation for further information on
filtering GET
requests.
This is a work in progress and PRs are welcome. Please read the contributing guide.
Nearly all api calls are available except for the Solutions
and Surveys
,
which Freshdesk has not yet implemented.
- Solutions
- Surveys
- Uploading files is not yet supported
- More tests. You can never have enough!
- Nicer documentation
The library was written and maintained by Matthew Clarkson from Hilenium.