Before you start: you’ll need a support inbox connected (a form submission endpoint or an inbound email handler) and a team with defined roles.
The Flow at a Glance
Classify
AI reads the ticket and picks a category
Route
Assign to the right person or channel
Acknowledge
Confirm receipt with the customer
Step 1: Create the Workflow
1
Open Workflows
In your project, go to Workflows > New Workflow. Name it
Support Ticket Routing.2
Add a Webhook trigger
Click Add Trigger > Webhook. Wire this URL to your support form submission handler or inbound email parser. The trigger payload should include at minimum
email, subject, and body.Step 2: AI Classification
Add an AI Prompt action:category.
Step 3: Route by Category
Add a Condition block with branches for each category:1
Billing branch
- Assign ticket to
billing@yourco.com - Send Slack message to
#billing-support - Set priority based on amount mentioned
2
Technical branch
- Assign to tech lead
- Slack to
#dev-support - Include any error messages or stack traces from the body
3
Sales branch
- Assign to the next sales rep in rotation
- Slack to
#sales - Tag with company size / deal potential if detected
4
General branch
- Round-robin among the support team
- Slack to
#general-support
Step 4: Create a CRM Task or Ticket
Use an HTTP Request action to create the ticket in your support tool — Linear, Zendesk, HelpScout, Intercom, or just an internaltickets table.
Include:
- Customer email and name
- Category (from AI step)
- Priority (if detected)
- Original subject and body
- Ticket ID that customer can reference
Step 5: Acknowledge the Customer
Send an auto-reply so the customer knows their ticket was received. Customize per category:- Billing: “We’ve received your billing question. A specialist will respond within 4 business hours.”
- Technical: “Your technical request (
#{{ticket.id}}) is assigned to our engineering team. Expected response: 24 hours.” - Sales: “A sales rep will reach out within the day. Meanwhile, here’s a case study that might help.”
- General: “Thanks for reaching out. We’ll get back to you within 1 business day.”
Priority Detection
Extend the AI step to also return urgency:Language Detection
For international teams, detect language and route accordingly:Auto-Resolve Simple Tickets
Some tickets don’t need a human. Common examples:- Password reset requests → reply with self-serve link
- “How do I change my email?” → link to settings page
- Refund status inquiries → query your DB and respond with the refund state
general AND body matches known patterns, send the canned response and close the ticket without assigning.
SLA Tracking
Based on category and priority, set SLAs and monitor them:
Add a scheduled workflow that runs every hour, checks for tickets older than their SLA without a response, and pings the assignee or their manager.
Verify It Worked
1
Submit a test ticket
Use your support form or send an email to the support inbox with content like: “My credit card was charged twice this month, can you help?”
2
Confirm classification
Check the workflow run log. AI should classify it as
billing.3
Confirm routing
See the Slack message in
#billing-support. Confirm the billing team member is assigned.4
Confirm acknowledgement
Check the customer’s inbox for the auto-reply. Confirm the tone matches billing context.
Troubleshooting
AI is misclassifying tickets
AI is misclassifying tickets
Improve the prompt with few-shot examples from tickets that got routed wrong:Pull 5-10 real misrouted tickets each week and add them to the prompt.
Too many tickets landing in 'general'
Too many tickets landing in 'general'
The category list is too narrow. Add subcategories — “billing_refund”, “billing_invoice”, “technical_auth”, “technical_performance” — so AI has more precise buckets. More categories means less “general” fallback.
Auto-reply sounds robotic
Auto-reply sounds robotic
Customize messaging per category instead of using one generic template. Write each reply in a voice that matches the context — billing is calm and precise, sales is warm and quick, technical is competent and specific.
Round-robin assigning to people on vacation
Round-robin assigning to people on vacation
Integrate with your time-off calendar. Before assigning, filter the on-rotation list by
is_out_of_office = false. Or use availability-aware round-robin that respects explicit OOO status in Slack or your HR system.Urgent tickets not being paged
Urgent tickets not being paged
Check the priority detection — the JSON parsing step may be dropping malformed AI output. Add a validator that defaults to
normal if the AI returns unexpected content, and log unparsed output so you can tune the prompt.What’s Next?
Webhook Patterns
Handle inbound form and email webhooks reliably
Connect Slack
Pipe alerts and ticket notifications into Slack