Routing & Auto-Assignment
Get tickets to the right person automatically. Instead of manually triaging every inbound email, Scitor routes tickets based on AI-detected categories and labels β so billing questions go to your finance team, bug reports go to engineering, and urgent issues go to whoever is on call.
Pro plan required. Routing requires AI analysis to detect categories.
Why routing matters
Without routing, every ticket lands in a single queue and someone has to manually assign it. With routing:
- Faster response times β the right person sees the ticket immediately
- Less context switching β team members only see tickets relevant to their expertise
- No manual triage β Scitor assigns tickets as soon as AI analysis completes
- SLA compliance β urgent tickets reach the on-call team without delay
How it works
- A customer sends an email or submits a form
- Scitor creates the Issue and runs AI analysis (sentiment, category, priority)
- Routing rules are evaluated in order against the AI labels
- The first matching rule assigns the ticket to the configured team members
Configuration
Add a routing section to your .github/scitor.yaml:
routing:
auto_assign: true
rules:
- category: billing
assignees: [alice, finance-team]
- category: bug-report
assignees: [engineering-team]
- category: account
assignees: [account-manager]
- label: "priority:urgent"
assignees: [oncall-team]
Options
| Field | Default | Description |
|---|---|---|
auto_assign |
false |
Enable automatic ticket assignment on inbound |
rules |
[] |
Routing rules, evaluated in order β first match wins |
Rule format
Each rule matches a condition and assigns to one or more GitHub users or teams:
| Field | Type | Description |
|---|---|---|
category |
string | Match the AI-detected category (e.g. billing, bug-report, question) |
label |
string | Match a label name (e.g. priority:urgent, sentiment:negative) |
assignees |
string[] | GitHub usernames or team slugs to assign. Leading @ is stripped automatically. |
A rule must have at least one of category or label, and at least one assignee. Invalid rules are silently ignored.
Matching behavior
- Rules are evaluated in order β the first matching rule wins
- A rule with both
categoryandlabelrequires both to match - Place more specific rules before general ones
routing:
auto_assign: true
rules:
# Most specific: urgent bugs go to senior engineering
- category: bug-report
label: "priority:urgent"
assignees: [senior-eng]
# All other bugs go to engineering
- category: bug-report
assignees: [engineering-team]
# All urgent tickets (any category) go to on-call
- label: "priority:urgent"
assignees: [oncall-team]
# Billing goes to finance
- category: billing
assignees: [alice, bob]
Common patterns
Route by category
Assign tickets based on what the customer is asking about:
routing:
auto_assign: true
rules:
- category: billing
assignees: [finance-team]
- category: bug-report
assignees: [engineering-team]
- category: feature-request
assignees: [product-team]
- category: account
assignees: [account-manager]
Route by priority
Ensure urgent tickets are seen immediately:
routing:
auto_assign: true
rules:
- label: "priority:urgent"
assignees: [oncall-team]
- label: "priority:high"
assignees: [senior-support]
Combine with SLA tracking
Routing and SLA work together. When a ticket is auto-assigned to the right person and has an SLA deadline, the assignee sees both the responsibility and the time pressure:
routing:
auto_assign: true
rules:
- label: "priority:urgent"
assignees: [oncall-team]
sla:
first_response:
urgent: 30m
high: 4h
Tip
Use GitHubβs notification settings to ensure assignees are notified immediately. Combine with the GitHub Actions guide for Slack or Teams alerts on assignment.