Skip to content

mlschuh/node-freshdesk-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node Freshdesk SDK

Build Status codecov

Node wrapper for Freshdesk v2 API

NPM

Install

npm install --save freshdesk-api

Also, you could use version 1 of API, provided by Kumar Harsh @kumarharsh, but this version is obsolete, and marked as deprecated:

npm install freshdesk-api@APIv1

Usage

var Freshdesk = require('freshdesk-api')
var freshdesk = new Freshdesk('https://yourdomain.freshdesk.com', 'yourApiKey')

Or, with promises:

var Freshdesk = require('freshdesk-api')
var Promise   = require('bluebird')
var asyncFreshdesk = Promise.promisifyAll(
    new Freshdesk('https://yourdomain.freshdesk.com', 'yourApiKey')
)

// see usage examples

bluebird is not a dependency of this package, install it separately: npm install bluebird

Examples

Create a new ticket

freshdesk.createTicket({
    name: 'test ticket',
    email: 'test@test.com',
    subject: 'test sub',
    description: 'test description',
    status: 2,
    priority: 1
}, function (err, data) {
    console.log(err || data)
})

Update a ticket

freshdesk.updateTicket(21, {
    description: 'updated description',
    status: 2,
    priority: 1
}, function (err, data, extra) {
    console.log(err || data)
})

Get a ticket

freshdesk.getTicket(21, function (err, data, extra) {
    console.log(err || data)
})

Delete a ticket

freshdesk.deleteTicket(21, function (err, data, extra) {
    console.log(err || data)
})

Get a ticket PROMISIfied

* for promisified version only

asyncFreshdesk.getTicketAsync(21)
    .then((data, extra) => {
        console.log(data, extra)
    })

    .catch(Freshdesk.FreshdeskError, err => {
        // typed `catch` exists only in bluebird

        console.log('ERROR OCCURED', err)
    })
})

Callback

Every SDK method receives a callback parameter. It is a function, which will be called on Freshdesk response received.

Callback called with following arguments:

  • err - Error instance (if occured) or null
  • data - object. Freshdesk response, an object, parsed from JSON
  • extra - additional data, gathered from response. For example, information about paging

extra parameter

extra is an object with following fields:

  • pageIsLast - indicates, that the response is generated from the last page, and there is no sense to play with page and per_page parameters. This parameter is useful for listXXX methods, called with pagination

Extended/debugging output

To enable debug info, run your program with environment flags

  • on linux
    $ DEBUG=freshdesk-api nodejs NAME-OF-YOUR-SCRIPT.js

Functions and Responses

Tickets

  • createTicket(ticket, callback) - Create a new ticket, list of parameters
  • getTicket(id, callback) - Get a ticket by its id
  • updateTicket(id, ticket, callback) - Update a ticket by its id, list of parameters
  • deleteTicket(id, callback) - Delete a ticket by its id
  • restoreTicket(id, callback) - Restore a ticket by its id
  • listAllTickets(filter, callback) - List All Tickets, check list of filters
  • listAllTicketFields(callback) - List All Ticket Fields
  • listAllConversations(id, callback) - List All Conversations of a Ticket by its id
  • listAllTimeEntries(id, callback) - List All Time Entries of a Ticket by its id
  • listAllSatisfactionRatings - NOT IMPLEMENTED http://developers.freshdesk.com/api/#view_ticket_satisfaction_ratings

Conversations

  • createReply(id, reply, callback) - Create a Reply for a ticket by its id, list of parameters
  • createNote(id, note, callback) - Create a Note for a ticket by its id, list of parameters
  • updateConversation(id, conversation, callback) - Update a conversation by its id, list of parameters
  • deleteConversation(id, callback) - Delete a conversation by its id

Contacts

  • createContact(contact, callback) - Create a new contact, list of parameters
  • getContact(id, callback) - Get a contact by its id
  • updateContact(id, contact, callback) - Update a contact by its id, list of parameters
  • deleteContact(id, callback) - Delete a contact by its id
  • listAllContacts(filter, callback) - List All Contact, check list of filters
  • listAllContactFields(callback) - List All Contact Fields
  • makeAgent(id, callback) - Make a contact an Agent, read more

Agents

Not implemented: http://developers.freshdesk.com/api/#agents

Roles

Not implemented: http://developers.freshdesk.com/api/#roles

Groups

Not implemented: http://developers.freshdesk.com/api/#groups

Companies

  • createCompany(data, callback) - Create a new company record using parameters
  • getCompany(id, callback) - Get company by ID; read more
  • listAllCompanies(callback) - List all companies; parameters
  • updateCompany(id, data, callback) - Update a company by ID; parameters
  • deleteCompany(id, callback) - Delelete a company by ID, read more

Discussions

Not implemented: http://developers.freshdesk.com/api/#discussions

Solutions

Not implemented: http://developers.freshdesk.com/api/#solutions

Surveys

Not implemented: http://developers.freshdesk.com/api/#surveys

Satisfaction Ratings

Not implemented: http://developers.freshdesk.com/api/#satisfaction-ratings

Time Entries

Not implemented: http://developers.freshdesk.com/api/#time-entries

Email Configs

Not implemented: http://developers.freshdesk.com/api/#email-configs

Products

Not implemented: http://developers.freshdesk.com/api/#products

Business Hours

Not implemented: http://developers.freshdesk.com/api/#business-hours

SLA Policies

SLA = service level agreement

Not implemented: http://developers.freshdesk.com/api/#sla-policies

Settings

Not implemented: http://developers.freshdesk.com/api/#settings

Contributors

Feature Request, Bugs and Ideas can be added here.

About Author

Built with <3 by Arjun Komath (and contributors), arjunkomath@gmail.com

License

See the LICENSE file for license rights and limitations (MIT).

Packages

No packages published

Languages

  • JavaScript 100.0%