Customer support · use case
Route support tickets by what they are: FAQs to a small, fast model; complex or sensitive cases to a stronger one; complaints, chargebacks and 'let me speak to a person' to a human queue - one policy, every ticket traced, the cost of each on the ledger.
Free plan, no card. Self-hosting is free forever; the rules below run the same way on both.
The situation
A support desk's traffic is mostly simple and occasionally serious. One model for all of it either pays frontier prices to answer 'where is my order' or lets a small model mishandle a furious customer - and the handover to a person is a rule someone wrote into the bot, not something the router can see.
What changes
One request
Small models answer FAQs; angry or complex tickets escalate to a frontier model or a human.
The policy
This is the rules.yaml that produces the behaviour above; targets.yaml names the models, agents and people it refers to. The escalate action comes from the request itself - a complaint, a chargeback, a ticket that bounced twice.
rules:
- name: faqs-on-the-small-model
when:
domains: [customer_support]
max_complexity: 0.35
prefer: [llm-small]
weight: 0.8
- name: upset-or-complex-escalates
when:
domains: [customer_support]
actions: [escalate]
prefer: [llm-frontier, human-escalation]
pin: trueExample: Illustrative configuration or synthetic data, not a customer's.A reference configuration to start from - rules the router enforces as written, not a description of how a named customer runs it.
OpenSmartRoute is open source and the free plan keeps the full trace of every decision. Create a workspace, paste the rules, route a request.
Free plan, no card. Fifteen thousand decisions a month with the full trace.