The chat widget puts an agent on your site. You embed one script tag; it renders a launcher, opens a chat panel, and keeps a durable session so returning visitors resume their conversation.

Embed the widget

Each widget is bound to a chat step in a workflow. Copy its stepId and add:
Place it before </body>. The script is generated per step, so it already carries that widget’s saved configuration.

Customizing

Saved settings can be overridden per embed with query parameters — useful for trying a variation without editing the step:
Anything you do not pass falls back to the step’s saved settings.

How sessions work

A visitor’s session survives page loads and browser restarts, so a returning visitor is recognized as the same person rather than a new one. The session is stored per workspace — a browser loading widgets from two workspaces keeps a separate session for each, and a session from one workspace can never be resumed against another.
The widget iframe is cross-origin from your page, so the session cookie is a third-party cookie and modern browsers block it. The widget therefore sends the session ID in an x-widget-session header instead, and the cookie is only a fallback for same-origin embeds. If you proxy or filter requests in front of GoConva, that header must be allowed through — stripping it makes every page load look like a new visitor.

Session endpoints

The widget calls these itself; they are documented for debugging. Session reads are origin-checked — a session may only be used from an origin allowed for its workspace.

Capturing contact details

When a visitor submits a form in the widget, they are promoted to a CRM contact. Fields matching built-in contact columns — firstName, lastName, email, phone — are written to those columns rather than duplicated as custom fields.

Troubleshooting