Skip to main content
Customer support ticket analytics for lifecycle, agent performance, and channel analysis.
  • Grain: One row per sm_ticket_key.
  • Date field: ticket_created_at_local_datetime.
  • Filters to start with: is_ticket_spam = FALSE to leave spam out; ticket_communication_channel for platform segmentation (email, instagram-direct-message, etc.).
  • Joins: dim_customers via customer_id (platform-dependent; primarily Shopify).

Query examples

Columns

Platform notes

The Gorgias and Richpanel integrations fill this table today.
  • Gorgias. Supplies ticket_assignee_team_id directly and takes ticket_assignee_team_name from the ticket, so the name is set even when the team no longer joins obt_customer_support_teams. Carries a stable customer id in source_system_customer_id.
  • Richpanel. Has one assignee field for either a user or a team, so ticket_assignee_team_id and ticket_assignee_team_name are set only when that field matches a team in obt_customer_support_teams. When it does not, both are NULL and the assignee fields carry the team instead. Its tickets carry no stable customer id, so source_system_customer_id is NULL, and no spam flag, so is_ticket_spam is always false.