AI chatbot

Answer with live data from your own systems

Tools calling lets the chatbot call your API in the middle of a conversation, read what comes back, and use it in its reply. The customer asks about their order, and the bot gives the real answer rather than a general one.

Training teaches the chatbot things that stay the same. Tools calling covers what changes by the minute: an order status, a tracking number, a booking. It is an advanced feature and needs custom code on your server, so plan it with whoever looks after your systems.

Step by step

1

Decide where the lookup belongs

Tools calling is used by Q&A and by Flows. Put it in a Q&A when a single question needs a live answer, and in a flow when the lookup is one step of a longer conversation path.

2

Point it at your endpoint

In URL, enter the address of the API endpoint that will answer the request. In Headers, add any key:value pairs your endpoint needs. In Q&A the headers are comma-separated; in flows you add them one by one.

3

Define what the customer must give you

Properties are the values the chatbot has to collect before it can call you, for example a city or a tracking number. If the possible values are known in advance, list them under Allowed values so the bot stays inside that set.

4

Read the request on your server

We send your server this shape: {"sb":{"user_id":"123","conversation_id":"123","user_language":"es"},"arguments":{}} — as a JSON body for POST, and as a header for GET. Each argument key is the property name in kebab case, so "Order Number" arrives as order-number. You can also place a value straight into the URL with a merge field, for example {order-number}.

5

Return JSON the chatbot can use

Your server must reply with JSON containing the values you want the bot to speak from, for example {"order_status":"Delivered 2 hours and 25 minutes ago","success":true}. Include "success": true only when the request genuinely succeeded.

Settings reference

SettingWhat it does
URL The address of your API endpoint that the chatbot calls.
Headers Key:value pairs sent with the request, comma-separated in Q&A and added one by one in flows.
Properties The values the user must supply before the call can be made, such as a city or a tracking number.
Allowed values Restricts a property to a known set of options instead of free text.

Good to know

"success": true is a promise, not a formality

Only return it when the request really worked. If the order number is invalid or nothing was found, leave it out so the chatbot does not present a failure as an answer.

Argument names change shape

Property names arrive in kebab case, so "Order Number" becomes order-number. Match that spelling in your code and in any merge field you put in the URL.

GET and POST receive the data differently

For POST, the payload arrives as a JSON body. For GET, it arrives as a header. Check which method your endpoint uses before you start reading the request.

You get context with every call

The request includes user_id, conversation_id and user_language, so your endpoint knows who is asking and in which language.

This one needs a developer

Tools calling is an advanced feature. The panel side is short, but something on your server has to receive the request and return the JSON.

Common questions

Where can I use tools calling?
In Q&A and in Flows. Both can call your endpoint and use the result in the reply.
What exactly do you send to my server?
A payload in this shape: {"sb":{"user_id":"123","conversation_id":"123","user_language":"es"},"arguments":{}}. It is a JSON body for POST requests and a header for GET requests.
How do I get the customer's value into my URL?
Use a merge field with the property name in kebab case, for example {order-number}. The value the customer gave is placed there before the call is made.
What should my server send back?
JSON containing the values you want the chatbot to use, such as {"order_status":"Delivered 2 hours and 25 minutes ago","success":true}.
What happens if the customer gives a number that does not exist?
Omit "success": true from your response. That flag belongs only in replies where the request genuinely succeeded.
Can I limit what the customer is allowed to enter?
Yes. If you already know the possible options for a property, put them in Allowed values.

Ready to end the chaos?

Unify your messages, automate the repetitive questions, and turn conversations into revenue — starting today.

Get Started
Plans from $7/month · Cancel anytime