Public demo. Data resets daily at 3:00 UTC. Don't store anything sensitive.

support-ticket-triage

v1.0 active

Inbound support ticket is categorized by a script, triaged by judgment, and routed to the right queue with assignee notification.

View instances
Owner
support-team
SLA
4h
Trigger
api
Tags
supporttriagecustomer-service

Inputs

requester_email
string · required
requester_name
string · required

Outputs

ticket_id
string
category
string
priority
string
assigned_queue
string

Steps

  1. 1

    Collect ticket details

    collect-ticket form

    Requester or agent provides subject, body, and channel of contact

    Inputs
    requester_name process.inputs.requester_name requester_email process.inputs.requester_email
    Outputs
    ticket_id (string) subject (string) body (string) channel (enum) product_area (enum)
  2. 2

    Categorize ticket

    categorize automated

    Extract category and urgency from subject and body using keyword analysis

    Inputs
    subject steps.collect-ticket.outputs.subject body steps.collect-ticket.outputs.body channel steps.collect-ticket.outputs.channel
    Outputs
    category (enum) urgency (enum) word_count (number)
    script: ./examples/steps/categorize-ticket.rb
  3. 3

    Determine priority and queue

    triage judgment

    Assess the full ticket context (category, urgency, product area, word count) and determine priority level and routing queue

    Inputs
    subject steps.collect-ticket.outputs.subject body steps.collect-ticket.outputs.body category steps.categorize.outputs.category urgency steps.categorize.outputs.urgency product_area steps.collect-ticket.outputs.product_area word_count steps.categorize.outputs.word_count
    Outputs
    priority (enum) assigned_queue (enum) triage_notes (string) suggested_response (string)
    threshold: 0.85 escalation: queue
  4. 4

    Notify assigned queue

    notify-assignee notification
    Inputs
    ticket_id steps.collect-ticket.outputs.ticket_id requester_email process.inputs.requester_email priority steps.triage.outputs.priority assigned_queue steps.triage.outputs.assigned_queue category steps.categorize.outputs.category subject steps.collect-ticket.outputs.subject
Raw definition
---
opensop: '0.1'
process:
  sla:
    target: 4h
    warning: 2h
  name: support-ticket-triage
  tags:
  - support
  - triage
  - customer-service
  owner: support-team
  steps:
  - id: collect-ticket
    name: Collect ticket details
    type: form
    inputs:
    - from: process.inputs.requester_name
      name: requester_name
    - from: process.inputs.requester_email
      name: requester_email
    outputs:
    - name: ticket_id
      type: string
    - name: subject
      type: string
    - name: body
      type: string
    - name: channel
      type: enum
      values:
      - email
      - chat
      - phone
      - api
    - name: product_area
      type: enum
      values:
      - payments
      - onboarding
      - reporting
      - integrations
      - other
    timeout: 1h
    on_timeout: escalate
    description: Requester or agent provides subject, body, and channel of contact
  - id: categorize
    run: "./examples/steps/categorize-ticket.rb"
    name: Categorize ticket
    type: automated
    retry:
      max: 2
      backoff: exponential
    inputs:
    - from: steps.collect-ticket.outputs.subject
      name: subject
    - from: steps.collect-ticket.outputs.body
      name: body
    - from: steps.collect-ticket.outputs.channel
      name: channel
    outputs:
    - name: category
      type: enum
      values:
      - billing
      - technical
      - account
      - feature_request
      - other
    - name: urgency
      type: enum
      values:
      - critical
      - high
      - normal
      - low
    - name: word_count
      type: number
    validation: lenient
    description: Extract category and urgency from subject and body using keyword
      analysis
  - id: triage
    name: Determine priority and queue
    type: judgment
    inputs:
    - from: steps.collect-ticket.outputs.subject
      name: subject
    - from: steps.collect-ticket.outputs.body
      name: body
    - from: steps.categorize.outputs.category
      name: category
    - from: steps.categorize.outputs.urgency
      name: urgency
    - from: steps.collect-ticket.outputs.product_area
      name: product_area
    - from: steps.categorize.outputs.word_count
      name: word_count
    outputs:
    - name: priority
      type: enum
      values:
      - P1
      - P2
      - P3
      - P4
    - name: assigned_queue
      type: enum
      values:
      - tier1
      - tier2
      - billing
      - escalations
      - product
    - name: triage_notes
      type: string
    - name: suggested_response
      type: string
    judgment:
      escalation: queue
      allow_agent: true
      confidence_threshold: 0.85
      require_human_review: false
    description: Assess the full ticket context (category, urgency, product area,
      word count) and determine priority level and routing queue
  - id: notify-assignee
    name: Notify assigned queue
    type: notification
    inputs:
    - from: steps.collect-ticket.outputs.ticket_id
      name: ticket_id
    - from: process.inputs.requester_email
      name: requester_email
    - from: steps.triage.outputs.priority
      name: priority
    - from: steps.triage.outputs.assigned_queue
      name: assigned_queue
    - from: steps.categorize.outputs.category
      name: category
    - from: steps.collect-ticket.outputs.subject
      name: subject
  inputs:
  - name: requester_email
    type: string
    format: email
    required: true
  - name: requester_name
    type: string
    required: true
  outputs:
  - from: steps.collect-ticket.outputs.ticket_id
    name: ticket_id
    type: string
  - from: steps.categorize.outputs.category
    name: category
    type: string
  - from: steps.triage.outputs.priority
    name: priority
    type: string
  - from: steps.triage.outputs.assigned_queue
    name: assigned_queue
    type: string
  trigger:
    type: api
  version: '1.0'
  on_error:
    notify:
      target: "#support-ops"
      channel: slack
  description: Inbound support ticket is categorized by a script, triaged by judgment,
    and routed to the right queue with assignee notification.