Recent searches


No recent searches

Justin Fenech's Avatar

Justin Fenech

Joined Apr 15, 2021

·

Last activity Nov 01, 2021

Following

0

Followers

0

Total activity

18

Votes

0

Subscriptions

5

ACTIVITY OVERVIEW

Latest activity by Justin Fenech

Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

Hey Kevin - have developed a similar app that works from the sidebar here: https://www.zendesk.com/apps/support/problem-tracker/

Would love some feedback.

Justin

View comment · Posted Mar 28, 2020 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

An email address?

I have released an application on the Zendesk market place called Problem Tracker. If you would like to show your support you could sign up for that temporarily. I would definitely love some feedback on the app.

View comment · Posted Oct 25, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

@Edouard - I have updated the sheet so that it will handle the custom fields. The format "custom_field_123456789" should now work.

View comment · Posted Oct 25, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

@Edouard - I'm not sure why you're getting undefined, does this happen when you use the default functions?

For custom fields I believe the format is something like "custom_field_123456789"

 

@All I have updated the Zendesk Template so that requesting problems now grabs all of them rather than just the first 100.

View comment · Posted Oct 21, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

@Edouard - You should be able to get more than 100 rows if you use the requestAll code that I provided in an earlier reply.

Regarding Authentication, make sure that the browser isn't blocking anything. I had some trouble using brave browser with the shields on. 

Custom fields can be added as you describe. Just make sure you use the correct syntax as per the Zendesk developer documentation. 

@Gareth - I completely forgot, I'm sorry. All caught up in my new job - I will try to find some time this week to get it sorted. 

View comment · Posted Oct 18, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

Hi Brett - always happy to help out when I have the time!

I just logged in and you are correct; there is no longer a trial message and the account appears to be working correctly. Thank you for taking the time to look into this for me.

Justin

View comment · Posted May 20, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

Hi Gareth,

Apologies for the delayed reply. Pagination is something I really should have worked in, but I no longer have access to a zendesk account, and I'm waiting for my Zendesk developer account to be activated. If someone from Zendesk is reading this, hint hint.

In the interim something like the following should work if you add it to the Libs/Client.gs file.
This has not been tested and I am going off memory of how the api data was structured. 
I have also tried to keep this compatible with the spreadsheetDBSave helper function by passing in the resultId and structuring the results data accordingly. 

Client_.prototype.requestAll = function (uri, resultId) {
var userProperties = this.authPropertyStore_;

if (this.authService_) {
if (this.authService_.hasAccess()) {
var url = 'https://'
.concat(userProperties.getProperty('subdomain'), '.zendesk.com/api/v2/', uri);
var results = {};
results[resultId] = [];

while(url) {
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + this.authService_.getAccessToken()
}
});
var result = JSON.parse(response.getContentText());
results[resultId].push(result[resultId]);
url = result.next_page;
}

return results;
} else {
this.zendeskAuth();
}
}
}

You should be able to call this new function like so:

var result = getClient().requestAll(params, resultId);

Hope this helps, let me know how you go.

Justin

 

View comment · Posted May 19, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech commented,

Community comment Discussion - Tips and best practices from the community

Thanks! Happy to help.

View comment · Posted Feb 11, 2019 · Justin Fenech

0

Followers

0

Votes

0

Comments


Justin Fenech created a post,

Post Discussion - Tips and best practices from the community

Hello everyone,

I have made a Google Sheet & Apps Script template to help pull and report on data that you may not be able to access using the normal Zendesk interface.

Currently it is designed to perform the following:

  1. Allow easy configuration of OAuth.
  2. Authenticate with Zendesk using OAuth.
  3. Export problem ticket information.
  4. Export current list of agents.
  5. Easily expandable with custom API endpoints with minimal code.

Future development depending on user need:

  1. More built functions to extract Zendesk data.
  2. Editing data within the sheet and submit changes back to Zendesk.


Getting the Zendesk Template spreadsheet

  1. You find the spreadsheet here:
    https://docs.google.com/spreadsheets/d/1rHv4I5l_7f_YSoyaM05zye7PTZBZoZ1XbuzLWcbB0BY
  2. Click on File > Make a Copy… and save it somewhere on your Google Drive for easy access.
  3. A Zendesk menu should appear in the top menu bar (after about 15-30 seconds on first load).
  4. If you’re feeling adventurous, click on Tools > Script editor to make sure the script is available.

Note: Make sure you are not logged in to multiple drives and are the primary/default user. Google scripts doesn’t play nice when you have multiple users logged in.


Configure and Authenticate with your Zendesk

If you have yet to authorise the script to run on your Google Drive you will need to before you connect it Zendesk.

Authorise the script

  1. Click on Zendesk > Configure.
  2. Select Continue if you receive the authorisation prompt, if you have already authorised the script, go to the next section.
  3. Choose the account in which you saved the spreadsheet.
  4. Click Allow to allow ZenKit to access your Google account.
    ZenKit is just the name of the script attached to the spreadsheet, you can view and edit all code by going to Tools > Script editor.
  5. The Settings menu should load.

Configuring your OAuth client

  1. Click on Zendesk > Configure from the spreadsheet to load the Settings menu.
  2. Type in your Zendesk subdomain (only the part before “.zendesk.com”).
  3. Enter a Unique Identifier such as: google_script_app
  4. Copy your Redirect URL and head over to your Zendesk agent interface.
  5. Go to Admin > Channels > API and select OAuth Clients.
  6. Click the little + icon to create a new client and fill out the form, entering the same Unique Identifier and Redirect URL from the spreadsheet earlier.
  7. Save your new client and copy the Secret that appears and head back to the spreadsheet.
  8. Paste the Secret token, and save.
  9. Be sure that both your Zendesk client settings and spreadsheet settings match.

Authenticating with Zendesk

Now that we have configured our app, we can now authenticate with Zendesk.

Hint: The spreadsheet will automatically prompt you for Authentication if you try and run any of the functions from within the Zendesk menu.

  1. From the Zendesk > Configure menu in the spreadsheet you should see a green Authenticate button, click it.
  2. Click Sign in on the Authenticate modal that appears. You will be redirected to your Zendesk instance to allow access using the client we previously configured.
  3. Click Allow and you will be granted access and taken back to the spreadsheet.

Hint: You can sign out by going to Zendesk > Configure > Authenticate > Sign Out


Using the spreadsheet

Now that we are all set, give it a go by selecting Zendesk > Get Problems; this will populate the Problems sheet with all of your current unsolved problem tickets and their information, including incident counts.

Hint: Be sure to empty the sheet before running the function again.


Limitations

This template is very basic and is intended to be used as a foundation for future development.

Here is a list of things that you may experience during the use of this app:

  1. Data is not cleared from the sheet before populating with new data.
  2. Renaming of sheets is not supported as this results in a new sheet being created.
  3. References may break or be inaccurate when the data in the sheets is replaced.
  4. Formatting may be removed or broken when new data is added to the sheet.


Further development

I would encourage you to take this as step further and see if you can extract your own data from the Zendesk API, with this script it is now super easy.

  1. Open Tools > Script editor to see the ZenKit source code.
  2. Look at the Code.gs file and take not of the functions getAgents() and getProblems().
  3. Copy one of the functions and change some of the variables to suit your desire.
  4. Reference the Support API documentation here: https://developer.zendesk.com/rest_api/docs/support/introduction

I would love to see what you come up with

Posted Feb 05, 2019 · Justin Fenech

0

Followers

14

Votes

21

Comments


Justin Fenech commented,

Community comment Q&A - AI and automation

Skill Based Routing will likely have this feature at some point. For now it's at least a convenient way to filter tickets.

View comment · Posted Aug 29, 2018 · Justin Fenech

0

Followers

0

Votes

0

Comments