Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions analysis/zendesk/avg_hours_to_close.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
with ticket_opens_closes as
(
select
ticket_id, ticket_date, date_trunc('week', ticket_date)::date as ticket_week,
datediff(hour, ticket_date, audit_date) as hours_to_close
from {{ref("zendesk_ticket_audit_info")}}
where audit_value = 'closed'
)

-- find average time to close a ticket
select distinct ticket_week, avg(hours_to_close) avg_hours_to_close
from ticket_opens_closes
group by ticket_week
order by ticket_week
35 changes: 35 additions & 0 deletions analysis/zendesk/avg_hours_to_first_response.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
with admins_and_agents as
(
select distinct user_id
from {{ref("zendesk_users")}}
where role in ('admin', 'agent')
),

first_audit_dates as
(
select ticket_id, ticket_date, min(audit_date) as first_audit_date
from {{ref("zendesk_ticket_audit_info")}}
where
-- look at events from admins and agents only
audit_author_id in (select * from admins_and_agents)
-- look at comments only
and audit_type = 'Comment'
-- look at public audits only
and is_audit_public = 1
group by ticket_id, ticket_date
),

mins_to_reply as
(
select
ticket_id, ticket_date, date_trunc('week',ticket_date)::date as ticket_week,
datediff(mins, ticket_date, first_audit_date) mins_to_reply
from first_audit_dates
)

select ticket_week, avg(mins_to_reply)/60.0 avg_hours_to_first_responsea
from mins_to_reply
group by ticket_week
order by ticket_week asc


12 changes: 8 additions & 4 deletions dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
#settings specifically for this models directory
#config other dbt settings within ~/.dbt/profiles.yml
name: 'ac_zendesk'
version: '1.0'

source-paths: ["models"]
target-path: "target"
clean-targets: ["target"]
test-paths: ["test"]

model-defaults:
materialized: false
enabled: true
enabled: false

#models:
# zuora:
# materialized: true
models:
zendesk:
enabled: true
materialized: false
5 changes: 5 additions & 0 deletions models/zendesk/zendesk_audits.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
select
id as audit_id,
ticket_id,
created_at::datetime as audit_date
FROM zendesk_pipeline.audits
8 changes: 8 additions & 0 deletions models/zendesk/zendesk_audits_events.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
select
id as event_id,
type as audit_type,
public as is_audit_public,
author_id,
_rjm_source_key_id as audit_id,
value
from zendesk_pipeline.audits__events
9 changes: 9 additions & 0 deletions models/zendesk/zendesk_ticket_audit_info.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
select
a.ticket_id, t.ticket_date, a.audit_date,
e.audit_type, e.value as audit_value,
e.is_audit_public, e.author_id as audit_author_id
from {{ref("zendesk_audits")}} a
inner join {{ref("zendesk_audits_events")}} e
on a.audit_id = e.audit_id
inner join {{ref("zendesk_tickets")}} t
on a.ticket_id = t.ticket_id
7 changes: 7 additions & 0 deletions models/zendesk/zendesk_tickets.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
select
id as ticket_id,
status,
type,
via__channel as channel,
created_at::datetime as ticket_date
from zendesk_pipeline.tickets
6 changes: 6 additions & 0 deletions models/zendesk/zendesk_users.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
select
id as user_id,
name,
email,
role
from zendesk_pipeline.users