The chat widget greets visitors with a two-line welcome message and can show small rotating nudge messages ("attention messages") on the closed chat bubble to invite a click. Both can be targeted to specific pages of your website with a point-and-click condition builder — the pricing page can open with different guidance than the blog, and nudges can stay off your checkout entirely.
agents:chat:manage) — ask a workspace admin if the Edit (Sandbox) button isn't visible on the agent.Changes take effect on your website after you publish them with Save & Push to Prod (or the Promote action). Save Changes alone only updates the sandbox copy used for previewing.
The greeting is the first thing a visitor sees when the chat opens. It has two lines:
| Line | Field | Styling |
|---|---|---|
| First line | Static Greeting | Bold, e.g. "Hi! I'm your Assistant." |
| Second line | Static User Instruction | Muted, e.g. "Ask me anything — I can help with pricing, bookings, and support." |
To set the defaults shown on every page:
You can replace the Static User Instruction line on specific pages — for example, "Ask me about plan differences or volume discounts" on /pricing while the rest of the site keeps the default.
How variants are picked, in order:
Nudges are the short rotating messages shown beside the closed chat bubble ("👋 Hi there! Need help?"). Configure them on the Widget tab under Attention Messages:
| Setting | Meaning | Default |
|---|---|---|
| Initial Delay (ms) | Wait before the first nudge appears | 5000 |
| Message Duration (ms) | How long each nudge stays visible | 4000 |
| Interval Between Messages (ms) | Gap between nudges | 12000 |
| Max Messages to Show | Nudges shown before stopping | 3 |
Rule precedence for nudges: global block rules → per-message "never show" → per-message "only show". A message with no rules can show everywhere that isn't globally blocked.
Everywhere rules appear — instruction variants, per-message nudge rules, and global block rules — you use the same condition builder. Each condition is three choices:
What to match:
| Field | Matches against | Example value |
|---|---|---|
| Page URL | The full page address | https://example.com/pricing?ref=ad |
| Page Path | The part after the domain | /pricing |
| Hostname | The domain only | www.example.com |
How to match: equals, does not equal, contains, does not contain, starts with, ends with, matches glob (* / **), and — for hostnames — is domain or subdomain of.
The value to compare against.
Within one rule list, conditions are OR-ed: the list matches when any condition matches. Add one condition per page or pattern you want to include.
* matches anything within one path segment: /products/* matches /products/123 but not /products/123/reviews.** matches across segments: /blog/** matches /blog/2026/07/post.hostname + path (no https://, no query string), so example.com/products/** works as written.| Goal | Condition |
|---|---|
| Only the pricing page | Page Path · equals · /pricing |
| Pricing and everything under it | Page Path · starts with · /pricing |
| Any blog post | Page Path · matches glob · /blog/** |
| Anywhere on a landing-page domain | Hostname · is domain or subdomain of · promo.example.com |
| Everywhere except checkout | Put Page Path · starts with · /checkout in the Never list |
My page-targeted instruction isn't showing on the live site. Check, in order: the variant's toggle is on; a variant above it isn't matching first (first match wins — reorder with ↑/↓); a Never on pages where condition isn't excluding the page; and the change was published with Save & Push to Prod, not just saved to sandbox.
Nudges aren't appearing at all. Confirm Enable Attention Messages is on and the page isn't matched by a Global Block Rule. Nudges are also suppressed once the visitor opens the chat, and for visitors who have dismissed nudges (their choice is remembered in their browser). Finally, remember the Initial Delay — by default the first nudge appears 5 seconds after page load.
My glob doesn't match. The most common cause is * vs ** — * stops at /. /products/* won't match /products/shoes/red; use /products/**.