Web Chat

A chat widget that lands in the same inbox

One snippet on any page. Visitors talk to a bot journey, a person or both, with buttons, lists, files and typing indicators, and the conversation arrives in the inbox beside WhatsApp, Instagram and email with a contact attached.

Snippets for nine stacks ✦ Full bot-journey parity ✦ Secret rotation with a 24-hour grace

Acme HotelsVillas · Offers · Contact
Hi! Looking for a villa this December?
Acme HotelsKaylee · typically replies in a minute
Write a message…

The most guest-obsessed brands trust Lodgestory to power 50M+ conversations a year

Bombay Shaving Company ELIVAAS Lyskraft COYU BBingo Hotels Bloom Hotels
One inbox

Not a widget inbox. The inbox.

Most chat widgets are silos: messages in a widget tool, tickets somewhere else, the CRM in a third tab. Web Chat is a first-class channel inside the same Lodgestory inbox that handles WhatsApp, Instagram, Messenger, email and calls. A widget chat lands in Home with a contact attached, a bot journey routing the reply if you set one, and the same assignment, notes and tickets you use everywhere.

  • Pre-chat form fields seed the contact record before an agent picks up.
  • Live delivery. Messages arrive instantly with typing indicators and read receipts.
  • Sessions survive reloads through the browser's local storage.
Explore the unified inbox
Inbox6 open
AT
Aiko TanakaWeb chat · acmehotels.com/villas

Built for the lowest-friction channel on the internet

Install it in one paste

Ready-made snippets for plain HTML, React, Next.js, Vue, Nuxt, Svelte, Angular, WordPress and Shopify, with the CSS variables to match your brand.

Learn more

Run the same bot journeys

Every step works on the widget. Buttons are buttons, lists are lists, call-to-action links click, and a hand-off lands with the whole exchange.

Learn more

Keep hours, and keep the lead

Outside your business-hours grid the widget collects contact details and one message, and the team picks it up as a new chat on the next shift.

Learn more

Rotate secrets without downtime

A domain allowlist with wildcards, uploads that go through Lodgestory, per-session rate limits, and a 24-hour grace on every rotated secret.

Learn more
Install

Nine stacks, one snippet each

Create the widget, pick its colour, logo and position, write the welcome line and the teaser, and copy the snippet for your stack from the Install Instructions tab. Paste it before the closing body tag on every page you want the widget on, reload, and send the first message to see it land in the inbox.

  • Style isolation. Your CSS cannot leak in; the widget cannot leak out. Override colours, fonts and spacing through custom properties.
  • Audio cues for incoming messages, default or your own sound.
  • Admin API for configuration and secret rotation.
Read the install guide
HTMLReactNext.jsVueNuxtSvelteAngularWordPressShopify

              

Widget appears bottom-right

Bot journeys

You do not rebuild flows for the web

Assign one deployed journey and a bot identity to the widget and it starts replying. Every step works: buttons render as buttons, lists as lists, call-to-action links are clickable, location and media render. When the journey reaches an Agent Transfer step, the chat lands in the inbox with an Agent transferred banner and the whole exchange on the thread.

  • Visitors send text, images and files; agents and bots send text, media, buttons, lists, location and links.
  • Kaylee too. The AI agent answers on the widget like on any other channel.
  • One live journey per widget, swapped without touching the snippet.
Explore bot journeys
Acme HotelsKaylee · online
Write a message…
Journey · Villa enquiries
Business hours

Two in the morning still becomes a conversation

Set a weekly business-hours grid and the widget is live inside it. Outside it, or when no agent is available, it switches to the offline form: contact details and one message. The submission creates a chat the team sees on the next shift, with the contact already attached. A pre-chat form can do the same during the day, asking for name, email, phone or a reason before chatting.

  • Offline message written by you, in your words.
  • Idle timeout and session time-to-live under your control.
  • Multi-site. One widget across forty subsites with a wildcard origin.
Business hoursMon 14:10 · live

Offline message: "We're away right now. Leave your details and we'll reply first thing."

Acme HotelsOnline · replies in a minute
Security

A leaked secret is a 24-hour window, not an outage

Each widget has its own secret and its own domain allowlist, with wildcards for every subdomain at once. Rotate the secret and the old one stays valid for 24 hours while you roll out the new snippet; the card shows the grace timer. Uploads go through Lodgestory, checked against the type and size you allow, and per-session rate limits keep abuse out.

  • Origin checks on every request, then the session token, then the rate.
  • 30 messages a minute per session, 10 session opens a minute per visitor, 60 ephemeral events a minute.
  • Uploads from 1 KB to 50 MB, 10 MB by default, per widget.
Visit the trust center
Marketing site widgetLive · 2 journeys
Allowed originsacmehotels.com · *.acmehotels.com
Secretwch_live_7f3a…c91e
Max upload10 MB
Rotate secretEdit
Old secret valid for 24:00:00Update the snippet on every site before it expires.
Requests

In practice

Forty subsites, one widget, one inbox

An agency runs forty subsites under one group domain. One widget, the wildcard listed once in the allowed origins, a single snippet deployed through the shared head include. On the marketing site a pre-chat form asks for name, email and reason, so the fields are already on the contact when a team member picks up. At two in the morning the widget switches to the offline form, and the enquiry is waiting as a new chat when the shift starts.

How a multi-brand team runs itSee platforms and ISVs
9stacks with a ready-made snippet, from plain HTML to Shopify
24hgrace on every rotated secret, so sites keep working while you roll out
50MBmaximum upload per widget, configurable from 1 KB, 10 MB by default
1live bot journey per widget, with full step parity with WhatsApp

Enterprise-grade by default

Every widget request is checked for origin, session token and rate before it is stored. Conversations are encrypted in transit and at rest, scoped to your organisation and kept in the region you choose.

Visit the trust center
SOC 2 Type II aligned GDPR compliant AES-256 at rest · TLS 1.2+ In-region data residency

Ready to turn visitors into conversations?

Create a widget, paste one snippet and answer the first website visitor from your inbox today.

Questions, answered

The things teams ask before they paste the snippet.

A floating chat widget you embed on any website with a single snippet. Visitors chat with a bot journey, a human agent or both, from any page. Web Chat is a channel in its own right, listed beside WhatsApp, Instagram, Messenger and email, and every conversation lands in the unified inbox with a contact attached.

Create a widget under Settings, Connections, Web Chat, configure its look and behaviour, and copy the snippet from the Install Instructions tab. There are ready-made snippets for plain HTML, React, Next.js, Vue, Nuxt, Svelte, Angular, WordPress and Shopify, plus the CSS custom properties you can set to match your brand.

Yes, with full parity. Every bot journey step works on Web Chat: buttons render as buttons, lists as lists, call-to-action links are clickable, and location and media render too. Assign one deployed journey and a bot identity per widget and it starts replying.

Set a weekly business-hours grid and the widget switches to an offline form when a visitor arrives outside it or no agent is available. It collects their contact details and one message, and the submission appears as a new chat for the next shift.

Each widget has a secret and a domain allowlist, with wildcards such as *.example.com for every subdomain. Rotating the secret keeps the old one valid for 24 hours so your sites keep working while you roll out the new snippet. Uploads go through Lodgestory with a size limit you set, and per-session rate limits are built in.

Yes. Set the primary colour, logo, position and button shape in the admin, and override colours, fonts and spacing through CSS custom properties on the host element. The widget renders in its own isolated environment, so your site's CSS cannot leak into it and it cannot leak out.

Web chat widget | Lodgestory