XenChats is the product's new name: the site, the app, the widget (Powered by XenChats), e-mails, legal pages, the install code (window.__xenchats, XenChats.open()) and the logo; sites that installed it under the old name keep working; the public address is xenchats.com
Product news
What’s new in XenChats.
The latest improvements, newest first.
Hosted: a file upload is read in full before its route answers, so a refused upload (not allowed, not signed in) no longer breaks the connection for the next request; the sign-up test knows the hosted service always takes sign-ups (HOSTED=1)
Go live: the step reads Train AI Agent with knowledge
Reach first goal's two halves are the same height; the readability audit walks the Go live tabs, the goal picker and both strips, computer and phone
Playbook › Browse templates opens with the search box at the top beside the close button, without a title row
Playbook's list uses the full width without a box around it, the starter pack shows only while there are no skills, the tab reads AI Agents, and times read like 2:34 PM
Go live has a segmented control and a step list with connected markers; Reach first goal counts conversations toward 3 with served, leads and sales; Keep growing shows the results and recommended next steps above the dashboard
A blue strip offers to turn on notifications while the browser doesn't show them (after the yellow widget strip); the settings gear carries a red ! while the widget isn't on a website
Wins also count the conversations that started in the period, for the first goal of 3 conversations
Playbook on a phone: a skill's name and its runs are big enough to tap
Playbook skills are saved as drafts as you edit and run once published; new steps: summarize the chat with AI, a note on the customer, Slack, HubSpot, Mailchimp and Segment; a chat is transferred starts skills; the template gallery has categories and 36 templates; a new skill never shows a deleted one's runs
Settings › Website widgets: the connect card's picture is drawn without words, so nothing in it has to be read
The chat bubble shows within a moment on every page of a website: the widget listens for its own state right after it first draws, so the welcome from the server is never missed while its frame is still hidden (it could stay invisible for up to a minute after a page change)
Every item in the Settings column has its icon; New visitors notifications are on by default
Readability audit: the Settings pages are found from the Settings menu again (Customize widget is now a page of its own without it)
Settings › Website widgets: the Connect the widget to your website card has a picture at its right of a website with the chat widget open (hidden on narrow screens)
A new company starts with two campaigns: Welcome returning customers (Welcome back!, Need help picking up where you left off?, Let's chat) and Welcome new customers (Hello!, Need a hand? We'll point you in the right direction, Let's chat and Just browsing)
The widget's agent card shows the thumbs to rate the chat on their own row under the name
The admin builds again after the widget merge; the Customize widget page stays behind the lock screen when a trial has ended
Customize widget: the eye-catcher shows in the preview, and on a phone the preview note no longer covers the desktop / phone switch; the chat page's text and /chat/<license> have server checks
Settings › Billing › Subscription lists the plan's lines in three columns without group titles
A new company's free trial starts through Settings › Billing's own trial, on the plan and billing period picked on the pricing page
The billing walk checks the most popular API calls pack by its own words, and the product news lists the latest changes
Reports use the full width of the page; Breakdown rows read Avg. chat duration and Avg. teammate chatting time; every report ends with when its data was read and the time zone it is shown in; the extra reports sit at the end of their group
Settings on a phone: Need help?, the sortable column headings, form names and customer links are big enough to tap
Checks: a visitor and an agent walk the widget and the chat page, every Customize widget control is walked, and the readability audit covers the new screens
Settings › Website widgets › Customize widget opens a page of its own: Appearance, Language and Visibility at the left with every earlier option, the live widget on a browser window or a phone at the right, saved as you go; Settings › Chat page has the welcome text
Chat widget: one surface with round expand, menu and minimize buttons, the agent card with thumbs to rate the chat, the agent's messages as plain text with a tiny avatar, one rounded message field with + and a round send arrow, and Powered by XenLive with our logo; the menu has Send transcript, Add chat to your website and Sounds. The chat page (/chat and /chat/<license>) shows Hello! and the company's welcome text at the left and the chat in a large panel
Billing sells no AI usage: AI resolutions are gone from the plans, the trial, the add-ons, Subscription, Manage subscription, Plans & prices and Stripe (each company pays its own AI provider). The plans list exactly what the pricing page says, in its groups (Chat and inbox, Engage and automate, AI Agent; Team and scale, Reach and reporting, AI Agent), with one AI agent. API calls are a real limit: calls with API tokens and the MCP server are counted per company per billing month, and past the plan's API calls plus extra packs (during the trial, the trial's) they get 429 "Monthly API call limit reached. Add API calls in Settings › Billing." while the app's own requests are never counted; the plan's "… API calls" line follows the number set in Plans & prices. The public pricing page shows the plans the platform owner set: GET /api/public/plans (names, texts, prices, lines, trial days) fills the plan cards, the comparison table's prices, the plan builder, the yearly saving and the trial's days, and the page keeps its own values when the request fails. The pricing questions say plans, billing period and users are changed in Settings › Billing, prorated on the next invoice
A settings walk (e2e/scripts/settings-walk.mjs) uses every Settings page like a person, saves, reloads and puts everything back, in light, dark and on a phone; the readability audit also measures the Settings tabs, dialogs, pickers and menus and every Settings page on a phone. The row menu of a customer field opens in full, detected domains fit a phone, and the Product catalog's edit and delete icons no longer sit on the Page link
A new company's trial is kept where the billing screens keep a subscription: the settings row 'billing' (plan, trialing, started now, ends in 3 days, monthly or annual, 1 seat), out of the settings the company edits, and written over a trial the billing code may have started on its own. The walk checks the trial through GET /api/billing and the panel's "3 days" badge where the billing screens are part of the build
Settings on a phone: a long page title keeps its words and its buttons move under it, list columns that don't fit are left out, choice cards stack, working-hour days, form fields, add lines and copy lines wrap, tabs scroll sideways; tags are dark chips in both themes
Billing: Settings › Billing › Subscription with the free-trial banner ("Free trial ends in N days." and Add payment details), the plan and what it includes in three columns, Manage subscription and Usage (users, AI resolutions and API calls with Trial limit, Invite teammates, View report, View settings); Manage subscription with Change plan ("Choose a new subscription plan": Essential, Growth most popular, Enterprise with Contact Expert), a searchable billing cycle (Monthly, Annual, Every 2 years, Every 3 years with what each saves), users, extra AI resolutions and API calls with the most popular pack, the subscription summary with included usage, Enter payment details through Stripe Checkout (nothing billed until the trial ends), Update subscription, and Cancel subscription (active until the end of the period paid for, not renewed, no refunds) or Resume; Payment details with the card (added or replaced through Stripe) and invoice details (company, address, VAT / tax ID, billing e-mail) passed to Stripe; Invoices from Stripe with a download link, or an empty screen that leads to Subscription. A 3-day free trial with the days left above the settings gear; when it ends unpaid, or a payment fails, every screen but Billing says so and asks to choose a plan, and the website chat shows its offline form. Company 1 is the platform's own and is never billed; any other company starts its trial the first time its billing is read (or with the plan and billing period of its sign-up link). One paid seat per person who signs in: a running subscription follows the team. Stripe's webhooks (one address for the whole platform, routed to the company of the Stripe customer) keep the state; the keys are the owner's environment secrets STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET. Settings › Platform › Plans & prices for the platform owner (names, texts, prices billed monthly and annually, limits, add-ons, the trial), kept in the directory on the hosted version; Platform › Companies shows each company's plan, subscription and trial end. Tests with a stand-in Stripe, a walk through every billing screen, and the billing screens in the readability audit
Start free trial on the pricing page carries its plan and billing period through sign-up: /signup?plan=essential|growth&billing=yearly|monthly keeps them in the address (also on the way to Google or Microsoft and back) and the new company's trial starts on that plan and period (Growth, monthly when none was picked). A teammate who joins from an invite while the company requires Google or Microsoft gets the login and is sent to log in that way, not with the new password. The README and the hosted version's notes list GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, MICROSOFT_CLIENT_ID and MICROSOFT_CLIENT_SECRET with their redirect addresses; a local .env stays out of git. The walk starts both sign-ups from the pricing page with real clicks
Settings › Integrations: Apps opens with Connect your tools with XenLive and only the apps XenLive really connects (Twilio, HubSpot, Mailchimp, Slack, Segment), built-in webhooks, API and MCP server below; API access has Documentation at the top and APIs, Webhooks and Personal access tokens tabs, with Get started with XenLive APIs and the Available APIs (each REST API opens its endpoints); API usage starts with Bring XenLive into your workflow and three first steps until the first call; MCP server reads Connect with AI assistants with the MCP server URL and Connect your AI assistant
Login settings: the card for addresses kept out of the visitor list says Hide from Real-time, the list's name today
Settings › Security: Trusted domains with Trusted (n) and Detected (n) tabs, Add to trusted that saves at once, and No trusted domains yet with View detected domains; Banned customers with Ban customer at the top, Allow members to ban customers in the page and No banned customers yet; Spam with Trusted addresses and Blocked addresses tabs that save at once; File sharing as two boxes, teammates and customers. The IP hint points to Customers › Real-time
Settings › Inbox and Customers pages say what they do in the same words and order: Chat timeout as three sentences with minutes and a switch (transfer, mark inactive, close); Chat availability with the two choices and their Edit email question / Edit ticket form links, working hours below on the same page; Chat transcripts with the addresses as chips in one box; AI summary with Auto detect or one language for all summaries; Ticket fields and Customer fields as lists with New ticket field / New customer field dialogs that save at once, and their first-field pages; Custom forms as a full-width list; Forms with its four tabs under one Forms header and the pre-chat form's Show in widget, Message, Add element and campaign box
Settings › Tags and Canned responses read like lists across the page: the intro sentence, tabs with an icon and the count (Chat tags (6)), a small search, and the list without a frame; tags show as small dark chips with who made them and the date (Oct 22, 2026), sortable by Created on; canned responses show the shortcut as a chip, Modified: and a Filter button, with Edit and Delete under ⋯
Knowledge gaps list the question the AI agent could not answer, no longer also the e-mail address the customer typed when it asked for one before handing over
Settings › Chat routing: New routing rule at the top, a tab for each channel (Website widget, Twilio SMS) with its own rules, or Route chats to the right team with Create routing rule when there are none; each rule can be edited, moved, switched off or deleted and is saved at once; If a chat doesn't match a rule, route it to a team you pick. Chat assignment and the default chat limit sit below. A rule from the Twilio SMS tab routes text messages only
Settings › Notifications in two parts, Chats and Tickets: Notification banners (desktop notifications) for each, Sound notifications with a test, and a Notify me about list where every row has its own speaker; the repeating sound now also rings for an unread message. Company details: the owner with an Owner badge, Industry you can search, Audience with several types, Website address, Mobile phone number, State / Province / Region, ZIP code and Country from a list, X (previously Twitter). Desktop app: Work better with the desktop app, with a Download button named after your computer
Settings › Channels: the Chat page card says Ready and the SMS and Telegram cards say Soon
Teams: each chatting team assigns its chats Automatically or Manually; a manual team's new chats wait in Unassigned until a teammate picks one, switching a team (or the default team) moves its waiting chats to the other list at once, and a team without its own choice follows the default team. The AI agent's default skill Collect customer details asks a new customer for the name and e-mail it lacks at the start of a chat, saves them and then answers the question they came with (also in the live preview); it is off until switched on. Tests for manual teams, the invite link (a secret link to join as an Agent, the same until reset, reset turns the old one off) and the skill switches (Collect customer details, Offer discount code, Recommend products)
Settings pages: the header shows the page title alone with its buttons at the right; the short intro sentence opens the page content, with Learn more where there is a help page; form pages are a centred column of rounded cards, list pages use the full width
A chat in the default team shows Chatting Team as its group in the side column and in older transfer notes
AI is paid by each company to its own AI provider: the plans no longer list included AI resolutions, the pricing questions explain who pays for the AI, and Settings › AI provider shows how to get a key step by step for the chosen provider