Overview
Cekura tests Kore.ai voice agents over the phone. Cekura dials the number attached to your Kore.ai flow, runs the scenario as a simulated caller, and then uses the Kore.ai public APIs to find that session and fetch its conversation history. The result shows the transcript as recorded by Kore.ai, with every service-node (integration) call the flow made shown inline as a function call.This guide covers voice testing over telephony. Kore.ai chat testing uses a separate Web Client API key under Kore.ai Chat Settings and is not covered here.
Prerequisites
- A Kore.ai Contact Center AI app on the XO Platform, with the flow you want to test.
- A phone number added to that app and attached to the flow.
- An API scope mapping for the app (created below) that lets Cekura read sessions, chat history, and debug logs.
Set up Kore.ai
1
Create the app
In the Kore.ai XO Platform, create a Contact Center AI app (or open the one that already contains your voice flow).
2
Attach a phone number to your flow
Open Telephony for the app, add a phone number, and attach the flow you want to test. This is the number Cekura will dial.
3
Create an API scope mapping
Open Dev Tools → API Scopes and create a new mapping for the app. Set the JWT signing algorithm to HS256 and enable these scopes:
Other signing algorithms are not supported. Cekura signs its requests with HS256 using the client secret from this mapping.
4
Copy the credentials
From the mapping, copy the Client ID and Client Secret. Also copy the App ID of the app (it starts with
st-; the Client ID starts with cs-). Store the secret before leaving the page.Connect Kore.ai in Cekura
1
Select Kore.ai
In Cekura, go to Agents, create an agent, and select Kore.ai as the provider. If you don’t see it, click More options to expand the full provider list.

2
Enter the Kore.ai credentials
Fill in the fields under Integration Settings:

3
Add the phone number
Under Connections, turn on Telephony, then enter the Kore.ai phone number attached to your flow under Telephony Settings. Leave Inbound on so Cekura dials your number.

4
Save the agent
Save the agent. The secret field shows Client Secret Configured once it is stored; use Update to rotate it later.

Run a test
Open an evaluator, click Run, and start the run using the Telephony connection. Cekura dials your Kore.ai number and plays the scenario as the caller. When the call ends, Cekura:- Looks up the app’s sessions that started within a short window around the time Cekura placed the call.
- Fetches the chat history of each candidate and confirms the match by comparing timing and conversation content, so parallel test calls to the same number are each paired with the right Kore.ai session.
- Fetches the debug logs for the matched session.
- Replaces its own transcript with the Kore.ai one and attaches the Kore.ai session ID to the result.
If Cekura cannot find a matching session, the result keeps Cekura’s own transcript of the call. See the troubleshooting section below.
Troubleshooting
- Authentication fails: check that the API scope mapping uses HS256, and that the Client ID and Client Secret come from the same mapping. The Bot ID must be the App ID (
st-...) of the app that owns the mapping. - No Kore.ai transcript on the result: make sure the mapping has the App Sessions and Chat History scopes, and that the number under Telephony Settings is the one attached to the flow you tested.
- Transcript present but no Function Call entries: add the Debug Logs scope to the mapping. Without it Cekura still imports the conversation but cannot see the flow’s service-node calls.
- Host errors: if you set Kore.ai Host, enter only the domain, for example
platform.kore.ai.
Configure through the API
When creating or updating an agent through the API, set the provider tokoreai and pass the credentials:
"host" to koreai_data only if your account runs on a dedicated Kore.ai host. The response never returns the secret. Use the read-only koreai_client_secret_configured field to check whether one is stored.