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
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.
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.
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.
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}.
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
| Setting | What 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?
What exactly do you send to my server?
How do I get the customer's value into my URL?
What should my server send back?
What happens if the customer gives a number that does not exist?
Can I limit what the customer is allowed to enter?
Ready to end the chaos?
Unify your messages, automate the repetitive questions, and turn conversations into revenue — starting today.
Get Started