Import Zendesk Data to Google Sheets

In this guide, we’ll walk through how to pull data from the Zendesk API directly into Google Sheets, using the API Connector add-on. We’ll first get an API key from Zendesk, and then set up a request to pull in user data to your spreadsheet.

CONTENTS

PART 1: GET YOUR ZENDESK API KEY

  1. While logged into your Zendesk account, click Channels > API from the main dashboard.
    zendesk-img1
  2. Tick the checkbox to agree to the terms of service, and click Get Started.
    zendesk-img2
  3. Enable the setting for Token Access, and then click the plus (+) sign to add a new token.
    zendesk-img3
  4. You will now see a token. Copy this and keep it secure as it won’t be displayed again.
    zendesk-img4
  5. One last step: Because the Zendesk API requires Basic Authentication, we need to encode our authentication info to base 64. You can do this by entering your your credentials in the format your_email_address/token:your_api_token into this form. Your encoded credentials will appear underneath.

    The encoding script runs in your browser, and none of your credentials are seen or stored by this site.

     

     

    (If you have any problems with the above, please check this post for some alternate methods of encoding your credentials).

PART 2: CREATE YOUR ZENDESK API REQUEST URL

We’ll follow the Zendesk documentation to access a list of users.

  • API root: https://YOUR_DOMAIN.zendesk.com/api/v2/
    Endpoint: /users.json

Putting it together, we get the full API Request URL:

https://mixeddemo.zendesk.com/api/v2/users.json

Just substitute in your own subdomain.

PART 3: PULL ZENDESK API DATA INTO SHEETS

We can now import Zendesk API data into Google Sheets.

  1. Open up Google Sheets and click Add-ons > API Connector > Open.
  2. In the Create screen, enter the Request URL we just created
    zendesk-img5
  3. Under Headers, enter Authorization as your Key, and Basic YOUR_BASE64_ENCODED_STRING as the value:
    AuthorizationBasic YOUR_BASE64_ENCODED_STRING

    Replace YOUR_BASE64_ENCODED_STRING with the base64-encoded string you created in part 1, step 5.
    zendesk-img7

  4. Create a new tab and click ‘Set current’ to use that tab as your data destination.
  5. Name your request and click Run. A moment later you’ll see a list of your users in your Google Sheet:zendesk-img7

PART 4: MORE EXAMPLE API URLs

You can check the documentation for the full list of available API requests,  but if you just want to jump in, you can play around with the URLs you enter in the API URL path field. Try the following (one at a time):
https://YOUR_DOMAIN.zendesk.com/api/v2/users.json
https://YOUR_DOMAIN.zendesk.com/api/v2/organizations.json
https://YOUR_DOMAIN.zendesk.com/api/v2/tickets.json
https://YOUR_DOMAIN.zendesk.com/api/v2/ticket_audits.json
https://YOUR_DOMAIN.zendesk.com/api/v2/ticket_metrics.json
https://YOUR_DOMAIN.zendesk.com/api/v2/satisfaction_ratings.json
https://YOUR_DOMAIN.zendesk.com/api/v2/search.json?query=SEARCH_QUERY
https://YOUR_DOMAIN.zendesk.com/api/v2/groups.json
https://YOUR_DOMAIN.zendesk.com/api/v2/tags.json

PART 5: HANDLE PAGINATION

Note that Zendesk limits the number of records returned in each request. By default, only 100 records will be returned unless you use the ‘page’ parameter as described in their documentation.
zendesk-img8

Each page contains 100 records. To access more than 100 records, edit the “page” parameter in your URL, like this:

page 1: https://YOUR_DOMAIN.zendesk.com/api/v2/users.json?page=1
page 2: https://YOUR_DOMAIN.zendesk.com/api/v2/users.json?page=2

With API Connector, you can either set these up as separate requests or loop through them automatically with pagination handling (paid feature), like this:
quaderno-img7

Leave a Comment