Skip to main content
This widget is and is subject to change in minor versions.
When the chat widget has no messages yet, it shows a welcome screen. Use the empty template to replace it with your own greeting and a set of starter prompts. Each prompt sends a message to the agent when clicked, so users can start a conversation in one tap. If you only need prompt suggestions after the agent responds, use Agent Studio prompt suggestions instead.

Render starter prompts with the empty template

The empty template receives a sendMessage function. Call it with { text } to submit a starter prompt as the first message:
JavaScript
The chat widget renders the panel but doesn’t open it on its own. Add an entry point on the same InstantSearch instance: the chatTrigger widget, AI mode on a searchBox, or an inline layout.
The empty template reuses the built-in classes (ais-ChatGreeting and ais-ChatPromptSuggestions) so it inherits the default styling. Replace them with your own classes to fully restyle the welcome screen.

Reuse the default greeting

Instead of writing the greeting markup yourself, render the built-in greeting with the exported chatGreeting template helper, then add your starter prompts below it. The helper renders the default heading and subheading, and accepts a banner image, translations, and classNames:
JavaScript

Fetch starter prompts dynamically

The prompts don’t have to be static. Fetch them once (for example, from a dedicated Agent Studio agent that returns starter prompts), store them, and render them from the empty template:
JavaScript
Reference starterPrompts from the empty template, exactly as in the static example above.

Customize more than the empty state

The empty template only replaces the initial empty state. To customize the surrounding chat layout (header, message list, prompt input), use the layout template instead. See instantsearch.templates.chatInlineLayout() for an inline (non-overlay) layout.
Last modified on July 22, 2026