1Message arrives → Check per-user route → Check per-chat route → Check per-instance route → No agent (unrouted)
1omni routes create --instance <instance-id> --agent <agent-id>
1omni routes create --instance <instance-id> --chat <chat-id> --agent <agent-id>
1omni routes create --instance <instance-id> --person <person-id> --agent <agent-id>
1omni routes test --instance <instance-id> --chat <chat-id> --person <person-id>
1234567891011121314# List routes for an instance omni routes list --instance <instance-id> # Get route details omni routes get <route-id> # Update a route's target agent omni routes update <route-id> --agent <new-agent-id> # Delete a route omni routes delete <route-id> # View route cache metrics omni routes metrics
12345# Default: all messages go to support bot omni routes create --instance $INST --agent $SUPPORT_BOT # Override: VIP customer gets a dedicated agent omni routes create --instance $INST --person $VIP_ID --agent $VIP_AGENT
12345# WhatsApp instance → Portuguese-speaking agent omni routes create --instance $WA_INST --agent $PT_AGENT # Discord instance → English-speaking agent omni routes create --instance $DC_INST --agent $EN_AGENT
omni routes test exactly the same way the dispatcher evaluates it at runtime. Use omni routes test --instance <id> --chat <id> --person <id> before going live to confirm a route override resolves to the agent you expect.omni routes metrics to inspect cache hit rates — if they're low after a config change, the cache may be cold; if they're high but you're seeing the wrong agent, you may have a stale cache and need a process restart.