Fire Away

Know who you are talking to before you reply

Every conversation arrives with the pages they visited, roughly where they are, and whatever your own application chooses to tell us about them.

Custom data

Your app knows things. Send them.

One call attaches anything you like to the conversation: plan, seat count, account URL, order number. Values are strings, capped at thirty keys, and shown to agents in the order you set them. A value that looks like a URL becomes a link in the apps.

LiveChat.set({
  plan: "pro",
  seats: "12",
  accountUrl: "https://app.yourcompany.com/a/123"
})

LiveChat.setUser({
  name: "Grace Hopper",
  email: "grace@example.com"
})

Context that arrives on its own

Page trail

The route they took

The last thirty pages, captured automatically including single-page navigations, with consecutive duplicates collapsed.

Location

City and country

Resolved from the request itself, so there is no third-party lookup and no delay before the conversation is complete.

Privacy

Not shown back to the visitor

The IP address and location are stripped from every widget response. Agents see the full picture; the visitor never sees what we inferred about them.

Questions about visitor context

When can I call set()? +
Any time, including before the widget has loaded. Calls made early are queued and replayed once it boots, so nothing is lost and nothing throws if the script is blocked.
Does it work in a single-page app? +
Yes. Page tracking follows pushState, replaceState, popstate and hashchange, so client-side navigation is recorded like any other page view.

Explore the rest of the product

Shared inbox

Live drafts, soft assignment, internal notes and mentions.

Learn more

Email fallback

The conversation continues by email and comes back to the same thread.

Learn more

Chat widget

One dependency-free script, in a shadow root, on your domains only.

Learn more

Try it on your own site

Fourteen days free, and about two minutes to install.

Fourteen days free, no card.