12 requests per minute
cap per visitor on the public widget interface
applies per visitor and assistant; that allows one question every 5 seconds, and the series waits 5.5 seconds to keep clear of our own brake
A XICBOT assistant does more than answer: through named actions it reads your connected systems and acts within them.
The assistant can do more than answer. It can read your systems and act in them. Examples are calendar, customer records, stock and shop. It may read if you have allowed it. If it wants to change something, it first makes a proposal. The visitor sees what will happen and has to confirm it. Each step is then recorded in a line.
Request tool control View all prices
The difference from a plain answer lies in the sequence. Anything that only reads runs straight through if it has been approved for that. Anything that writes goes to the visitor as a proposal first — carrying the wording of what is about to happen, with two buttons beneath it. Only the click on Confirm executes. Every call then leaves a line holding input, result, duration, approval path and final state.
Visitor:Do you still have the running shoe in size 43?
Assistant:Two pairs are in stock. I looked that up just now without asking first — pure reading may run through when it has been approved for that.
Visitor:Then please put one in my basket.
Assistant:Here I start asking. Anything that does more than read goes out as a proposal first. While it is open, nothing has happened — and the sentence on the card is the same one I am about to execute.
Visitor:Confirm.
Assistant:The basket is ready here in the chat, “Continue” on the card leads into the shop. A second tap on Confirm creates nothing twice: the step carries a one-time key that the database locks against.
Ask it yourself, Assistant of this website
Automated assistantAn assistant that only gives information stops where someone wants something done: an appointment in the calendar, a look into an order, a record in customer management. Tool control starts there — and it is narrower than the term suggests. The assistant gets no access to your systems, only a list of named actions attached to the individual assistant. Each carries a field schema, a kind (reading or writing) and a minimum role. What is not on the list cannot be called; what is not in the schema drops out of the input before the call runs. Which actions can be assembled freely is shown on Custom functions; how the assistant reaches your website technically is covered under Integration and embedding.
Ten connectors are shipped ready, plus seven base shapes from which custom actions can be built. Each carries a kind and an approval mode of its own — what the shape demands cannot be switched off in the admin area. The names below are the keys under which the action appears in the log and on the preview card.
Read free slots, take, move and cancel appointment requests; binding entries go through a calendar connection set up for it.
calendar_availability reads free slots and may run without asking back.calendar_booking enters the appointment in your connected calendar — writing, so only after the click.appointment knows requesting, rescheduling and cancelling; which act is meant is stated in the preview sentence, and the request only becomes an appointment once your business confirms it. It names free times by reading your appointment types, without any sync with an external calendar.Stock, price and product search from your data instead of from a text.
inventory_status states the stock level at the moment of the question; reading, no asking back.price_lookup fetches the price from the catalogue instead of from a page written at some point in the past.product_search searches, compares, assembles and names additions — only within your catalogue.Read the state of an order and change it while that is still possible.
order_status reads the state — and by default still requires a confirmation, because it is a personal matter.order_change changes address or line item; writing, so never automatic.Create leads, look up activities, record callback requests.
crm_lead creates the lead in structured form: writing, with confirmation.crm_activities reads the recent activities for a customer — reading, and here too the visitor is asked first by default.callback_note records a callback request instead of filling in a form.lead additionally sends the details as a message to the inbox, with a file attachment on request.Open a case or hand the conversation to a person.
ticket_create opens the case and returns the number under which it runs at your end.handoff sets the conversation to escalated, creates a lead and notifies the company.A basket your shop can fetch through an integration of its own, and entries in a form on your site — both only once the visitor confirms.
cart puts together a basket in the chat, changes quantities, removes lines and takes voucher codes. The basket is held by XICBOT, not by your shop; your shop fetches it with a pickup token through a read-only pickup address, and XICBOT puts nothing into your shop's basket.cart is classed as irreversible and therefore never runs without confirmation. Whether your shop redeems a voucher passed along with it is decided by the shop.form_fill pre-fills a form you have designated on your site — only the mapped fields and only once the visitor has confirmed the values. It is submitted only if you allow submitting and the visitor agrees.For systems that have no ready-made connector.
http calls a stored address; the field schema is defined during setup.What is listed here is the shipped scope: ready-made connectors that we point at your system. Everything beyond that — configurators, calculations, multi-step flows, providing files — can be defined as a custom action, with its own key, its own field schema and an address your system serves. That is setup work, not a switch; how such an action comes about is described under Custom functions.
12 requests per minute
cap per visitor on the public widget interface
applies per visitor and assistant; that allows one question every 5 seconds, and the series waits 5.5 seconds to keep clear of our own brake
Every action has a rule: automatic or after confirmation. Which of the two applies is decided by its kind. Reading means the call fetches information and changes nothing; only there is automatic selectable at all. Writing means it triggers an operation — and therefore always lands on confirmation. That is not decided in the conversation but forced when the tool is created or changed, even when the request asks for something else.
Free slots, stock levels, a price from the catalogue, a customer's recent activities.
Enter an appointment in a connected calendar, create a lead, open a ticket, note a callback, change a delivery address.
Beyond kind and approval mode, every tool carries a minimum role: visitor in the public chat, signed in, Administration or Owner. It is checked twice — before the tool is offered to the model at all, and again after the visitor has confirmed. In the public chat on your website the lowest level applies, and a login running alongside in the browser does not raise it.
Which actions make sense depends on your business. The selection below shows what a XICBOT assistant can take over through tool control — and in what form. Ready connector means the action exists as a building block and is pointed at your system; the name behind it identifies the building block it is based on. Custom action means it is defined for you, with its own field schema and an address your system serves. Both are setup work, the effort differs.
calendar_availability, calendar_booking)order_status)inventory_status)cart)price_lookup)crm_lead, lead)ticket_create, handoff)callback_note)form_fill)cart, product_search)A tool belongs to exactly one assistant, not to the account: the key on the left is the boundary within which an action exists at all.
Two assistants of the same company can therefore carry different tool lists — sales a different set from support.
The month's allowance sits beside it because it has a say: once largely used up, the cap drops to a single tool round per answer.

An approval is not a sentence in the conversation but a step of its own with a display of its own. A call requiring confirmation executes nothing at first: it ends in the state proposed, and the visitor gets a card carrying the sentence that names the act, the real values, and two buttons beneath. This preview text is stored when the proposal is created and not rebuilt later — what appears in the log is the same wording the visitor read.
After the click nothing is executed blindly. Role and required fields are checked again, not only beforehand. The move from proposed to confirmed runs as a conditional database write: two simultaneous clicks execute once, the second is reported as a duplicate rather than an error. The same holds for declining. The lock therefore sits in the database and not in an interface that can be worked around.
Every call leaves a line — the executed one, the declined one and the failed one. It carries tool, input after trimming, result, duration, approval path and state. If a call fails, no result is stored but the shortened error text: nothing should appear in the log that never came back. For the same reason the model is instructed never to name a result it has not seen.
Between the visitor's sentence and the line in the log there are seven steps. They run the same way for every call, reading or writing — the path forks at one point only.
It is only offered what is registered for this assistant, active, and callable by the conversation's role. If the list is empty, no tool field goes out at all — a muted conversation receives none either.
Anything not in the field schema drops out. Account, tenant and customer identifiers are blocked as field names: the model cannot set them, even if it tries.
Not afterwards. If a required field is missing, nothing is executed at all. A tool name that does not exist for this assistant ends as a failed call with a message of its own.
Reading and explicitly automatic: the call runs. Everything else ends as a proposal for now and executes nothing. The model gets this back as a note, not as a result — so it cannot pretend that something has already happened.
With the stored preview sentence and the real values. The adapter that later executes only gets to see tool, input, conversation key and one-time key — not the sentence with which the visitor triggered the call.
Proposed to confirmed, as a condition in the database. Role and required fields are then checked again, and only then does the call go outwards: one route, a target check on the resolved addresses, a deadline of a few seconds, a size cap.
Down to the fields the adapter names as its result, and shortened. Duration, approval path and state go into the line. An answer carries no more than five calls: the sixth is not executed but logged as capped, and the visitor reads a sentence of its own rather than an internal counter mark.
The admin area executes nothing itself. The tool run is the only route on which an action is executed; there is no second entrance that bypasses the approval.
Honest limits
A tool that may do anything would be a tool nobody wants to entrust with anything. The points below are not open building sites but settled decisions. They are here because they answer the question that comes first with writing actions: what can go wrong, and what happens then?
Customer:Please cancel my appointment on Thursday.
Assistant:The preview sentence names the act. Cancelling, rescheduling or requesting each appear there as a sentence of their own, so there is no doubt about what the click will do.
Customer:Decline — I would rather move it after all.
Assistant:Then the appointment stays as it is. A declined proposal executes nothing; it ends in the state declined and remains as a line. Which day shall I move it to?
Customer:Friday morning, if anything is free.
Assistant:The calendar did not answer in time. I will therefore not quote you any slots: a call that did not come back has no result I could pass on. Shall I hand this over to a person?
An action is named quickly and secured slowly. The effort does not sit in the number of tools but in the field schema, in the target check, and in the sentence the visitor reads before clicking.
In the initial consultation we clarify which of your systems provide an interface, which operation is reading and which is writing, and which should run without asking back at all. As a rule, systems that provide an interface can be connected.
Every action gets a key, a title, a description for the model and a schema with the permitted fields including required ones. What is not in the schema does not reach your system — not even if the model wanted to send it along.
Reading or writing, automatic or after confirmation, callable from which role upwards. Writing is set to confirmation; what the base shape itself demands cannot be switched off in the admin area.
Address, access token, deadline and size cap. The resolved addresses are checked before every call, not merely the name. The stored access token can be replaced afterwards but not read back out. Embedding into your website runs through a snippet, details under Integration and embedding.
Before anything goes live we read together what the visitor gets to see before clicking. That sentence decides whether a confirmation is a real decision or merely a button: it names the act and the values it will be carried out with.
We run every operation once before going live, including the failure path. After that we take over hosting in Germany, care and updates. In the log you see which calls were executed, declined, failed or stopped at the cap — and from that follows which action is added next.
What you decide and what we build can be separated cleanly: the list of actions, the approval rule per action and the wording of the preview sentences are your decision. Field schema, connection, target check and log are our work.
With tool control the work does not sit in the chat but at the edges: which action may the assistant trigger, which fields does your system see, and which response fields may return to the conversation. Those three questions determine the effort, not the number of tools.
What stays the same on every tier: writing never receives automatic approval, every call is in the log before it runs, and at most five calls are possible per answer — the sixth is recorded as capped rather than silently dropped.
from 4,900 € net setup
Minimum term: none, cancellable monthly
All prices net, plus VAT Source: XICBOT price list, as of 11 September 2026
Tool and API control belongs to the Individual package: a one-time setup from 4,900 € net, with operation according to scope of the connected systems and actions. Included are the connection of your systems through defined actions, reading and writing operations with approvals, the log and ongoing care. All packages at a glance under pricing. In the initial consultation we first clarify which of your systems have an interface and which operation is a writing one — that is what the effort depends on, not the number of tools. Ongoing services are bookable individually and cancellable monthly; there is no minimum term.
Name your tools — calendar, CRM, inventory or ticketing. We check the interfaces and propose suitable actions together with the matching permissions.
The difference between an assistant that answers and one that acts shows up not in its wording but in what exists after the conversation: a transcript, or an operation.
The right-hand column does not describe a different assistant but the same one with approved tools. The difference lies in the approval and not in the model: with no approved tool, no tool field goes out to the model at all.
Starting with reading costs you nothing. The same build form carries the writing case later; what changes is the approval path — automatic becomes confirm, and before execution there is a sentence for the visitor to read.
The most common worry about writing actions goes: the model decides, and nobody knows beforehand what it will decide. That worry is justified — which is why the model's latitude is narrower than the frame you set. Both are placed side by side here.
The frame is your decision, not ours. Would you like to know which of your systems can be connected and which actions bring the greatest benefit? In the initial consultation we go through your operations and state for each whether it is reading or writing — that is the decision everything else hangs on.
The technical side is covered in the AI assistant controls your tools with examples of actions and permissions. Why write actions in particular need careful safeguarding is described in prompt injection: securing AI assistants. Which test cases make sense before go-live is listed in acceptance and test cases.
Six questions come up with tool control regularly — and half of them are not about the technology but about trusting that nothing happens unbidden.
Tool control means the assistant does not only read your connected systems but also operates them. Seventeen forms are available: seven in the core — capture a request, take an appointment request, hand over to a human, search the catalogue, put together a cart in the chat, query an external system, pre-fill a form on your site once the visitor confirms — and ten for calendar, inventory, catalogue, customer management and ticketing; querying an external system and these ten come in the Custom package. Every tool is registered as reading, writing or irreversible; confirmation is the default. Anything that does more than read is first shown as a proposal, and only a click by the visitor carries it out. Every call is then recorded in the log, with input, result, duration and the path by which it was approved. How your own processes can be mapped is shown on custom functions.
Ten shapes ship with the product in the Custom package, covering five areas: calendar, inventory management, catalogue, customer management and ticket system — plus a general tool for any read-only interface. That covers your shop based on Shopware in the Community Edition, order and stock enquiries, free slots and bookings, price lookups, customer creation, activities, callback notes and opening a case. Each of these shapes is remote and needs a stored address; reading ones may run automatically, writing ones ask before execution. Internal addresses are blocked and redirects are not followed. In the initial consultation we check which interfaces exist and connect the matching actions. How the assistant technically reaches your website is described under integration and embedding.
The frame around it is tight and anchored in the code. The assistant calls only tools you have entered and switched to active; there is no open access to your systems. Anything that writes is forced to confirmation when created or changed, no matter what the request says — without confirmation only something that reads and is explicitly set to automatic will run. Every call leaves a log row that is written before execution and knows seven states, from proposed to deadline exceeded. A one-time key made of conversation, tool and sorted input prevents double execution, and a missing required field prevents execution altogether. At most five calls run per answer. More under tool control.
Permissions are the heart of tool control. The assistant is offered only what is active and what the role of the conversation is allowed to call; a muted conversation gets no list at all. Every tool carries a kind — read, write or irreversible — and an approval mode: automatic or only after confirmation, with confirmation as the preset. This way an availability query runs without a prompt, while a cancellation runs only after explicit consent. Kind and schema come from the register and not from the request, and one answer carries at most five tool calls. Hosting is in Germany and the answers are generated by a specialised model provider, also outside the EU on the basis of standard contractual clauses; details under privacy and hosting.
It takes appointment requests and captures leads; both are built-in tool types. The appointment type takes appointment requests, reschedules and cancels; all three acts live in one tool, the kinds of appointment on offer come from your own list, and a request becomes an appointment once your business confirms it. The lead type writes name, email, phone and request into your company inbox and attaches files uploaded earlier in the conversation. If the record should go into an external customer management system instead, the crm_lead adapter takes over in the Custom package, writing and requiring confirmation. In the Custom package, two events go out to an event receiver along the way: lead.created and appointment.requested. More under booking assistant and lead assistant.
Tool and API control belongs to the Custom package: a one-time setup from 4,900 € net, with operation according to the scope of the connected systems and actions. Included are the connection, reading and writing actions with permissions, hosting in Germany and care. Seven tool types are available in the core: lead, appointment, handover, product search, cart, a freely configurable HTTP action and pre-filling a form on your site once the visitor has confirmed the details. Lead, appointment request and cart carry a one-time key made of conversation, tool key and sorted input, so that a repeat does not create a second record. We estimate the scope without obligation in a free initial consultation; all packages are listed under pricing. All services can be cancelled monthly; there is no minimum term.
It puts together a cart in the chat that sits with XICBOT, not in your shop; checkout and payment stay in your shop. The cart tool type knows six kinds of change — set, add, update, remove, clear and coupon — with at most 99 units per position; the chosen variant belongs to the position. In the chat this becomes a card with line items, total and a shipping line. Because changing is a write operation, it does not run unconfirmed: the proposal stands in plain text, only the click executes it, and a double click does not change anything twice. The total is calculated with the current price from your shop based on Shopware Community Edition; if the shop cannot be reached, with the last synced price and its date. “Continue” opens your shop's stored address with a one-time pickup key that lets your shop fetch the cart from XICBOT through a read-only pickup address; your shop has to integrate that pickup itself. No order, customer account or checkout is created in the shop by this. More under cart assistant.
If something remains open, it usually concerns your system rather than ours. Such questions we would rather answer in conversation than in a paragraph that has to fit everyone.
Possible step by step
You do not have to choose between information and action. An assistant can start with reading actions — stock, price, free slots — and gain writing ones later, once you have seen in the log how the first ones behave. That order costs nothing extra and takes the unknown out of the writing action. Request a free demo
Tell us which systems you use and which operations the assistant should take on — appointments, leads, orders or internal tools. You receive a clear assessment and, on request, a free demo. You can reach us by phone at +49 5123 9579000.