Widget Settings
Admin Panel → Widget Settings governs how the widget behaves rather than how it looks, and how conversations run: rate limiting, the pre-chat form, the live visitor list, auto-closing idle conversations, checking in when the customer goes quiet and the customer reminder, auto-reply, the satisfaction survey, the spam filter, human handoff and the reply time target, blocked visitors, proactive messages and canned responses for human agents.
Preset questions are no longer on this screen. The preset questions a visitor can ask with one tap are now set per widget type and tab, on the RAG Widget and E-Commerce Widget screens. The note at the top of the screen links to both.
Rate limit
The maximum number of messages one IP address may send per minute. It caps abuse and unexpected credit burn. Set it with the slider from 0 to 60; 0 means no limit (Unlimited).
Pre-chat form
When on, the widget asks the visitor for contact details before the chat starts. You choose which fields to request: Name · Email · Phone. At least one field must be selected.
This is a trade-off: the form adds a step before the conversation and some visitors will drop out. In return you can reach the person afterwards. Valuable for sales and lead capture, usually unnecessary for pure self-service support.
Option buttons and product cards
The two switches below the pre-chat form decide what appears under the AI's reply. Both start on. Turning one off removes only the buttons or the card; the text the AI writes stays the same.
| Switch | What it does |
|---|---|
| Option buttons | When the AI asks the customer to pick one of a few options (a size, a colour, a model, or “shall we track your order or start a return?”), the options also appear as buttons under the reply. Tapping one sends that option as the customer's message. In the web widget they are buttons, on WhatsApp reply buttons (up to 3 options) or a list, and on Instagram quick replies. The options stay written in the reply too, so where buttons don't show (such as Instagram on desktop) the customer can type the answer. Buttons stay only on the latest message. Questions with a free answer, such as an order number or an email address, get no buttons. |
| Product cards | In the e-commerce widget, when the AI describes a product from your store, a card appears under the reply: image, name, price (in the visitor's language and your store's currency), stock status and View product. Products with a single option also get Add to cart. If the widget is on your Shopify store's own page, the product is added without leaving the page; on any other site your store's cart opens in a new tab with the product in it. On WooCommerce the product is added and its page opens. For a product with several options the size or colour is chosen on the product page. A card appears only for a product the store search really found and the reply names. Shown, click and add-to-cart counts are in Reports. |
The card's stock label follows the assistant's stock language: In stock only when the store tracks the quantity and there is stock, Sold out when the product can't be bought. Products whose quantity isn't tracked get no label.
Live visitor list
With Live visitor list (below the product cards switch) on, the widget reports which page each visitor is on every 30 seconds; you see the list from the On site button at the top of Conversations. It is off by default.
- Kept: the page address (without its query part), the page title, the referring site's name, the device type (phone / desktop), the widget's language and whether the visitor is new or returning.
- Not kept: IP address and location. The data is held for at most 90 seconds and never written to the database; automated browsers send nothing.
- While it is off, the widget sends no signal and the button doesn't appear in Conversations.
You may need to mention visitor tracking in your privacy notice; the panel reminds you under the switch.
Conversation settings
The six cards below the live visitor switch shape how conversations run. The spam filter, automatic translation and the low-rating alert start on; the others stay off until you turn them on.
| Card | What it does |
|---|---|
| Auto-close idle conversations | Closes an open conversation that gets no new message for the time you pick (12 hours to 7 days). Conversations an agent has taken over, and escalated ones, are left alone; a conversation reopens by itself if the customer writes again. Auto-closed conversations are counted separately in reports and don't enter the resolution rate. Inside the same card, Check in when the customer goes quiet: if you spoke last and the customer stays silent for the time you pick (15 minutes to 4 hours), the chat gets one message: “Is there anything else I can help you with?” It works in the widget, WhatsApp, Instagram and Telegram; on WhatsApp and Instagram only while the 24-hour messaging window is open. It is never sent on handed-over conversations. The question goes out in the customer's language (in the widget, any of its nine languages; on WhatsApp, Instagram and Telegram, Turkish or English) and shows in the chat as Automatic check-in; if the customer writes again, it is asked once more after the next silence. |
| Incoming message translation | Which language Translate on a customer message in Conversations translates into. The default is The agent's panel language; pick one of 39 languages and the whole team uses it. An agent can pick another language for a single message in the translation box; this setting does not change. With Translate messages in other languages automatically below the card on (the default), customer messages in a language other than your team's are translated by themselves; messages already in your team's language are not translated, and each message is translated once and kept. Details: Message translation. |
| Customer reminder | If you spoke last and the customer hasn't come back within the time you pick, they get one reminder email. Only for customers who left an email; never on handed-over conversations. The time must be shorter than the auto-close time, otherwise the conversation closes before the reminder goes out. |
| Auto-reply | When your chosen words appear, your own prepared answer is sent without the AI running at all: no credits are used and the reply is instant. Each rule has When these words appear and Send this reply. The same rule runs only once per conversation, and auto-reply never runs on a conversation you have taken over. |
| Satisfaction survey | An hour after a conversation closes, the customer receives a short rating link; the score appears in reports. The survey goes to email, WhatsApp, Instagram and Telegram conversations; chat-bubble conversations don't get it, because the stars already appear there. Alert me about low ratings inside the card (on by default): when a customer gives 1 or 2, the person assigned to the conversation (the team's members if it is assigned to a team, otherwise your support address) gets an email with the rating, the comment and whether the AI or the team answered, each recipient in their own language. It also applies to the stars in the chat bubble. Reports split the scores by AI and team: Customer satisfaction. |
| Spam filter | Screens out ads, gambling, backlink and scam messages before they reach your inbox. Its settings: Ask the AI about suspicious messages, Words never counted as spam, Your own blocked terms and Show the built-in list. A word you add under Words never counted as spam no longer makes a message suspicious or blocked (for example “lottery” if you sell lottery tickets); other words in the message and signals such as a pile of links are still checked. Terms are matched as whole words, and a visitor who has written to you before is never blocked. Every blocked message is written to the Audit Log. |
Human handoff, teams and notifications
Below the spam filter sit the widget's human handoff settings; each is covered on the Human handoff page:
- Working hours and reply time — weekly schedule, time zone, expected reply time, holidays and special days.
- Reply time target — if a customer waits longer than the time you pick (5 minutes to 24 hours) for a reply from an agent, Conversations shows “target missed” on the conversation; Reports show how many handoffs were answered on target. With working hours on, the clock only runs during working hours. Details: Human handoff › Reply time target.
- Teams and routing — teams and their members, where a handed-off conversation goes when no rule matches, and the waiting alert. Handoff rules are not on this screen; they are on the RAG Widget and E-Commerce Widget screens.
- Handoff notifications — Support email: unassigned handoffs, waiting alerts and the reply-to address of agent replies go here. Leave it empty to use the account owner's address.
- WhatsApp and SMS notifications — which channels (email, WhatsApp, SMS) announce unassigned handoffs, and the fallback phone. The SMS provider and the WhatsApp line are set up on the Team alerts tab of the Messaging screen; this card only shows their status.
Blocked visitors
Visitors you blocked in Conversations are listed here: the kind of block (session, email, IP), the masked value, the date and who blocked them. Remove one with Unblock; it's written to the Audit Log. How a block is placed and what it covers: Conversations › Block a visitor.
Proactive messages
While a visitor waits on a page, a dismissible bubble appears next to the chat button. The chat window does not open by itself. No conversation starts until the visitor replies; when they do, the bubble text becomes the first message your agent sees.
Use Add rule to set up to 5 rules. The bubble text goes into Message (Turkish) and Message (English). Under When should it appear? you set Pages, Time on page (seconds), Scroll (%) and Exit intent (desktop only); below that you pick Who, Frequency, Working hours and optional Quick replies. With Run this rule off, the rule is saved but never shown to visitors. Press Save to keep your changes.
The Cart condition ties a rule to the visitor's cart: Ignore the cart (the default), When the cart has items, When the cart total is at least… (in your store's currency) or When the cart contains… (a word in the product name). The cart is read from the store's own cart in the visitor's browser and is never sent to SemAgent; it is checked again right before the bubble appears, so a product added without a page reload still counts. It works in Shopify and WooCommerce stores; on sites where the cart can't be read, a rule with a cart condition never shows.
Ready-made rule for abandoned carts adds a rule named About to abandon the cart in one click: it shows when the cart has items and the visitor moves to leave the page, or after 40 seconds, and its text is ready in both languages. Change the text and conditions, then save.
This text is sent to the visitor's browser and can be read from the page source. Don't put internal details such as campaign margins or stock levels here.
Canned responses
The texts you add here appear above the reply box for the agent who has taken over a conversation on the Conversations screen. Picking one drops the text into the box, and the agent can edit it before sending. The customer sees it as the agent writing, not the assistant.
Agents can also type / in the reply box to search and pick one (e.g. /refund). Details: Composing tools.
Each canned response has a title (the short name the agent sees in the list), content (the text sent into the chat) and a category. The ready-made categories are General, Shipping, Return, Order and Payment; pick + New category in the Category menu to add your own. Categories only organise the list; the customer never sees them.
Language versions. When you add or edit a reply, Add language version lets you write the same reply in another language: pick the language (the 39 languages of message translation) and enter the text. A reply can have up to 12 versions; a version left empty isn't saved. When an agent picks the reply in Conversations and there is a version in the customer's language (for a customer writing from the widget, the widget's language), that version goes into the box and the panel tells you which language it inserted; otherwise the reply's own text is used. Variables such as {{ad}} work in versions too. In the list, a reply with versions shows its languages next to the title (e.g. EN · DE).
Every reply in the list has its own Active/Inactive switch: an inactive reply stays in the list but is hidden from agents. Add replies with New response; while the list is empty, Add sample replies adds five examples.
Below the list, Suggested canned replies shows replies your agents wrote in chats, the most repeated first. Save as canned reply keeps one and Dismiss hides it. Nothing is added until you save it.
On this screen the list and the suggestions only show while the Canned responses switch is on; the switch sits just above Blocked visitors. Turning it off does not delete your saved replies.
Canned responses are for the human agent, not the assistant. What the assistant says is shaped by the system instructions and the knowledge base. For a prepared answer that goes out by itself without the AI, use the Auto-reply card.
Recognising signed-in customers
If a customer writes while signed in to your site or store, you can recognise them without asking for an order number. The setting sits under the embed code on the RAG Widget and E-commerce Widget pages.
If your store is connected through the SemAgent Shopify app, you don't need this code: signed-in customers are recognised automatically and there is no Liquid snippet to add. The code is for other platforms and for stores connected with their own custom app (Client Credentials).
Setup
- Press Create key. The setup window opens. The key is shown only once and is filled into the code automatically.
- Pick your site in the window's Platform tabs: Shopify, WooCommerce or another site.
- Add the code to your site above the widget code. On Shopify (a store connected with your own custom app) use the
theme.liquidtheme file; on WooCommerce usefooter.phpor a code snippets plugin. While the customer is signed in, the code signs their email with this key. - The widget sends the email and the signature with the chat. Once the signature checks out, the person becomes the customer of that email (trust: verified, source: store sign-in).
Checking that it works
After adding the code, press Test setup in the window:
- Add the code to your site and save.
- Sign in to your site with a customer account (not an admin login).
- Open the chat widget and send a message.
The panel waits up to 3 minutes for a signed login. If the signature checks out, it says so and shows that your signed-in customer was recognised. If not, it tells you why:
- No key on the account: your site sends signed logins but no key exists, or it was removed. Create a key and update the key in your code.
- Signature doesn't match: the code on your site may hold an old key, or the email may be signed without lower-casing it. Replace the code with the current version from the window.
- No login within 3 minutes: check that the code is on the page and that you signed in with a customer account, then try again.
The setting row always shows the latest state, Working, Signature failed or Not tested yet, with the time of the last verified login next to it.
The key never reaches the browser; the signature is made on your site's server. An email written on the page without a matching signature is ignored. If you rotate the key, the old one stops working immediately. Signed-in customers are not recognised until you update the code; the chat keeps working.
Controlling the widget from code
Your site's own code can control the widget: open it from a button, prepare a question on a product page, recognise a signed-in customer or listen for replies. Add this line before your embed code; calls made before the widget loads wait and run in order once it is ready:
<script>window.SemAgent=window.SemAgent||function(){(SemAgent.q=SemAgent.q||[]).push(arguments)};</script>
| Command | What it does |
|---|---|
SemAgent("open") · "close" · "toggle" | Opens, closes or toggles the chat window. |
SemAgent("isOpen") | Returns true if the window is open (once the widget is ready). |
SemAgent("prefill", "When does this ship?") | Opens the window and writes the text into the reply box; the visitor edits and sends it. |
SemAgent("send", "Where is my order?") | Opens the window and sends the message for the visitor. If the pre-chat form is on, the form comes first and the message waits in the box. |
SemAgent("identify", { email, hash }) | Recognises a signed-in customer: the same signed identity as above, equivalent to setting window.SemAgentUser. An unsigned email is not accepted; identifying a different email first resets the session. |
SemAgent("logout") | Call it when the customer signs out of your site: the identity is removed and the widget session in this browser is reset (conversation, pre-chat details and recent conversations list). The next person on the same computer does not see the previous customer's conversation. |
SemAgent("on", event, fn) · SemAgent("off", event, fn) | Starts or stops listening to an event. |
SemAgent("ready", fn) | Calls fn when the widget is ready (right away if it already is). |
Once the widget is ready, the same commands can also be called as SemAgent.open(). Events:
ready: the widget is ready.open,close: the window opened or closed.message:sent: the visitor sent a message;{ text }.message:received: a new reply arrived on this page;{ text, from }, wherefromis"ai"for the AI and"agent"for a person. Old messages loaded when the page opens do not fire it.product:click: the visitor clicked a product card's image or View product;{ title, url }.cart:add: the visitor pressed Add to cart on a product card;{ title, url }. Use it to record add-to-cart in your own analytics (for example Google Analytics).
SemAgent("on", "message:received", function (m) {
if (m.from === "agent") console.log("Our team replied:", m.text);
});
document.querySelector("#help-button").onclick = function () { SemAgent("open"); };
All commands work with the widget's new look. On the classic look only open, close, toggle and isOpen work; the others write a warning to the browser console. An error in your listener does not break the widget.
SemAgent