Library / Tickets and SLA / tickets-sla-001

Round-robin ticket assignment by team/queue

Tickets and SLA Service Hub Professional Ticket Intermediate ~40 min to build

Outcome. New tickets are split into queues by pipeline or category and each queue rotates assignment evenly across its rep pool, so no ticket sits unowned.

Workflow mapEnrollment, branches and actions at a glance
flowchart TD
    A[Ticket created, queue known] --> B{Ticket queue value?}
    B -->|billing| C[Rotate to Billing pool]
    B -->|technical| D[Rotate to Technical pool]
    B -->|general| E[Rotate to General pool]
    B -->|blank / unknown| F[Notify support ops + add to Needs manual triage list]
    C --> G[Set routed date, notify new owner]
    D --> G
    E --> G

When to use it / when not to

Prerequisites

Enrollment

Steps

  1. If/then branch: Ticket queue is billing
    • Rotate record to owner: pool = Billing team rotation
    • Set property value: Ticket routed date = current date
    • Send internal email notification to: ticket owner, subject "New ticket assigned: {{ticket.subject}}"
  2. If/then branch: Ticket queue is technical
    • Same 3 actions as above, pool = Technical team rotation
  3. If/then branch: Ticket queue is general
    • Same 3 actions as above, pool = General team rotation
  4. Else branch (queue unknown or blank)
    • Send internal email notification to support ops distribution owner: "Ticket with no queue value: {{ticket.hs_object_id}}"
    • Add to static list: "Needs manual triage"

Known pitfalls

Test plan

  1. Create 3 test tickets, one per queue value, via the support form or by setting the property manually.
  2. Open workflow history (Automation > Workflows > this workflow > History tab) and confirm each ticket enrolled within a minute.
  3. Check each ticket record's timeline for the owner assignment event and confirm it matches the expected pool.
  4. Confirm the internal email notification arrived in the assigned rep's inbox.
  5. Create one ticket with Ticket queue left blank and confirm it lands in the "Needs manual triage" list with the ops notification sent.

Variants

Build spec

trigger:
  type: event-based
  event: ticket_created
  criteria:
    - ticket_queue: is_known
  reenrollment: false
  suppression_list: "VIP accounts - manual ticket assignment"
branches:
  - condition: ticket_queue == "billing"
    actions:
      - type: rotate_record_to_owner
        pool: "Billing team rotation"
      - type: set_property_value
        property: ticket_routed_date
        value: current_date
      - type: send_internal_email_notification
        to: ticket_owner
        subject: "New ticket assigned: {{ticket.subject}}"
  - condition: ticket_queue == "technical"
    actions: [same_as_above, pool: "Technical team rotation"]
  - condition: ticket_queue == "general"
    actions: [same_as_above, pool: "General team rotation"]
  - condition: else
    actions:
      - type: send_internal_email_notification
        to: support_ops_owner
        subject: "Ticket with no queue value: {{ticket.hs_object_id}}"
      - type: add_to_static_list
        list: "Needs manual triage"
This spec is one of the five free ones, complete as shown. Download all 5 free specs as PDF, Markdown and properties JSON. Paid packs add the same files for every spec in the pack, plus the custom coded actions.
Everything add-on Install this workflow in my portal Two clicks: authorise your portal, confirm. Properties created, workflow delivered switched off, ready to review. Coming to Everything and Pro buyers first.