Integration: Zendesk

This article will help you learn about how Daasity replicates data from Zendesk, limitations to the data we can extract and where the data is stored in the Zendesk schema.

Key Topics

Click on the links below to take you to the section where you can learn more about this Integration

Integration Availability

This integration is available for:

  • Pro (V1 and V2)

ZENDESK DATA AND DASHBOARDS:

Please note that at this time the Zendesk integration requires some additional work for setup, and some additional work to setup the customer service dashboard.

Integration Overview

The Daasity Zendesk integration allows merchants to glean broad and deep insights into Zendesk support tickets, including ticket tags and comments as well as response and resolution times. Untransformed Zendesk data gathered through the extractor is then joined together in a stand-alone model that gives merchants the ability to explore data related to tickets, users, tags, etc. That model is then used to populate the out-of-the-box Zendesk dashboard. 

This document provides context on what kind of data is being gathered through this extractor, which endpoints that data is coming from, and how the extracted tables relate to each other. 

API Endpoints

The Daasity Zendesk extractor is built based on this Zendesk API documentation.  The following endpoints are used by Daasity to replicate data from Zendesk:


Entity Relationship Diagram (ERD)

The embedded diagram houses the ERD for the Daasity Zendesk integration illustrating the different tables and keys to join across tables.  Hover over the embedded diagram to reveal controls to zoom and scroll.

Zendesk Schema

The Daasity Zendesk extractor creates these tables using the endpoints and replication methods listed.  The data is mapped from source API endpoint to the table based on the mapping logic outlined in each table.

Tickets

  • Endpoint: Tickets
  • Update Method: UPSERT
  • Table Name: zendesk.tickets
JSON Element Database Column
id id
external_id external_id
type type
subject subject
priority priority
status status
recipient recipient
requester_id requester_id
submitter_id submitter_id
assignee_id assignee_id
organization_id organization_id
due_at due_at
satisfaction_rating::score satisfaction_rating_score
via::channel via_channel
via::source::from::address via_source_address
via::source::from::formatted_phone via_source_phone
via::source::From::name via_source_name_from
via::source::from::profile_url via_source_profile_url
satisfaction_rating::comment satisfaction_rating_comment
brand_id brand_id
created_at created_at
updated_at updated_at
Daasity: unique id for the account account_id
Daasity: timestamp when loaded into DB _synced_at

Ticket Comments

  • Endpoint: Ticket Comments
  • Update Method: UPSERT
  • Table Name: zendesk.ticket_comments
JSON Element Database Column
ticket_id ticket_id
ticket_id::id ticket_comment_id
comment::type type
comment::author_id author_id
comment::plain_body::body body
comment::via::channel channel
comment::data::location voice_location
comment::data::transcription_text voice_transcription_text
comment::data::answered_by_id voice_answered_by_id
comment::via::source::rel via_source_rel
comment::via::source::from::phone via_source_from_phone
comment::via::source::from::name via_source_from_name
comment::via::source::from::address via_source_from_email_address
comment::via::source::to::phone via_source_to_phone
comment::via::source::to::name via_source_to_name
comment::via::source::to::address via_source_to_email_address
comment::metadata::system::location location
comment::metadata::system::latitude latitude
comment::metadata::system::longitude longitude
comment::metadata::system::client web_client
comment::metadata::system::ip_address web_ip_address
comment::created_at created_at
MD5(ticket_id + ':' + id) key
Daasity: unique id for the account _account_id
Daasity: timestamp when loaded into DB __synced_at

Ticket Custom Fields

  • Endpoint: Ticket Fields
  • Update Method: UPSERT
  • Table Name: zendesk.ticket_custom_fields
JSON Element Database Column
MD5(ticket_id +  ':' + id) key
ticket_id ticket_id
id id
value value
Daasity: unique id for the account account_id
Daasity: timestamp when loaded into DB _synced_at

Ticket Tags

  • Endpoint: Ticket Tags
  • Update Method: UPSERT
  • Table Name: zendesk.ticket_tags
JSON Element Database Column
MD5(ticket_id +  ':' + t)  key
ticket_id ticket_id
t tag_name
Daasity: unique id for the account account_id
Daasity: timestamp when loaded into DB _synced_at

Ticket Metrics

  • Endpoint: Tickets Metrics
  • Update Method: UPSERT
  • Table Name: zendesk.ticket_metrics
jSON Element Database Column
MD5(ticket_id +  ':' + id)  key
ticket_metric_id id
ticket_id ticket_id
reopens reopens
replies replies
assignee_updated_at assignee_updated_at
requester_updated_at requester_updated_at
status_updated_at status_updated_at
initially_assigned_at initially_assigned_at
assigned_at assigned_at
solved_at solved_at
latest_comment_added_at latest_comment_added_at
reply_time_in_minutes::calendar reply_time_in_minutes__calendar
reply_time_in_minutes::business reply_time_in_minutes__business
first_resolution_time_in_minutes::calendar first_resolution_time_in_minutes__calendar
first_resolution_time_in_minutes::business first_resolution_time_in_minutes__business
full_resolution_time_in_minutes::calendar full_resolution_time_in_minutes__calendar
full_resolution_time_in_minutes::business full_resolution_time_in_minutes__business
agent_wait_time_in_minutes::calendar agent_wait_time_in_minutes__calendar
agent_wait_time_in_minutes::business agent_wait_time_in_minutes__business
requester_wait_time_in_minutes::calendar requester_wait_time_in_minutes__calendar
requester_wait_time_in_minutes::business requester_wait_time_in_minutes__business
on_hold_time_in_minutes::calendar on_hold_time_in_minutes__calendar
on_hold_time_in_minutes::business on_hold_time_in_minutes__business
created_at created_at
updated_at updated_at
Daasity: unique id for the account  _account_id 
Daasity: timestamp when loaded into D __synced_at 

Users

  • Endpoint: Users
  • Update Method: UPSERT
  • Table Name: zendesk.users
JSON Element Database Column
id id
name name
role role
email email
phone phone
time_zone time_zone
last_login_at last_login_at
active active
created_at created_at
updated_at updated_at
Daasity: unique id for the account _account_id
Daasity: timestamp when loaded into DB __synced_at

Organizations

  • Endpoint: Organizations
  • Update Method: UPSERT
  • Table Name: zendesk.organizations
JSON Element Database Column
id id
external_id external_id
name name
created_at created_at
updated_at updated_at
Daasity: unique id for the account _account_id
Daasity: timestamp when loaded into DB __synced_at

Organization Domain Names

  • Endpoint: Organizations
  • Update Method: UPSERT
  • Table Name: zendesk.organization_domain_names
JSON Element Database Column
MD5(organization_id + ':' + subdomain) key
organization_id organization_id
domain_name domain_name
Daasity: unique id for the account _account_id
Daasity: timestamp when loaded into DB __synced_at

Brands

  • Endpoint: Brands
  • Update Method: UPSERT
  • Table Name: zendesk.brands
JSON Element Database Column
id id
name name
brand_url brand_url
active is_active
subdomain subdomain
created_at created_at
updated_at updated_at
Daasity: unique id for the account _account_id
Daasity: timestamp when loaded into DB __synced_at

 

 

Related Resources