Recent searches


No recent searches

Google Data Studio Integration



Posted Aug 13, 2019

Hi Zendesk, 

I have been creating dashboards on data studio and wanted to use the data from Zendesk as a data source to have all the information in one place. I am looking to create a dashboard with front end and back end tracking of our product and wanted to have the stats from tickets etc in there as well so it's all the same location. Integration would be awesome if this is something that can be done or on the roadmap for the future 


33

19

19 comments

Please, we need an integration -> (Insights & Explore) + Data Studio so bad!

Help us, Zendesk Team!

3


Love this idea :) 

1


+💯 Would love a native data connector between Zendesk and Google Data Studio

1


@... Any recent updates on this integration? 

1


Would love this integration. 

Currently I am utilizing Zapier to take data from Zendesk and placing it into a Google Sheet. I then pull data from GS, into GDS. 

0


Really need this integration including with support, Talk, and Chat dashboards as well. 

0


We also really need this integration so we can pull support data into one dashboard across our company - is this at all being considered or in the works?  Also, if the integration doesn't exist is there a way around this - could the APIs be used to pull data from Explore?

0


+1 for direct integration with Data Studio!

0


Massive +1 for this feature!!

0


Yes, please build this connector. I love Zendesk reporting but I can't really leverage this product right now because of the pay wall for being an agent. I don't want to pay for full agent licensing just so our LOBs and Senior leaders can see Explore and I don't want to fill out inboxes with PDFs and images.

Data Studio is deeply integrated with our environment and having this connector will allow us to put all our organizations data in one space and allow for manipulation and dynamic reporting.

Would be nice not to have to pay a third party integrator to accomplish this.

0


Hey guys,

 

Agreed, I currently use Data Studio to create dashboards, but I need to manually import a report from ZD. The issue with that is that the report is very limited to the data set, so if I want to use for example, the Ticket Updates Data set, I need a 2nd report, and therefore, a 2nd manual upload.

0


Same here, I really need a way to compare data from Zendesk - specifically in relation to data from our 4 article buckets (article type) as we have different baselines for each type. 

The ability to filter by article type (and/or label) would really help to see how each article type is performing. 

0


I agree that this would be incredibly useful to have access to this integration so all data could be viewed inside of Google Data Studio.

0


Agree this would be fantastic

0


+1 will love to have this integration

0


It's actually possible through the combined use of Google Script, the ZD API and Datastudio.

I've written a script to recover tickets from the ZD API, and put them on a Google Spreadsheet.

You can use Gscript triggers to execute your code regularly, and use your GSheet as a datasource for datastudio.

Feel free to adjust and adapt to your own custom ticket fields...

function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('ZD stats')
.addItem('Refresh tickets','zd_tickets')
.addToUi();
}


function search_array(my_array, field_id, field_value){
var r = {};
if (typeof(my_array) == "object"){
my_array.forEach(function(e,i){
if (field_id in e && e[field_id] == field_value){
r=e;
}
});
}
return r;
}

function zd_get_incremental_tickets(){
var tickets = [];
var users = [];
var groups = [];
var orgs = [];
var url = "https://XXX.zendesk.com/api/v2/incremental/tickets.json?per_page=1000&start_time=1609459200&include=users,groups,organizations,metric_sets,ticket_forms"; // Replace XXX by your company ZD subdomain
var end_of_stream = false;
while (end_of_stream == false){
var response = UrlFetchApp.fetch(url, {
"headers": {
"Authorization" : "Basic " + Utilities.base64Encode("[ADMINISTRATOR_EMAIL]/token:[PERSONAL_TOKEN]")
}
});

resp = JSON.parse(response.getContentText());
url = resp['next_page'];
end_of_stream = resp['end_of_stream'];
resp['tickets'].forEach(function(e,i){
tickets.push(e);
});
resp['users'].forEach(function(e,i){
users.push(e);
});
resp['groups'].forEach(function(e,i){
groups.push(e);
});
resp['organizations'].forEach(function(e,i){
orgs.push(e);
});
var forms = resp['ticket_forms'];
}
return [tickets, users, groups, orgs, forms];
}


function zd_tickets(){

// Clear sheet and set title
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tickets"); // Set the spreadsheet name as appropriate
if (sheet != null){
sheet.getRange("A:S").clear(); // Adjust these ranges to the columns you want to display
sheet.getRange("A1:S1").setValues([["Ticket ID", "Creation date", "Assign date", "Assign Time", "Due date", "Solve date", "Status", "Priority", "Type", "SOME_CUSTOM_FIELD1", "Requester Organization", "Group", "Assignee", "SOME_CUSTOM_FIELD2", "Subject", "SOME_CUSTOM_FIELD3", "Satisfaction Rating", "Full Resolution Time", "Ticket form"]]);
}
var row=2;

// Set variables
var incrementals = zd_get_incremental_tickets();
var tickets = incrementals[0];
var users = incrementals[1];
var groups = incrementals[2];
var orgs = incrementals[3];
var forms = incrementals[4];

// Fill Support tickets sheet
tickets.forEach(function(e,i){
if (e['status'] != "deleted"){
var assign_time = "";
if (e['metric_set']['initially_assigned_at']){
assign_time = Math.floor((new Date(e['metric_set']['initially_assigned_at']).getTime() - new Date(e['created_at']).getTime())/(60*1000));
}
var vals = [e['id'],e['created_at'], e['metric_set']['initially_assigned_at'], assign_time, e['due_at'],e['metric_set']['solved_at'],e['status'], e['priority'], e['type'], search_array(e['custom_fields'], "id", "CUSTOM_FIELD_1_ID")["value"],search_array(orgs, "id", e['organization_id'])['name'], search_array(groups, "id", e['group_id'])["name"], search_array(users, "id", e["assignee_id"])["name"], search_array(e['custom_fields'], "id", "CUSTOM_FIELD_2_ID")["value"], e['subject'], search_array(e['custom_fields'], "id", "CUSTOM_FIELD_3_ID")["value"], e["satisfaction_rating"]["score"], e['metric_set']['full_resolution_time_in_minutes']['business'], search_array(forms,"id",e['ticket_form_id'])['name']];
sheet.getRange(row,1,1,19).setValues([vals]);
row +=1;
}
});

// Create a filter
if (sheet.getFilter() !== null){
sheet.getFilter().remove();
}
sheet.getRange(1,1,row,19).activate();
sheet.getRange(1,1,row,19).createFilter();
sheet.getRange('A1').activate();
sheet.getFilter().sort(1, false);
}

1


Hola a todos.

Hay un complemento muy práctico en google sheet, se llama "data connector for zendesk" tambien se puede armar un trigger de auto refresh

Luego solo queda integrar integrar ese archivo de Google sheet a Datastudio

 

Espero les sirva!

saludos

1


You can use the Skyvia cloud data integration platform to connect Google Data Studio and Zendesk with no coding. It is freemium

Read more here

-1


image avatar

Caroline Hynes

Zendesk Product Manager

Thank you for the feedback on the connector. We do not have this planned for 2024. I see lots of good suggestions from the community for how you might be able to workaround including pulling data from the Zendesk API. If this work is prioritised in the future we will share an update. 

0


Please sign in to leave a comment.

Didn't find what you're looking for?

New post