Realtime by default
ActionCable updates, typing state, unread counts and resilient polling keep every conversation current.
A secure, brandable chat widget built for travel and hospitality teams. One script brings realtime Chatwoot conversations to any website.

ActionCable updates, typing state, unread counts and resilient polling keep every conversation current.
Exact-origin tenant rules, short-lived HMAC tokens and iframe isolation protect the host page and guest identity.
Attachments, emoji, transcript download, delivery status, quick actions and responsive mobile behavior.
Configure a tenant on the widget server, allow the website origin, then paste this snippet before the closing body tag.
<script>
window.KinChatConfig = {
tenantKey: "kin",
locale: "en",
// Optional signed-in user:
// user: {
// identifier: "kin:user_123",
// identifierHash: "<sha256-hmac>",
// name: "Alice",
// email: "alice@example.com"
// }
};
</script>
<script async src="https://widget.example.com/widget.js"></script>open() / close()Control the floating panel.
identify(user)Switch to a server-signed customer.
reset()Return safely to a new anonymous visitor.
on(event, handler)Observe ready, unread, message and error events.