iAdvizeDocs

Starter questions

A site-wide library of tappable questions that open a conversation. Written once per language, shown on the chat welcome screen and on your engagement widgets, and applied the moment you save.

A shopper who doesn't know what to ask usually asks nothing. Starter questions are the short, tappable questions that give them a first move: tap one and the conversation opens with that question already sent.

They live in one place per site (a library) and they are shown on up to four surfaces at once: the chat welcome screen, the question bar, the chat bubble and the inline Starters card. You write a question once; every surface that has starter questions switched on picks it up.

Open Engagement → Questions in the dashboard sidebar for a site, or go to /dashboard/sites/{siteId}/questions.

They apply immediately: no draft, no publish

A starter question is not versioned. Creating one, rewriting its text, changing where it can show, switching it off or deleting it takes effect at once, everywhere, on your live storefront included. There is no draft to publish and no version history to roll back to.

What is versioned is the switch that decides whether a surface shows chips at all:

SwitchLives onDefaultReaches shoppers
Show starter questions on an agent version (Identity → Conversation starters)an agent configuration versiononwhen that version becomes champion
Show starter questions on a widget (Content tab)an engagement widget versionoffwhen you publish the draft

So the content is live and the on/off is versioned. That's deliberate: fixing a typo in a shopper-facing question shouldn't wait for a release, while turning a whole surface on or off is a configuration change you may want to publish, keep, or revert.

What a question is made of

Prop

Type

A question has no name of its own: the grid identifies it by its text in the site's default language, or by any language it does carry.

Write a question

Creating and editing each happen on their own page, not in a dialog.

  • New question sits beside the page title and opens /dashboard/sites/{siteId}/questions/new. On an empty library that button isn't there; the empty state's Write your first question goes to the same page.
  • Edit, in a row's ⋯ menu, is an ordinary link to /dashboard/sites/{siteId}/questions/{questionId}, so middle-click and "open in new tab" work. Clicking anywhere else on the row does the same thing.

An edit page holds the question's own Live switch and current status above the two cards below, and a Delete this question section beneath them.

  • The Live switch and its status hint (the same label and hint the grid shows, e.g. "Shows in FR only") writes immediately, same as the grid's switch. Deactivating a currently Live question asks for confirmation first; every other toggle applies at once.
  • Delete this question removes the question everywhere, with the same confirmation as the grid's Delete; if the question is currently Live, the confirmation also offers Turn it off instead as a non-destructive alternative.

The two cards in between hold the actual content.

Wording carries one tab per language your site has enabled, labelled by uppercase language code (EN, FR, DE, IT, ES, NL). A filled dot on a tab marks a language that already carries text. No other language is offered, and a language your site hasn't enabled is refused on save.

Per language:

  • Question, up to 60 characters with a live counter under the field. What the shopper reads on the chip, on one line. On the storefront a chip that doesn't fit is clipped with an ellipsis, never wrapped onto a second line.
  • Message sent, badged Optional, up to 500 characters. Use it when the chip should read short but the message sent should be precise: question "Find my size", message "Help me find my size in this product". Empty means the question itself is sent.

Write one language and leave another blank and a notice under the tabs names the blank ones by code ("FR has no text yet, so this question will not show to a shopper resolved to it"). A language you leave blank isn't saved as an empty string. It's saved as "this question doesn't exist in that language", which is exactly how it behaves.

Where it can show is the second card: choose exactly one of All pages, Page types, or Specific URLs, never a combination. Switching mode clears whatever the question had recorded for the other two.

  • Page types needs at least one of Home, Category, Product, Checkout checked, matched against the page type your tag declares.

  • Specific URLs matches the shopper's actual address instead of a declared page type. Add up to 10 patterns, 200 characters each; the question is eligible the moment any one pattern matches. A pattern uses a single wildcard, *, standing for any sequence of characters. There's no regular-expression syntax:

    PatternMatches
    produits/*Any address starting with produits/ (every product page, if that's your URL structure)
    */promo/*Any address that contains /promo/ anywhere
    checkoutOnly the address checkout, exactly (no * at all)

    Write patterns without a leading slash (produits/*, not /produits/*): matching strips it for you. Matching is case-sensitive.

Specific URLs only works reliably on the question bar and chat bubble widgets

Matching runs live, in the shopper's browser, against their real address, and it re-checks on every page change, including single-page-app navigation, with no merchant integration call required. That's what makes it work on the question bar and chat bubble: the widget's own page-targeting still applies on top.

The chat welcome screen (the hosted public link, the embedded panel and every Playground pane) matches a Specific URLs question against that surface's own address (the hosted link or the embed panel's URL), never your storefront's, so a pattern written for your storefront will in practice almost never match there. The Playground supplies no address to match at all, so a Specific URLs question never appears there.

There is no way yet to preview a Specific URLs question anywhere but your live storefront. Unlike an engagement widget, this targeting mode has no preview mode of its own.

Create question (new) and Save changes (existing) stay disabled until at least one language carries a question. Cancel is a link back to the library and saves nothing. A successful save takes you back to the library too.

The library grid

Rows are shown in library order by default. The number in the first column is the position that decides which questions win a slot. Click anywhere on a row to open its edit page.

  • Question: the text the site's default language carries, with a note when that language sends a different message than the question.
  • Target pages: All pages, the checked page types, No page when nothing is selected, or Specific URLs for a question in URL-pattern mode (the badge names the mode, not the patterns themselves).
  • Status: see below.
  • CTR · 14 days: how often a shown question gets tapped. See How well a question performs.
  • Performance: the same section's verdict.
  • Updated: when the question last changed, text edits included.

Status, CTR, Performance and Updated sort: click a column header to sort by it, click again to reverse direction, click a third time to clear the sort and return to library order. Status sorts by Live → Partial → Needs setup → Offline, not alphabetically. CTR sorts numerically, with a question that's never been shown always sorted to the bottom rather than read as a 0% rate. Performance sorts by where the work is first: Underperforming → Promising → Not enough data → Workhorse → Never shown.

Search filters on both the questions and the messages, in every language; the two selects narrow by page type and by status. The page-type filter only matches All pages and Page types questions: a Specific URLs question carries no page type, so it drops out of the grid whenever that filter is set to anything but "All".

The four statuses

StatusWhat it means
LiveNothing stands between this question and a shopper: it's on, it can match a page, and it carries text for every language your site enables.
PartialIt works, but at least one enabled language has no text, so shoppers resolved to that language see nothing for it. The row names the languages it does show in.
Needs setupIt can't show anywhere: no text in any language ("No text yet. Write the question."), Page types with nothing checked ("Reaches no page. Choose a target."), or Specific URLs with no pattern ("Reaches no address. Add a URL pattern.").
OfflineSwitched off with the row's Live toggle. Outranks everything else: a question you deliberately turned off isn't nagged about.

Partial is the one status with no widget equivalent, and it exists because a widget's own text falls back to your site's default language while a starter question never does. See Missing text is silence, not a fallback.

Row actions

The Live switch sits in the Status column, beside the state label, and applies immediately. The same switch is also in the ⋯ menu, as Activate / Deactivate. Taking a currently Live question offline (from either the switch or the menu) asks for confirmation first; every other transition (turning one on, or turning off a question that isn't Live) applies at once. The ⋯ menu also holds:

  • Edit: opens the question's own page. Saving applies at once.
  • Duplicate: copies the text and targeting (page scope or URL patterns, whichever the question uses) into a new question at the top of the library, not next to the original.
  • Move up / Move down: one place at a time. There's no drag-and-drop.
  • Delete: asks for confirmation first, then removes the question everywhere. This can't be undone.

Reordering is disabled while a filter, a search, or a sort changes what order the grid shows

Move up and Move down are greyed out as soon as the search box holds a term, either of the two selects is set to something other than "All", or a column header is sorted. A move swaps the question with its neighbour in the whole library's own order, not in what you're currently looking at, so on a narrowed or sorted grid it would move a row you can't see next to. Clear the search and reset the two filters, and click the sorted column a third time to clear it, to reorder again.

On a view-only role (Starter questions: View without Edit) the grid, the filters and the statuses all stay readable, and every write affordance is simply absent: no New question, no switch, no ⋯ menu. Opening a question's page still works and shows it read-only, with every field disabled and no Cancel / Save changes footer at all. Opening the create page instead sends you back to the library, since there'd be nothing on it to read.

Where the chips show up

The chat welcome screen

Before the first message, up to three chips sit under the welcome message, in the hosted public link, the embedded panel and every Playground pane. This surface is gated by the agent version serving the conversation.

The version's Alignment control (Left / Center / Right) positions the chip column here. See Conversation starters.

The question bar and the chat bubble

With Show starter questions on in a widget's Content tab and the draft published, the widget renders up to three chips stacked directly above itself, inside the widget's own surface. Their alignment isn't configurable: a question bar's chips align to its bar's leading edge, a chat bubble's to the corner it's docked to. Colours are the widget's own resolved foreground and background, inverted, so the chip is a filled pill in the widget's text colour.

Because the chips live inside the widget, they follow it: they disappear while the conversation panel is open, and a widget its page targeting excludes takes its chips with it.

Page scope needs a declared page type to narrow anything

Which questions a widget carries depends on the page type your tag declares with iadvize('set', { customData: { pageType } }). Declare product and a Home-scoped question drops out. Declare nothing, the position of a storefront that never calls that API, and page scope is not applied at all: every enabled question with text in the shopper's language is eligible, first three in library order, the same as in the panel. So page scope is a way to narrow chips, never a prerequisite for having any.

The inline Starters card

The Starters widget places the same chips inside your page layout, in a card with a heading and a free-text field. It has no on/off switch for chips: it always shows the ones the library resolves for the page. In the report and on a question's page, this surface is named Starter questions.

Which three questions get shown

Every surface shows at most three chips, and the selection is the same for all of them: walk the library in order and take the first three questions that qualify. There is no per-surface choice, no rotation and no randomisation, so a question bar and a chat bubble on the same page show the same three chips.

A question qualifies when all of these hold:

  1. Its Live switch is on.
  2. It carries text in the language the surface resolved to.
  3. Its targeting admits the page (page scope for an All pages/Page types question, at least one matching URL pattern for a Specific URLs one), and, on a widget, the widget's own page targeting admits it too. All applicable rules are applied; none overrides another.

When more than three questions can reach the same page type, only the first three in library order actually render. The rest sit idle. Nothing on the grid names the contest up front any more; instead, a question that never wins a slot reads Never shown in the Performance column, with "never wins a slot against its higher-ordered siblings" as the reason on hover. Reorder with Move up / Move down, right there in the same row, to give it a chance.

Missing text is silence, not a fallback

A question with no text for the shopper's language is skipped. It doesn't render blank and it doesn't fall back to another language, not even to your site's default. It also doesn't consume one of the three slots, so three German-authored questions always give a German shopper three chips even if the library holds twenty French-only ones.

This is deliberately stricter than a widget's own text: a chat bubble's label or a question bar's placeholder does fall back to your site's default language. The chips don't, because a chip has to agree with the panel it opens, and that panel shows nothing for a language you haven't written.

The practical consequence: watch the Partial status. A question missing one language is invisible to the shoppers who speak it, and nothing on the storefront will tell you.

Where there is no page context, page scope isn't applied

The hosted public link, the Playground, and any surface on a storefront that declares no page type have no merchant page to match against, the widget's chips included. There, page scope is ignored entirely and every enabled question with text in that language is eligible, so a question scoped to Product still appears in the Playground. That's on purpose twice over: a page-scoped question you're testing would otherwise show nowhere you can see it, and a widget's chips and the panel they open must never offer different questions on the same page.

This "no context, so always eligible" rule is specific to Page types scope. A Specific URLs question is never given that free pass. See the callout above.

How well a question performs

Every question that's actually shown to a shopper is measured: one impression when it renders on screen, one click when a shopper taps it. The grid's CTR · 14 days column and Performance column, and a matching block on the question's own edit page, turn that into a verdict, so you can tell a question that's earning its slot from one that's wasting it, without reading a report.

The verdict, and what to do about it

VerdictWhat it meansWhat to do
WorkhorseEnough impressions to trust the rate, and it's at or above your site's own average.Keep it near the top.
UnderperformingEnough impressions to trust the rate, and it's below your site's own average.It's occupying a slot. Rewrite it or move it down.
PromisingToo few impressions to be sure yet, but the rate already looks strong.Move it up and the next period will tell you.
Not enough dataToo few impressions to be sure, and the rate doesn't clearly stand out either.Give it more time, or move it up to gather data faster.
Never shownZero impressions in the last 14 days. Always paired with a reason (see below).Depends on the reason.

"Enough impressions" means 200 or more in the 14-day window. Below that, a rate is too noisy to call a win or a loss, so the verdict says so instead of guessing. Promising and Not enough data are both below that floor; the only difference between them is whether the rate already looks strong.

"Above" or "below" your site's own average is judged against your site's own click-through rate over the same 14 days, never an industry number, and never another merchant's. A question within 15% of that average, in relative terms, still reads as Workhorse, so a question a fraction of a point off the average doesn't flip label every time the page refreshes.

The window is fixed at 14 days everywhere the grid and the editor show it. There's no way to widen or narrow it on these two surfaces. The Engagement report covers the same numbers over whatever date range you pick there.

Every verdict is shown next to the numbers it comes from (impressions, clicks, and the rate), never as a bare label. Hover a verdict for the sentence explaining it.

Never shown, and why

A question with no impressions in the last 14 days reads Never shown, always with one of these five reasons:

  • Too recent. Created after the 14-day window opened: there hasn't been time to measure it yet.
  • Disabled. Its Live switch is off, so it's served to nobody.
  • No page types. Selected page types with nothing checked, so it targets no page.
  • No content. No text in any language yet.
  • Never wins a slot. It's otherwise eligible (enabled, targets a page, has text), but higher-ordered siblings always fill the three available slots first. Move it up to give it a chance.

These five cover every case, in this order of precedence: a question created too recently always reads "too recent" first, even if it also happens to be disabled or untargeted. "Not yet measured" is the honest read for a question you just wrote. A question you switch off keeps showing "too recent" only if it's genuinely brand new; otherwise the reason moves down this list.

On the question's own page

Open a question and its Performance block sits above the wording, inside the same status card: the verdict, the three raw figures (impressions, clicks, CTR), a 14-day rate-over-time chart, and a table breaking the same numbers down by surface (welcome screen, question bar, chat bubble, Starter questions), so you can see where the taps actually come from. A surface the question never rendered on reads Not shown here, never a 0% rate. A Full report link goes to the Engagement report for the same question over a range you choose.

A question with zero impressions shows only the verdict and its reason. There's nothing else to evidence yet.

Removing a language deletes its questions' text

Removing a language from your site's enabled languages permanently deletes that language's question and message from every starter question on the site. The Languages card counts starter-question text when it decides whether to ask you to confirm.

The question itself survives even if it ends up with no text in any language: it keeps its targeting and its place in the library, and the grid reports it as Needs setup so you can write new text instead of rebuilding it.

Permissions

Viewing this page requires Starter questions: View; creating, editing, reordering, switching, duplicating or deleting a question requires Starter questions: Edit. Both built-in roles, Admin and Member, hold both. Without either, Questions doesn't appear in the Engagement section of the sidebar at all, and opening the URL directly shows a restricted-access message naming what you're missing. See Roles.

Not in this version

  • No AI-written questions. Every question is one you write.
  • No regex or device targeting. URL targeting is single-wildcard glob only, and (see the callout above) it only works reliably on the question bar and chat bubble widgets, not the chat welcome screen.
  • No per-surface selection. You can't give the chat bubble a different three than the question bar.
  • No breakdown by page type. The verdict and the report both cover a question's performance as a whole, not split by home / product / category / cart / checkout.
  • No per-widget comparison. If a question shows on both a question bar and a chat bubble, there's a per-surface split (see How well a question performs), but not a comparison across the widgets configured on your site.
  • No link to sales. A verdict tells you whether a question gets tapped, not whether that conversation led to a purchase.
  • No per-language performance. A question's rate is measured across every language it's shown in, combined, not broken out per language.
  • Not in the API. Starter questions aren't exposed by the REST API, and the MCP server only reads how each question performed (impressions and clicks, through get_report). The dashboard is the only way to create, edit or remove them.

Replaces per-version starter suggestions

Starter suggestions used to be written inside an agent configuration version, up to three per language. That's gone, and the suggestions configured that way were not carried over: they were dropped, not migrated into this library. If a version of yours carried suggestions, write them again here once and every surface picks them up. The version editor keeps the per-language welcome message and the alignment control.

On this page