I recently got a chance to work on a Kore.AI to ECE integration project and I did a deep dive into how you could integrate a 3rd party chat service into ECE. Below you’ll find the steps required to start a chat via Postman using the ECE API, see messages being sent by the agent, and finally have a conversation. What you’ll need before you get started:
- pa access to ECE.
- Configured new trigger or a trigger that is not in use.
- Web server accessible to your ECE app server to send web hooks to.
Step 1: Configure your web hook authentication.
- Login to pa. Drop down to Partition and select Integration, then Authentication under External App.
Authentication Type: Basic and OAuth2.0
Step 2: Register a new application
- Login to pa. Drop down to Partition and select Integration, then Register Applications under External App.
- Fill out the details for your application.
- Capture the key and secret that are automatically generated.
Step 3: Configure or re-use an existing Entry Point
- Under Service, Entry Points under Chat & Messaging. Ensure the Entry Point is set to active.
- Make sure to capture the EP number, you might have to look at the chat URL to get that. It’s in bold in this example URL: https://<FQDN>/system/templates/chat/aria/index.html?subActivity=Chat&entryPointId=1004&templateName=aria&ver=v11&locale=en-US

Step 4: Configure Messaging Adapter and Associate Entry Point.
- Go to Messaging Adapters under Chat & Messaging. Create a new adapter and select your registered application and entry point.

At this point you have everything you need to test your integration with Postman. The next steps are going to walk you through the following:
- Login to ECE with your app key and secret.
- Validate that your login actually worked by getting information about the entry point your application is associated to.
Step 5: App login
Request:
Method: POST
URL: https://<FQDN>/system/ws/v19/clientapplications/authentication/oauth2/token?forceLogin=yes
Headers:
Authorization: Basic <Base64EncodedKey:Secret>
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Accept-Language: en-us
Body: x-www-form-urlencoded: grant_type=client_credentials
Response:
{
"access_token": "d0a2695d-b478-47d4-aad1-e28aa6661c15",
"expires_in": 86400,
"token_type": "Bearer"
}
Step 6: Validate that your access_token works.
Request:
Method: GET
URL: https://<FQDN>/system/ws/v19/clientapplications/messaging/configuration?entrypoint=<YourEntryPoint>
Headers:
Authorization: Bearer <access_token>
Accept: application/json
Body: x-www-form-urlencoded: grant_type=client_credentials
Response:
{
"entryPointConfiguration": [
{
"entryPoint": {
"id": <YourEntryPoint>
},
"lastModified": {
"date": "2025-03-24T00:59:14.000Z"
},
...
}
Step 7: Start a conversation
Request:
Method: POST
URL: https://<FQDN>/system/ws/v19/clientapplications/messaging/conversation/start?sendTypingNotification=yes&searchContactOnAttribute=email.emailAddress
Headers:
Authorization: Bearer <access_token>
Accept: application/json
Content-Type: application/json
Body:
{
"entryPointConfiguration": {
"entryPoint": {
"id": "{{entryPointId}}"
},
"lastModified": {
"date": "{{lastModifiedDate}}"
}
},
"activity": {
"customer": {
"type": {
"value": "individual"
},
"contacts": {
"contact": [
{
"firstName": "David",
"lastName": "Macias API",
"phone": [
{
"type": {
"value": "home"
},
"phoneNo": "2145555555",
"countryCode": "1",
"areaCode": "214"
}],
"email": [
{
"emailAddress": "david@davidapi.com"}]}]}}}}
Response:
{
"activity": {
"case": {
"id": 1971
},
"id": 3032
},
"id": "1ff6d-4d78-4406-966d-e948c4"
}
Step 8: Web hook showing an agent accepted the chat and sent an initial message, since our chat request asked for chat notifications we’ll have 3 web hooks in total.
#1 Agent assigned.
method:POST
message[1]
conversation{1}
id:1ff6d-4d78-4406-966d-e948c4
type{2}
value:assigned
user{2}
name:1 Agent
screenName:agent1
content:You are now chatting with agent1
sender{1}
type:system
timeStamp:1742834034000
id:4844574856
POST
conversation{1}
startTyping
user
1 Agent
7810389974
#3 Agent is first to respond in chat as well as the end typing message.
method:POST
conversation{1}
id:1ff6d-4d78-4406-966d-e948c4
type{1}
value:endTyping
sender{2}
type:user
user{2}
name:1 Agent
screenName:agent1
timeStamp:1742834050000
id:7111400674
1{6}
conversation{1}
id:1ff6d-4d78-4406-966d-e948c4
type{1}
value:text/html
content:Howdy.
sender{2}
type:user
user{2}
name:1 Agent
screenName:agent1
timeStamp:1742834050000
id:1692527591
Method: POST
URL: https://<FQDN>/system/ws/v19/clientapplications/messaging/sendmessage
Headers:
Authorization: Bearer <access_token>
Accept: application/json
Content-Type: application/json
Body:
{
"conversation":{
"id":"{{conversationId}}"
},
"type":{
"value":"text/html"
},
"content":"How are you agent?"
}
You must be logged in to post a comment.