Never Print Magazines

    @kiina/node-zendesk

    1.4.2 • Public • Published

    node-zendesk


    Join the chat at https://gitter.im/blakmatrix/node-zendesk build status

    Table of Contents

    Example

    var zendesk = require('node-zendesk');
    
    var client = zendesk.createClient({
      username:  'username',
      token:     'token',
      remoteUri: 'https://remote.zendesk.com/api/v2'
    });
    
    client.users.list(function (err, req, result) {
      if (err) {
        console.log(err);
        return;
      }
      console.log(JSON.stringify(result[0], null, 2, true));//gets the first page
    });

    Take a look in the examples folder for more examples.

    Install

    Install using npm:

    npm install node-zendesk

    Using OAuth for Authentication

    If you want to use an OAuth token to authenticate with Zendesk, pass in the oauth key with a value of true when creating the client.

    You can learn more about obtaining OAuth tokens from Zendesk's developer site.

    var zendesk = require('node-zendesk');
    
    var client = zendesk.createClient({
      username:  'username',
      token:     'oauth_token',
      remoteUri: 'https://remote.zendesk.com/api/v2',
      oauth: true
    });

    Command Line Options for scripts

    Below is a list of options you may use when calling any scripts you may have written

    -s  --subdomain X
    -u  --username X
    -p  --password X
    -t  --token X
    -r  --remoteUri X
    -hc --helpcenter
    -v  --voice
    --debug
    --no-cookies
    --timeout X(ms)
    --proxy X
    --encoding X
    

    They are fairly self-explanatory no-cookies, timeout, proxy, encoding are all options to request. if using debug its recommended you use --encoding utf8 or something similar as all you will see is a buffer otherwise in the response.

    Because of these command line options you can try a few already from the examples section:

    node examples/users-list.js -u <username> -t <token> -s <subdomain>
    node examples/check-auth.js -u <username> -p <password> -s <subdomain>
    node examples/check-auth-token.js -u <username> -t <token> -s <subdomain>
    node examples/users-list.js -u <username> -t <token> -s <subdomain>

    Disable Default scripting functionality / Enable library only

    If you rather use this library/script runner as a library only you should disable the library from reading from process.argv and process.env by enabling disableGlobalState.

    var zendesk = require('node-zendesk');
    
    var client = zendesk.createClient({
      username:  'username',
      token:     'oauth_token',
      remoteUri: 'https://remote.zendesk.com/api/v2',
      disableGlobalState: true,
      debug: true // if you want to debug in library only mode, you'll have to include this
    });

    Side-Loading

    For the endpoints that support side-loading, you can specify which other objects to bring in by setting the sideLoad variable to an array of object names:

    client.tickets.sideLoad = ['users', 'organizations', 'metric_sets'];
    client.users.sideLoad = ['organizations', 'roles'];

    For a full list of endpoints that support side-loading, see Zendesk's developer site

    Impersonation

    See Making API requests on behalf of end users to grant impersonate scope. Pass end-user's email when creating client.

    var zendesk = require('node-zendesk');
    
    var client = zendesk.createClient({
      username:  'username',
      token:     'oauth_token',
      remoteUri: 'https://remote.zendesk.com/api/v2',
      oauth: true,
      asUser: 'end-user@example.com'
    });

    client

    request(method, uri)
    requestAll(method, uri) //pulls back multiple pages
    requestUpload(uri, file, fileToken, callback)

    Pagination

    When using the requestAll method, the client automatically pages-through results, accumulating all responses before returning them to the cb method. To monitor pagination, the cb parameter can also be an observer – see this example.

    Core API Methods

    (See: https://developer.zendesk.com/rest_api/docs/core/introduction)

    accountsettings

    show(cb)

    activitystream

    show(activityID, cb)
    list(cb)

    attachments

    upload(file, fileOptions, cb)
    deleteUpload(token, cb)
    show(attachmentID, cb)
    delete(attachmentID, cb)
    redactAttachmentComment(ticketID, commentID, attachmentID, cb)
    
    fileOptions = {filename: 'file.txt', token: 'P1c4rDRuLz'}
    // token is [optional]

    dynamiccontent

    https://developer.zendesk.com/rest_api/docs/core/dynamic_content

    listItems(cb)
    listAllItems(cb)
    showItem(itemID, cb)
    createItem(item, cb)
    updateItem(itemID, item, cb)
    deleteItem(itemID, cb)
    listVariants(itemID, cb)
    listAllVariants(itemID, cb)
    showVariant((itemID, variantID, cb)
    createVariant(itemID, variant, cb)
    updateVariant(itemID, variantID, variant, cb)
    deleteVariant(itemID, variantID, cb)

    categories

    list(cb)
    show(categoryID, cb)
    create(category, cb)
    update(categoryID, category, cb)
    delete(categoryID, cb)

    customagentroles

    list(cb)

    forums

    list(cb)
    listByCategory(categoryID, cb)
    show(forumID, cb)
    create(forum, cb)
    update(forumID, forum, cb)
    delete(forumID, cb)

    forumsubscriptions

    list(cb)
    listByForum(forumID, cb)
    show(forumSubscriptionID, cb)
    create(forumSubscription, cb)
    delete(forumSubscriptionID, cb)

    groupmemberships

    list(cb)
    listByUser(userID, cb)
    listByGroup(groupID, cb)
    show(groupMembershipID, cb)
    showByUser(userID, groupMembershipID, cb)
    create(groupMembership, cb)
    createByUser(userID, groupMembership, cb)
    delete(groupMembershipID, cb)
    deleteByUser(userID, groupMembershipID, cb)
    makeDefault(userID, groupMembershipID, cb)

    groups

    list(cb)
    assignable(cb)
    show(groupID, cb)
    create(group, cb)
    update(groupID, group, cb)
    delete(groupID, cb)

    jobstatuses

    show(jobStatusID, cb)
    watch(jobStatusID, interval, maxAttempts, cb)

    locales

    list(cb)
    show(localeID, cb)
    showCurrent(cb)
    current(cb)

    macros

    list(cb)
    listByParams(params, cb)
    apply(macroID, cb)
    applyTicket(ticketID, macroID, cb)
    create(macro, cb)
    categories(cb)
    update(macroID, macro, cb)
    createMany(users, cb)

    oauthtokens

    list(cb)
    show(id, cb)
    current(cb)
    revoke(id, cb)

    organizations

    list(cb)
    show(organizationID, cb)
    create(organization, cb)
    update(organizationID, organization, cb)
    upsert(organizationID, organization, cb)
    delete(organizationID, cb)
    incrementalInclude(startTime, includes, cb)        // New Export API supporing includes
    incremental(startTime, cb)        // New Export API
    incrementalSample(startTime, cb)  // New Export API Sample

    organizationfields

    list(cb)
    show(organizationFieldID, cb)
    create(organizationField, cb)
    update(organizationFieldID, organizationField, cb)
    delete(organizationFieldID, cb)

    (SLA) policies

    list(cb)
    show(policyID, cb)
    create(policy, cb)
    update(policyID, policy, cb)
    delete(policyID, cb)

    requests

    list(cb)
    listOpen(cb)
    listSolved(cb)
    listCCD(cb)
    listByUser(userID, cb)
    listByOrganization(orgID, cb)
    getRequest(requestID, cb)
    create(request, cb)
    update(requestID, request, cb)
    listComments(requestID, cb)
    getComment(requestID, commentID, cb)

    satisfactionratings

    list(cb)
    received(cb)
    show(satisfactionRatingID, cb)

    search

    query(searchTerm, cb)
    queryAll(searchTerm, cb)
    queryAnonymous (searchTerm, cb)
    queryAnonymousAll (searchTerm, cb)

    sessions

    get(cb)
    getByUserId(userId, cb)
    getByUserIdBySessionId(userId, sessionId, cb)
    getMyAuthenticatedSession(cb)
    deleteByUserIdBySessionId(userId, sessionId, cb)
    bulkDeleteByUserId(userId, cb)
    logMeOut(cb)

    suspendedtickets

    list(cb)
    show(suspendedTicketID, cb)
    recover(suspendedTicketID, cb)
    recoverMany(suspendedTicketIDs, cb)
    delete(suspendedTicketID, cb)
    destroyMany(suspendedTicketIDs, cb)
    deleteMany(suspendedTicketIDs, cb)

    tags

    list(cb)

    ticketaudits

    list(ticketID, cb)

    ticketevents

    incrementalInclude(startTime, includes, cb)        // New Export API supporing includes
    incremental(startTime, cb)
    incrementalSample(startTime, cb)

    ticketforms

    list(cb)
    show(ticketFormID, cb)

    ticketfields

    list(cb)
    show(ticketFieldID, cb)
    create(ticketField, cb)
    update(ticketFieldID, ticketField, cb)
    delete(ticketFieldID, cb)

    ticketmetrics

    list(ticketId, cb)
    listAll(cb)
    show(ticketMetricId, cb)

    tickets

    list(cb)
    listAssigned(userID, cb)
    listByOrganization(orgID, cb)
    listByUserRequested(userID, cb)
    listByUserCCD(userID, cb)    // email cc
    listRecent(cb)
    listCollaborators(ticketID, cb)
    listIncidents(ticketID, cb)
    listMetrics(ticketID, cb)
    show(ticketID, cb)
    showMany(ticket_ids, cb)
    create(ticket, cb)
    createMany(tickets, cb)
    update(ticketID, ticket, cb)
    merge(ticketID, mergedTicket, cb)
    updateMany(ticket_ids, ticket, cb)
    deleteMany(ticket_ids, cb)
    delete(ticketID, cb)
    export(startTime, cb)        //1000 per page export
    exportSample(startTime, cb)  //Ticket Export Sample (max 50 tickets per request)
    exportAudit(ticketID, cb)    //Listing Audits
    getComments(ticketID, cb)
    incrementalInclude(startTime, includes, cb)        // New Export API supporing includes
    incremental(startTime, cb)        // New Export API
    incrementalSample(startTime, cb)  // New Export API Sample

    ticketexports

    export(start_time, cb)
    exportWithUser(start_time, cb)
    exportAudit(ticketID, cb)

    ticketimport

    import(ticket, cb)
    exportAudit(ticketID, cb)

    topiccomments

    list(topicID, cb)
    listByUser(userID, cb)
    show(topicID, commentID, cb)
    showByUser(userID, commentID, cb)
    create(topicID, comment, cb)
    update(topicID, commentID, comment, cb)
    delete(topicID, commentID, cb)

    topics

    list(cb)
    listByForum(forumID, cb)
    listByUser(userID, cb)
    show(topicID, cb)
    showMany(topicIDs, cb)
    create(topic, cb)
    update(topicID, topic, cb)
    delete(topicID, cb)

    topicsubscriptions

    list(cb)
    listByTopic(topicID, cb)
    show(topicSubscriptionsID, cb)
    create(topicSubscription, cb)
    delete(topicSubscriptionsID, cb)

    topicvotes

    list(topicID, cb)
    listByUser(userID, cb)
    show(topicID, cb)
    create(topicID, vote, cb)
    delete(topicID, cb)

    triggers

    list(cb)
    listActive(triggerID, cb)
    show(triggerID, cb)
    create(trigger, cb)
    update(triggerID, trigger, cb)
    delete(triggerID, cb)
    reorder(triggerIDs, cb) //  triggerIDs is Array

    useridentities

    list(userID, cb)
    show(userID, userIDentityID, cb)
    create(userID, userIDentity, cb)
    update(userID, userIDentityID, cb)
    makePrimary(userID, userIDentityID,  cb)
    verify(userID, userIDentityID, cb)
    requestVerification(userID, userIDentityID, cb)
    delete(userID, userIDentityID, cb)

    users

    auth(cb) //also me()
    list(cb)
    listByGroup(id, cb)
    listByOrganization(id, cb)
    show(id, cb)
    showMany( userids, cb )
    create(user, cb)
    createMany(users, cb)
    update(id, user, cb)
    updateMany(/*Optional*/ids, users, cb)
    createOrUpdate(user, cb)
    createOrUpdateMany(users, cb)
    suspend(id, cb)
    unsuspend(id, cb)
    delete(id, cb)
    search(params, cb)
    me(cb)
    merge(id, targetId, cb)
    incrementalInclude(startTime, includes, cb)        // New Export API supporing includes
    incremental(startTime, cb)        // New Export API
    incrementalSample(startTime, cb)  // New Export API Sample

    userfields

    list(cb)
    show(userFieldID, cb)
    create(userField, cb)
    update(userFieldID, userField, cb)
    delete(userFieldID, cb)

    views

    list(cb)
    listActive(cb)
    listCompact(cb)
    show(viewID, cb)
    create(view, cb)
    update(viewID, viewData, cb)
    execute(viewID, params, cb)
    tickets(viewID, cb)
    preview(params, cb)
    showCount(viewID, cb)
    showCounts(viewIDs, cb)
    export(viewID, cb)

    Help Center API Methods

    (See: https://developer.zendesk.com/rest_api/docs/help_center/introduction) To enable help center client, use -hc or --helpcenter parameter.

    accesspolicies

    show(sectionID, cb)
    update(sectionID, accessPolicy, cb)

    articleattachments

    list(articleID, cb)
    listInline(articleID, cb)
    listBlock(articleID, cb)
    show(attachmentID, cb)
    delete(attachmentID, cb)

    articlecomments

    listByUser(userID, cb)
    listByArticle(articleID, cb)
    show(articleID, commentID, cb)
    create(articleID, comment, cb)
    update(articleID, commentID, comment, cb)
    delete(articleID, commentID, cb)

    articlelabels

    list(cb)
    listByArticle(articleID, cb)
    show(labelID, cb)
    create(articleID, label, cb)
    delete(articleID, labelID, cb)

    articles

    list(cb)
    listByLocale(locale,cb)
    listBySection(sectionID,cb)
    listByCategory(categoryID,cb)
    listByUser(userID,cb)
    listSinceStartTime(startTime,cb)
    listByLabelNames(labelNames,cb)
    show(articleID, cb)
    showWithLocale(locale, articleID, cb)
    create(sectionID, article, cb)
    createWithLocale(locale, sectionID, article, cb)
    update(articleID, article, cb)
    updateByLocale(locale, articleID, article, cb)
    associateAttachmentsInBulk(articleID, attachmentIDsInBulk, cb)
    delete(articleID, cb)

    categories

    list(cb)
    listWithLocale(locale, cb)
    show(categoryID, cb)
    create(category, cb)
    update(categoryID, category, cb)
    delete(categoryID, cb)

    search

    searchArticles(searchString, cb)
    searchArticlesInLocale(searchString, locale, cb)
    searchArticlesByLabels(labelNames, cb)
    searchQuestions(searchString, cb)

    sections

    list(cb)
    listByCategory(categoryID, cb)
    show(sectionID, cb)
    create(section, cb)
    update(sectionID, section, cb)
    delete(sectionID, cb)

    subscriptions

    listByUser(userID, cb)
    listByArticle(articleID, cb)
    listBySection(sectionID, cb)
    showbyArticle(articleID, subscriptionID, cb)
    showbySection(sectionID, subscriptionID, cb)
    createbyArticle(articleID, subscription, cb)
    createbySection(sectionID, subscription, cb)
    deletebyArticle(articleID, subscriptionID, cb)
    deletebySection(sectionID, subscriptionID, cb)

    translations

    show(articleID, locale, cb)
    listByArticle(articleID, filterParams, cb)
    listBySection(sectionID, cb)
    listByCategory(categoryID, cb)
    listMissingLocalesByArticle(articleID, cb)
    listMissingLocalesBySection(sectionID, cb)
    listMissingLocalesByCategory(categoryID, cb)
    createForArticle(articleID, translation, cb)
    createForSection(sectionID, translation, cb)
    createForCategory(categoryID, translation, cb)
    updateForArticle(articleID, locale, translation, cb)
    updateForSection(sectionID, locale, translation, cb)
    delete(translationID, cb)

    votes

    listByUser(userID, cb)
    listByArticle(articleID, cb)
    show(voteID, cb)
    createUpVoteForArticle(articleID, cb)
    createDownVoteForArticle(articleID, cb)
    createUpVoteForQuestion(questionID, cb)
    createDownVoteForQuestion(questionID, cb)
    createUpVoteForAnswer(answerID, cb)
    createDownVoteForAnswer(answerID, cb)
    delete(voteID, cb)

    Voice API Methods

    (See: https://developer.zendesk.com/rest_api/docs/voice-api/voice) To enable help center client, use -v or --voice parameter.

    agentactivities

    show(cb)

    availabilities

    update(agentID, cb)
    show(agentID, cb)

    currentqueue

    show(cb)

    greetingcategories

    list(cb)
    show(greetingCategoryID, cb)

    greetings

    list(cb)
    show(greetingID, cb)
    create(greetingID, cb)
    update(greetingID, cb)
    delete(greetingID, cb)

    historicalqueue

    show(cb)

    phonenumbers

    search(searchTerm, cb)
    update(phoneID, cb)
    list(cb)
    create(cb)
    update(phoneID, phone_number, cb)
    delete(phoneID, cb)

    Contributions

    If you're looking to contribute, please refer to the API Coverage Document, open an issue, or make a PR!

    Tests and examples are also welcome.

    Zendesk's documentation can be found here.

    License

    MIT.

    Install

    npm i @kiina/node-zendesk

    DownloadsWeekly Downloads

    0

    Version

    1.4.2

    License

    none

    Unpacked Size

    147 kB

    Total Files

    74

    Last publish

    Collaborators

    • asalgado
    • eder_kiina
    • antunesmg
    • marcojardim