Features
Import your API
Import your OpenAPI description and choose which operations a flow may use. Credentials stay in a vault.
The problem Connecting a bot to your systems takes months of custom work.
How it works Import your OpenAPI description and choose which operations a flow may use. Credentials stay in a vault.
What you get Your own API behind a chat, without writing an integration.
Flow builder
Build a flow, try it in the test chat, and read the transcripts of real conversations.
The problem You can’t see what a bot will do until a customer finds out.
How it works Build a flow step by step, try it in the test chat, and read the transcripts of real conversations.
What you get Bots you have tested before your users meet them.
Confirm before every change
Anything that changes data is shown to the user and waits for their yes.
The problem A bot that acts on its own can change the wrong order.
How it works Anything that changes data is shown to the user and waits for their yes.
What you get No change happens without the user’s say.
Read more: Confirm before every change
Guarded against injection
What an API returns can’t widen what the model is allowed to do.
The problem Text returned by an API can trick a model into doing more than it should.
How it works What an API returns can’t widen what the model is allowed to do: a flow runs only its allowed operations.
What you get The bot stays inside the lines you drew.
Read more: Guarded against injection
Arabic and right to left
Designed in from the start, and checked in the browser and on devices.
The problem Arabic is bolted on later, and right-to-left breaks.
How it works Arabic and right to left were designed in from the start, and are checked in the browser and on devices.
What you get A bot that reads naturally in both languages.
Read more: Arabic and right to left
Apps and keys
One key per app, so each app’s chat is its own and can be revoked on its own.
The problem One leaked key exposes every app.
How it works Each app has its own key, so its chat is its own and can be revoked on its own.
What you get A problem in one app stays in that app.