Every channel funnels into the same ticket-creation path, which resolves the contact, creates the Ticket, applies category defaults and calls routeNewTicket. Understanding it explains why routing behaves the same regardless of source.
Ingest pipeline
- 1The source (email inbound, widget escalation, portal form, phone/social integration) submits subject, body, sender and channel.
- 2Ingest matches or creates a Contact by email and links the Company.
- 3A Ticket is created with the default SupportStatus (isDefault) and the given channel.
- 4Category and SLA targets are applied.
- 5routeNewTicket picks the first matching enabled queue and assigns round-robin if configured.
- 6Notifications go to the assignee or the queue.
Channels management
- Support > Channels connects email addresses and other sources.
- Each channel sets the TicketChannel value on created tickets, which queues use for matching.
- Portal and widget submissions can specify a preferred queue.
Public widget-config endpoint
The website widget loads its look and behavior from a public per-workspace config endpoint that reads KbSettings. It never exposes internal fields.
widgetEnabled true | false
widgetColor #2C69CF
widgetPosition right | left
widgetShape rounded | circle | square
widgetGreeting text
widgetReplyTime "a few minutes"
widgetLaunchers [{ label, icon, action: chat|url|ticket, value }]
widgetTeasers [{ id, title, subtitle?, action, value? }]