SQL
Saas crm life sciences
Daily Usage
Daily Usage model for saas crm life sciences.
source-preserved
Blocks
daily_usage.sql · 60 lines
inferred
-- models/daily_usage.sql
{{ config(materialized='view') }}
SELECT
DATE(occurred_at) AS created_date
, email
, COUNT(events.id) AS number_of_events
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:contactProfile Screen' THEN 1 ELSE NULL END) AS viewed_entity
, COUNT(CASE WHEN events.event = 'ContactPrompt:Save' THEN 1 ELSE NULL END) AS entity_save
, COUNT(CASE WHEN events.event = 'phoneAction' THEN 1 ELSE NULL END) AS phone_action
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:taskDetail:creating Screen' THEN 1 ELSE NULL END) AS create_assignment
, COUNT(CASE WHEN events.event = 'taskMarkedCompleted' THEN 1 ELSE NULL END) AS completed_assignment
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Save' THEN 1 ELSE NULL END) AS save_opportunity
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Discard' THEN 1 ELSE NULL END) AS discard_opportunity
, COUNT(CASE WHEN events.event = 'NotePrompt:Save' THEN 1 ELSE NULL END) AS save_remark
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Save' THEN 1 ELSE NULL END) AS record_save
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Discard' THEN 1 ELSE NULL END) AS record_discard
, COUNT(CASE WHEN events.event = 'sendViaEmail' THEN 1 ELSE NULL END) AS email_action
, COUNT(CASE WHEN events.event = 'SMSAction' THEN 1 ELSE NULL END) AS text_action
, COUNT(CASE WHEN events.event = 'activityChangeDay' THEN 1 ELSE NULL END) AS changed_calendar_days
, COUNT(CASE WHEN events.event = 'toggleFavorite' THEN 1 ELSE NULL END) AS toggle_star
, COUNT(CASE WHEN events.event = 'addressAction' THEN 1 ELSE NULL END) AS map_entity
, COUNT(CASE WHEN events.event = 'viewScreen:emails Screen' THEN 1 ELSE NULL END) AS viewed_email_screen
, COUNT(CASE WHEN events.event = 'viewScreen:contactList Screen' THEN 1 ELSE NULL END) AS viewed_entitys_screen
, COUNT(CASE WHEN events.event = 'viewScreen:activities Screen' THEN 1 ELSE NULL END) AS viewed_calendar_screen
, COUNT(CASE WHEN events.event = 'viewScreen:opportunities Screen' THEN 1 ELSE NULL END) AS viewed_oppty_screen
, COUNT(DISTINCT FLOOR(UNIX_TIMESTAMP(occurred_at)/(60*2))) * 2 AS approximate_usage_in_minutes
FROM events
WHERE email NOT LIKE '%onboarding%'
GROUP BY created_date, email
ORDER BY created_date desc, number_of_events desc
# models/schema.yml
version: 2
models:
- name: daily_usage
columns:
- name: email
- name: average_minutes_per_day_tier
- name: viewed_email
- name: viewed_entitys
- name: viewed_calendar
- name: viewed_oppty
- name: called
- name: phone_action
- name: record_discard
- name: record_save
- name: completed_assignment
- name: create_assignment
- name: email_action
- name: text_action
- name: viewed_entity
- name: entity_save
- name: save_remark
- name: interacted
- name: save_opportunity
- name: discard_opportunity
- name: efficiency_action
- name: crm_action
Assumptions
- materialized='view' is the default; no persist hint found.
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
daily_usage.sql · 28 lines
source-preserved
validation: parses
SELECT
DATE(occurred_at) AS created_date
, email
, COUNT(events.id) AS number_of_events
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:contactProfile Screen' THEN 1 ELSE NULL END) AS viewed_entity
, COUNT(CASE WHEN events.event = 'ContactPrompt:Save' THEN 1 ELSE NULL END) AS entity_save
, COUNT(CASE WHEN events.event = 'phoneAction' THEN 1 ELSE NULL END) AS phone_action
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:taskDetail:creating Screen' THEN 1 ELSE NULL END) AS create_assignment
, COUNT(CASE WHEN events.event = 'taskMarkedCompleted' THEN 1 ELSE NULL END) AS completed_assignment
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Save' THEN 1 ELSE NULL END) AS save_opportunity
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Discard' THEN 1 ELSE NULL END) AS discard_opportunity
, COUNT(CASE WHEN events.event = 'NotePrompt:Save' THEN 1 ELSE NULL END) AS save_remark
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Save' THEN 1 ELSE NULL END) AS record_save
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Discard' THEN 1 ELSE NULL END) AS record_discard
, COUNT(CASE WHEN events.event = 'sendViaEmail' THEN 1 ELSE NULL END) AS email_action
, COUNT(CASE WHEN events.event = 'SMSAction' THEN 1 ELSE NULL END) AS text_action
, COUNT(CASE WHEN events.event = 'activityChangeDay' THEN 1 ELSE NULL END) AS changed_calendar_days
, COUNT(CASE WHEN events.event = 'toggleFavorite' THEN 1 ELSE NULL END) AS toggle_star
, COUNT(CASE WHEN events.event = 'addressAction' THEN 1 ELSE NULL END) AS map_entity
, COUNT(CASE WHEN events.event = 'viewScreen:emails Screen' THEN 1 ELSE NULL END) AS viewed_email_screen
, COUNT(CASE WHEN events.event = 'viewScreen:contactList Screen' THEN 1 ELSE NULL END) AS viewed_entitys_screen
, COUNT(CASE WHEN events.event = 'viewScreen:activities Screen' THEN 1 ELSE NULL END) AS viewed_calendar_screen
, COUNT(CASE WHEN events.event = 'viewScreen:opportunities Screen' THEN 1 ELSE NULL END) AS viewed_oppty_screen
, COUNT(DISTINCT FLOOR(UNIX_TIMESTAMP(occurred_at)/(60*2))) * 2 AS approximate_usage_in_minutes
FROM events
WHERE email NOT LIKE '%onboarding%'
GROUP BY created_date, email
ORDER BY created_date desc, number_of_events desc
daily_usage.view.lkml · 506 lines
inferred
view: daily_usage {
derived_table: {
sql: SELECT
DATE(occurred_at) AS created_date
, email
, COUNT(events.id) AS number_of_events
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:contactProfile Screen' THEN 1 ELSE NULL END) AS viewed_entity
, COUNT(CASE WHEN events.event = 'ContactPrompt:Save' THEN 1 ELSE NULL END) AS entity_save
, COUNT(CASE WHEN events.event = 'phoneAction' THEN 1 ELSE NULL END) AS phone_action
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:taskDetail:creating Screen' THEN 1 ELSE NULL END) AS create_assignment
, COUNT(CASE WHEN events.event = 'taskMarkedCompleted' THEN 1 ELSE NULL END) AS completed_assignment
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Save' THEN 1 ELSE NULL END) AS save_opportunity
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Discard' THEN 1 ELSE NULL END) AS discard_opportunity
, COUNT(CASE WHEN events.event = 'NotePrompt:Save' THEN 1 ELSE NULL END) AS save_remark
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Save' THEN 1 ELSE NULL END) AS record_save
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Discard' THEN 1 ELSE NULL END) AS record_discard
, COUNT(CASE WHEN events.event = 'sendViaEmail' THEN 1 ELSE NULL END) AS email_action
, COUNT(CASE WHEN events.event = 'SMSAction' THEN 1 ELSE NULL END) AS text_action
, COUNT(CASE WHEN events.event = 'activityChangeDay' THEN 1 ELSE NULL END) AS changed_calendar_days
, COUNT(CASE WHEN events.event = 'toggleFavorite' THEN 1 ELSE NULL END) AS toggle_star
, COUNT(CASE WHEN events.event = 'addressAction' THEN 1 ELSE NULL END) AS map_entity
, COUNT(CASE WHEN events.event = 'viewScreen:emails Screen' THEN 1 ELSE NULL END) AS viewed_email_screen
, COUNT(CASE WHEN events.event = 'viewScreen:contactList Screen' THEN 1 ELSE NULL END) AS viewed_entitys_screen
, COUNT(CASE WHEN events.event = 'viewScreen:activities Screen' THEN 1 ELSE NULL END) AS viewed_calendar_screen
, COUNT(CASE WHEN events.event = 'viewScreen:opportunities Screen' THEN 1 ELSE NULL END) AS viewed_oppty_screen
, COUNT(DISTINCT FLOOR(UNIX_TIMESTAMP(occurred_at)/(60*2))) * 2 AS approximate_usage_in_minutes
FROM events
WHERE email NOT LIKE '%onboarding%'
GROUP BY created_date, email
ORDER BY created_date desc, number_of_events desc ;;
}
dimension: email {
sql: ${TABLE}.email ;;
}
dimension: average_minutes_per_day_tier {
type: tier
sql: ${approximate_usage_in_minutes_avg} ;;
}
dimension: viewed_email {
type: yesno
sql: ${TABLE}.viewed_email_screen ;;
}
dimension: viewed_entitys {
type: yesno
sql: ${TABLE}.viewed_entitys_screen ;;
}
dimension: viewed_calendar {
type: yesno
sql: ${TABLE}.viewed_calendar_screen ;;
}
dimension: viewed_oppty {
type: yesno
sql: ${TABLE}.viewed_oppty_screen ;;
}
dimension: called {
type: yesno
sql: ${TABLE}.phone_action ;;
}
dimension: phone_action {
hidden: yes
sql: ${TABLE}.phone_action ;;
}
dimension: record_discard {
hidden: yes
sql: ${TABLE}.record_discard ;;
}
dimension: record_save {
hidden: yes
sql: ${TABLE}.record_save ;;
}
dimension: completed_assignment {
hidden: yes
sql: ${TABLE}.completed_assignment ;;
}
dimension: create_assignment {
hidden: yes
sql: ${TABLE}.create_assignment ;;
}
dimension: email_action {
hidden: yes
sql: ${TABLE}.email_action ;;
}
dimension: text_action {
hidden: yes
sql: ${TABLE}.text_action ;;
}
dimension: viewed_entity {
hidden: yes
sql: ${TABLE}.viewed_entity ;;
}
dimension: entity_save {
hidden: yes
sql: ${TABLE}.entity_save ;;
}
dimension: save_remark {
hidden: yes
sql: ${TABLE}.save_remark ;;
}
dimension: interacted {
hidden: yes
sql: ${phone_action} + ${text_action} + ${email_action} ;;
}
dimension: save_opportunity {
hidden: yes
sql: ${TABLE}.save_opportunity ;;
}
dimension: discard_opportunity {
hidden: yes
sql: ${TABLE}.discard_opportunity ;;
}
dimension: efficiency_action {
hidden: yes
sql: ${phone_action} + ${email_action} ;;
}
dimension: crm_action {
hidden: yes
sql: ${record_save} + ${completed_assignment} + ${save_opportunity} ;;
}
dimension_group: created {
type: time
timeframes: [date, week, month, day_of_week, year]
sql: ${TABLE}.created_date ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: distinct_user_count {
type: count_distinct
drill_fields: [detail*]
sql: ${TABLE}.email ;;
}
measure: period_days_of_usage {
type: count_distinct
sql: ${TABLE}.created_date ;;
}
measure: approximate_usage_in_minutes_total {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.approximate_usage_in_minutes ;;
}
measure: approximate_usage_in_minutes_avg {
type: avg
drill_fields: [detail*]
sql: ${TABLE}.approximate_usage_in_minutes ;;
}
measure: number_of_events_total {
type: sum
drill_fields: [detail*]
sql: ${TABLE}.number_of_events ;;
}
measure: phone_action_total {
type: sum
sql: ${TABLE}.phone_action ;;
}
measure: users_who_called_count {
type: count_distinct
filters: [phone_action: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_called_percent {
type: number
sql: 100.0 * ${users_who_called_count}/${distinct_user_count} ;;
}
measure: average_number_of_calls_per_user {
type: number
drill_fields: [users.detail*]
sql: ${phone_action_total}/${distinct_user_count} ;;
}
measure: calls_percent_of_events {
type: number
sql: 100.0 * ${phone_action_total}/${number_of_events_total} ;;
}
measure: record_discard_total {
type: sum
sql: ${TABLE}.record_discard ;;
}
measure: users_who_discarded_capture_count {
type: count_distinct
filters: [record_discard: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_discarded_capture_percent {
type: number
sql: 100.0 * ${users_who_discarded_capture_count}/${distinct_user_count} ;;
}
measure: record_save_total {
type: sum
sql: ${TABLE}.record_save ;;
}
measure: users_who_saved_capture_count {
type: count_distinct
filters: [record_save: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_saved_capture_percent {
type: number
sql: 100.0 * ${users_who_saved_capture_count}/${distinct_user_count} ;;
}
measure: average_number_of_captures_per_user {
type: number
drill_fields: [users.detail*]
sql: ${record_save_total}/${distinct_user_count} ;;
}
measure: captures_percent_of_events {
type: number
sql: 100.0 * ${record_save_total}/${number_of_events_total} ;;
}
measure: completed_assignment_total {
type: sum
sql: ${TABLE}.completed_assignment ;;
}
measure: users_who_completed_assignment_count {
type: count_distinct
filters: [completed_assignment: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_completed_assignment_percent {
type: number
sql: 100.0 * ${users_who_completed_assignment_count}/${distinct_user_count} ;;
}
measure: average_number_of_completed_assignments_per_user {
type: number
drill_fields: [users.detail*]
sql: ${completed_assignment_total}/${distinct_user_count} ;;
}
measure: complete_task_percent_of_events {
type: number
sql: 100.0 * ${completed_assignment_total}/${number_of_events_total} ;;
}
measure: create_assignment_total {
type: sum
sql: ${TABLE}.create_assignment ;;
}
measure: users_who_created_tasks_count {
type: count_distinct
filters: [create_assignment: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_created_tasks_percent {
type: number
sql: 100.0 * ${users_who_created_tasks_count}/${distinct_user_count} ;;
}
measure: email_action_total {
type: sum
sql: ${TABLE}.email_action ;;
}
measure: users_who_emailed_count {
type: count_distinct
filters: [email_action: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_emailed_percent {
type: number
sql: 100.0 * ${users_who_emailed_count}/${distinct_user_count} ;;
}
measure: text_action_total {
type: sum
sql: ${TABLE}.text_action ;;
}
measure: users_who_texted_count {
type: count_distinct
filters: [text_action: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_texted_percent {
type: number
sql: 100.0 * ${users_who_texted_count}/${distinct_user_count} ;;
}
measure: viewed_entity_total {
type: sum
sql: ${TABLE}.viewed_entity ;;
}
measure: users_who_viewed_entity_count {
type: count_distinct
filters: [viewed_entity: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_viewed_entity_percent {
type: number
sql: 100.0 * ${users_who_viewed_entity_count}/${distinct_user_count} ;;
}
measure: entity_save__total {
type: sum
sql: ${TABLE}.entity_save ;;
}
measure: users_who_saved_contacts_count {
type: count_distinct
filters: [create_assignment: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_save_contacts_percent {
type: number
sql: 100.0 * ${users_who_saved_contacts_count}/${distinct_user_count} ;;
}
measure: None {
}
measure: save_remark_total {
type: sum
sql: ${TABLE}.save_remark ;;
}
measure: users_who_saved_notes_count {
type: count_distinct
filters: [create_assignment: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_saved_notes_percent {
type: sum
sql: ${TABLE}.save_remark ;;
}
measure: interacted_total {
type: sum
sql: ${interacted} ;;
}
measure: users_who_interacted_count {
type: count_distinct
filters: [interacted: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_interacted_percent {
type: number
sql: 100.0 * ${users_who_interacted_count}/${distinct_user_count} ;;
}
measure: interacted_percent_of_events {
type: number
sql: 100.0 * ${interacted_total}/${number_of_events_total} ;;
}
measure: changed_calendar_days_total {
type: sum
sql: ${TABLE}.changed_calendar_days ;;
}
measure: changed_calendar_days_percent_of_events {
type: number
sql: 100.0 * ${changed_calendar_days_total}/${number_of_events_total} ;;
}
measure: toggle_star_total {
type: sum
sql: ${TABLE}.toggle_star ;;
}
measure: toggle_star_percent_of_events {
type: number
sql: 100.0 * ${toggle_star_total}/${number_of_events_total} ;;
}
measure: map_entity_total {
type: sum
sql: ${TABLE}.map_entity ;;
}
measure: map_entity_percent_of_events {
type: number
sql: 100.0 * ${map_entity_total}/${number_of_events_total} ;;
}
measure: save_opportunity_total {
type: sum
sql: ${TABLE}.save_opportunity ;;
}
measure: users_who_saved_oppty_count {
type: count_distinct
filters: [save_opportunity: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_saved_oppty_percent {
type: number
sql: 100.0 * ${users_who_saved_oppty_count}/${distinct_user_count} ;;
}
measure: discard_opportunity_total {
type: sum
sql: ${TABLE}.discard_opportunity ;;
}
measure: users_who_discarded_oppty_count {
type: count_distinct
filters: [discard_opportunity: "1 to"]
sql: ${TABLE}.email ;;
}
measure: active_users_who_discarded_oppty_percent {
type: number
sql: 100.0 * ${users_who_discarded_oppty_count}/${distinct_user_count} ;;
}
measure: efficiency_action_total {
type: sum
sql: ${efficiency_action} ;;
}
measure: users_who_completed_efficiency_action_count {
type: count_distinct
filters: [efficiency_action: "1 to"]
sql: ${TABLE}.email ;;
}
measure: users_who_completed_min_5_efficiency_actions_count {
type: count_distinct
filters: [efficiency_action: "5 to"]
sql: ${TABLE}.email ;;
}
measure: crm_action_total {
type: sum
sql: ${crm_action} ;;
}
measure: users_who_completed_crm_action_count {
type: count_distinct
filters: [crm_action: "1 to"]
sql: ${TABLE}.email ;;
}
measure: users_who_completed_min_5_crm_actions_count {
type: count_distinct
filters: [crm_action: "5 to"]
sql: ${TABLE}.email ;;
}
measure: users_who_completed_min_1_crm_actions_count {
type: count_distinct
filters: [crm_action: "1 to 4"]
sql: ${TABLE}.email ;;
}
measure: users_who_completed_0_crm_actions_count {
type: count_distinct
filters: [crm_action: "0"]
sql: ${TABLE}.email ;;
}
}
daily_usage.view.lookml · 357 lines
source-preserved
- view: daily_usage
derived_table:
sql: SELECT
DATE(occurred_at) AS created_date
, email
, COUNT(events.id) AS number_of_events
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:contactProfile Screen' THEN 1 ELSE NULL END) AS viewed_entity
, COUNT(CASE WHEN events.event = 'ContactPrompt:Save' THEN 1 ELSE NULL END) AS entity_save
, COUNT(CASE WHEN events.event = 'phoneAction' THEN 1 ELSE NULL END) AS phone_action
, COUNT(CASE WHEN events.event = 'Viewed viewScreen:taskDetail:creating Screen' THEN 1 ELSE NULL END) AS create_assignment
, COUNT(CASE WHEN events.event = 'taskMarkedCompleted' THEN 1 ELSE NULL END) AS completed_assignment
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Save' THEN 1 ELSE NULL END) AS save_opportunity
, COUNT(CASE WHEN events.event = 'OpportunityPrompt:Discard' THEN 1 ELSE NULL END) AS discard_opportunity
, COUNT(CASE WHEN events.event = 'NotePrompt:Save' THEN 1 ELSE NULL END) AS save_remark
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Save' THEN 1 ELSE NULL END) AS record_save
, COUNT(CASE WHEN events.event = 'LoggingPrompt:Discard' THEN 1 ELSE NULL END) AS record_discard
, COUNT(CASE WHEN events.event = 'sendViaEmail' THEN 1 ELSE NULL END) AS email_action
, COUNT(CASE WHEN events.event = 'SMSAction' THEN 1 ELSE NULL END) AS text_action
, COUNT(CASE WHEN events.event = 'activityChangeDay' THEN 1 ELSE NULL END) AS changed_calendar_days
, COUNT(CASE WHEN events.event = 'toggleFavorite' THEN 1 ELSE NULL END) AS toggle_star
, COUNT(CASE WHEN events.event = 'addressAction' THEN 1 ELSE NULL END) AS map_entity
, COUNT(CASE WHEN events.event = 'viewScreen:emails Screen' THEN 1 ELSE NULL END) AS viewed_email_screen
, COUNT(CASE WHEN events.event = 'viewScreen:contactList Screen' THEN 1 ELSE NULL END) AS viewed_entitys_screen
, COUNT(CASE WHEN events.event = 'viewScreen:activities Screen' THEN 1 ELSE NULL END) AS viewed_calendar_screen
, COUNT(CASE WHEN events.event = 'viewScreen:opportunities Screen' THEN 1 ELSE NULL END) AS viewed_oppty_screen
, COUNT(DISTINCT FLOOR(UNIX_TIMESTAMP(occurred_at)/(60*2))) * 2 AS approximate_usage_in_minutes
FROM events
WHERE email NOT LIKE '%onboarding%'
GROUP BY created_date, email
ORDER BY created_date desc, number_of_events desc
fields:
- dimension: email
sql: ${TABLE}.email
- dimension: average_minutes_per_day_tier
type: tier
sql: ${approximate_usage_in_minutes_avg}
- dimension: viewed_email
type: yesno
sql: ${TABLE}.viewed_email_screen
- dimension: viewed_entitys
type: yesno
sql: ${TABLE}.viewed_entitys_screen
- dimension: viewed_calendar
type: yesno
sql: ${TABLE}.viewed_calendar_screen
- dimension: viewed_oppty
type: yesno
sql: ${TABLE}.viewed_oppty_screen
- dimension: called
type: yesno
sql: ${TABLE}.phone_action
- dimension: phone_action
hidden: true
sql: ${TABLE}.phone_action
- dimension: record_discard
hidden: true
sql: ${TABLE}.record_discard
- dimension: record_save
hidden: true
sql: ${TABLE}.record_save
- dimension: completed_assignment
hidden: true
sql: ${TABLE}.completed_assignment
- dimension: create_assignment
hidden: true
sql: ${TABLE}.create_assignment
- dimension: email_action
hidden: true
sql: ${TABLE}.email_action
- dimension: text_action
hidden: true
sql: ${TABLE}.text_action
- dimension: viewed_entity
hidden: true
sql: ${TABLE}.viewed_entity
- dimension: entity_save
hidden: true
sql: ${TABLE}.entity_save
- dimension: save_remark
hidden: true
sql: ${TABLE}.save_remark
- dimension: interacted
hidden: true
sql: ${phone_action} + ${text_action} + ${email_action}
- dimension: save_opportunity
hidden: true
sql: ${TABLE}.save_opportunity
- dimension: discard_opportunity
hidden: true
sql: ${TABLE}.discard_opportunity
- dimension: efficiency_action
hidden: true
sql: ${phone_action} + ${email_action}
- dimension: crm_action
hidden: true
sql: ${record_save} + ${completed_assignment} + ${save_opportunity}
- dimension_group: created
type: time
timeframes:
- date
- week
- month
- day_of_week
- year
sql: ${TABLE}.created_date
- measure: count
type: count
drill_fields:
- detail*
- measure: distinct_user_count
type: count_distinct
drill_fields:
- detail*
sql: ${TABLE}.email
- measure: period_days_of_usage
type: count_distinct
sql: ${TABLE}.created_date
- measure: approximate_usage_in_minutes_total
type: sum
drill_fields:
- detail*
sql: ${TABLE}.approximate_usage_in_minutes
- measure: approximate_usage_in_minutes_avg
type: avg
drill_fields:
- detail*
sql: ${TABLE}.approximate_usage_in_minutes
- measure: number_of_events_total
type: sum
drill_fields:
- detail*
sql: ${TABLE}.number_of_events
- measure: phone_action_total
type: sum
sql: ${TABLE}.phone_action
- measure: users_who_called_count
type: count_distinct
filters:
- phone_action: 1 to
sql: ${TABLE}.email
- measure: active_users_who_called_percent
type: number
sql: 100.0 * ${users_who_called_count}/${distinct_user_count}
- measure: average_number_of_calls_per_user
type: number
drill_fields:
- users.detail*
sql: ${phone_action_total}/${distinct_user_count}
- measure: calls_percent_of_events
type: number
sql: 100.0 * ${phone_action_total}/${number_of_events_total}
- measure: record_discard_total
type: sum
sql: ${TABLE}.record_discard
- measure: users_who_discarded_capture_count
type: count_distinct
filters:
- record_discard: 1 to
sql: ${TABLE}.email
- measure: active_users_who_discarded_capture_percent
type: number
sql: 100.0 * ${users_who_discarded_capture_count}/${distinct_user_count}
- measure: record_save_total
type: sum
sql: ${TABLE}.record_save
- measure: users_who_saved_capture_count
type: count_distinct
filters:
- record_save: 1 to
sql: ${TABLE}.email
- measure: active_users_who_saved_capture_percent
type: number
sql: 100.0 * ${users_who_saved_capture_count}/${distinct_user_count}
- measure: average_number_of_captures_per_user
type: number
drill_fields:
- users.detail*
sql: ${record_save_total}/${distinct_user_count}
- measure: captures_percent_of_events
type: number
sql: 100.0 * ${record_save_total}/${number_of_events_total}
- measure: completed_assignment_total
type: sum
sql: ${TABLE}.completed_assignment
- measure: users_who_completed_assignment_count
type: count_distinct
filters:
- completed_assignment: 1 to
sql: ${TABLE}.email
- measure: active_users_who_completed_assignment_percent
type: number
sql: 100.0 * ${users_who_completed_assignment_count}/${distinct_user_count}
- measure: average_number_of_completed_assignments_per_user
type: number
drill_fields:
- users.detail*
sql: ${completed_assignment_total}/${distinct_user_count}
- measure: complete_task_percent_of_events
type: number
sql: 100.0 * ${completed_assignment_total}/${number_of_events_total}
- measure: create_assignment_total
type: sum
sql: ${TABLE}.create_assignment
- measure: users_who_created_tasks_count
type: count_distinct
filters:
- create_assignment: 1 to
sql: ${TABLE}.email
- measure: active_users_who_created_tasks_percent
type: number
sql: 100.0 * ${users_who_created_tasks_count}/${distinct_user_count}
- measure: email_action_total
type: sum
sql: ${TABLE}.email_action
- measure: users_who_emailed_count
type: count_distinct
filters:
- email_action: 1 to
sql: ${TABLE}.email
- measure: active_users_who_emailed_percent
type: number
sql: 100.0 * ${users_who_emailed_count}/${distinct_user_count}
- measure: text_action_total
type: sum
sql: ${TABLE}.text_action
- measure: users_who_texted_count
type: count_distinct
filters:
- text_action: 1 to
sql: ${TABLE}.email
- measure: active_users_who_texted_percent
type: number
sql: 100.0 * ${users_who_texted_count}/${distinct_user_count}
- measure: viewed_entity_total
type: sum
sql: ${TABLE}.viewed_entity
- measure: users_who_viewed_entity_count
type: count_distinct
filters:
- viewed_entity: 1 to
sql: ${TABLE}.email
- measure: active_users_who_viewed_entity_percent
type: number
sql: 100.0 * ${users_who_viewed_entity_count}/${distinct_user_count}
- measure: entity_save__total
type: sum
sql: ${TABLE}.entity_save
- measure: users_who_saved_contacts_count
type: count_distinct
filters:
- create_assignment: 1 to
sql: ${TABLE}.email
- measure: active_users_who_save_contacts_percent
type: number
sql: 100.0 * ${users_who_saved_contacts_count}/${distinct_user_count}
- measure: None
- measure: save_remark_total
type: sum
sql: ${TABLE}.save_remark
- measure: users_who_saved_notes_count
type: count_distinct
filters:
- create_assignment: 1 to
sql: ${TABLE}.email
- measure: active_users_who_saved_notes_percent
type: sum
sql: ${TABLE}.save_remark
- measure: interacted_total
type: sum
sql: ${interacted}
- measure: users_who_interacted_count
type: count_distinct
filters:
- interacted: 1 to
sql: ${TABLE}.email
- measure: active_users_who_interacted_percent
type: number
sql: 100.0 * ${users_who_interacted_count}/${distinct_user_count}
- measure: interacted_percent_of_events
type: number
sql: 100.0 * ${interacted_total}/${number_of_events_total}
- measure: changed_calendar_days_total
type: sum
sql: ${TABLE}.changed_calendar_days
- measure: changed_calendar_days_percent_of_events
type: number
sql: 100.0 * ${changed_calendar_days_total}/${number_of_events_total}
- measure: toggle_star_total
type: sum
sql: ${TABLE}.toggle_star
- measure: toggle_star_percent_of_events
type: number
sql: 100.0 * ${toggle_star_total}/${number_of_events_total}
- measure: map_entity_total
type: sum
sql: ${TABLE}.map_entity
- measure: map_entity_percent_of_events
type: number
sql: 100.0 * ${map_entity_total}/${number_of_events_total}
- measure: save_opportunity_total
type: sum
sql: ${TABLE}.save_opportunity
- measure: users_who_saved_oppty_count
type: count_distinct
filters:
- save_opportunity: 1 to
sql: ${TABLE}.email
- measure: active_users_who_saved_oppty_percent
type: number
sql: 100.0 * ${users_who_saved_oppty_count}/${distinct_user_count}
- measure: discard_opportunity_total
type: sum
sql: ${TABLE}.discard_opportunity
- measure: users_who_discarded_oppty_count
type: count_distinct
filters:
- discard_opportunity: 1 to
sql: ${TABLE}.email
- measure: active_users_who_discarded_oppty_percent
type: number
sql: 100.0 * ${users_who_discarded_oppty_count}/${distinct_user_count}
- measure: efficiency_action_total
type: sum
sql: ${efficiency_action}
- measure: users_who_completed_efficiency_action_count
type: count_distinct
filters:
- efficiency_action: 1 to
sql: ${TABLE}.email
- measure: users_who_completed_min_5_efficiency_actions_count
type: count_distinct
filters:
- efficiency_action: 5 to
sql: ${TABLE}.email
- measure: crm_action_total
type: sum
sql: ${crm_action}
- measure: users_who_completed_crm_action_count
type: count_distinct
filters:
- crm_action: 1 to
sql: ${TABLE}.email
- measure: users_who_completed_min_5_crm_actions_count
type: count_distinct
filters:
- crm_action: 5 to
sql: ${TABLE}.email
- measure: users_who_completed_min_1_crm_actions_count
type: count_distinct
filters:
- crm_action: 1 to 4
sql: ${TABLE}.email
- measure: users_who_completed_0_crm_actions_count
type: count_distinct
filters:
- crm_action: 0
sql: ${TABLE}.email
Contents
- daily_usage.sql
- daily_usage.sql
- daily_usage.view.lkml
- daily_usage.view.lookml