Skip to main content
Skip table of contents

IVR Aggregated Activites API Guide


The objective of this guide is to explain how IVR apps can push IVR aggregate activities into Expertflow CX.

Intended Audience

The guide is aimed for IVR developers who are familiar with REST APIs and want to integrate with Expertflow CX.

Quick Links


The rest endpoint to push the IVR Aggregated Activity into Expertflow CX solution. This API uses standard verbs and return HTTP response codes.

Client must trigger this API when a call/dialog ends on an IVR.

API Request

URI Structure

POST <fqdn>/ccm/message/receive

Sample Request body


    "id": "<messageId>", // required
    "header": {
        "channelData": {
            "channelCustomerIdentifier": "<customer-number>", // required
            "serviceIdentifier": "1218", // required and a voice channel must exists in unified-admin for this service identifier
            "additionalAttributes": [ // Call variables
                    "key": "callVariable1",
                    "type": "String2000",
                    "value": "42225"
                    "key": "callVariable2",
                    "type": "String2000",
                    "value": ""
        "language": {},
        "timestamp": 1680692114700, // required
        "securityInfo": {},
        "stamps": [],
        "intent": "IVR_AGGREGATED_ACTIVITY", // required and must pass same value in request
        "entities": {},
        "sender": { // required
            "id": "f1370ff7-43fa-496e-9966-e64061d35f5c",  // required
            "senderName": "MY-IVR", // required 
            "type": "IVR", // required
            "additionalDetail": {}
    "body": {
        "type": "IVR_AGGREGATED_ACTIVITY", required and must pass same value in request
        "callId": "1234",  // the id of finesse/CX-voice call id
        "leg": "",         
        "startDirection": "INBOUND", //required 
        "endDirection": "DIALOG_ENDED | TRANSFER", // Set DIALOG_ENDED if call is dropped on IVR or TRANSFER if call is transferred to an agent
        "startTime": 1680692114700, // unix timestamp (long)
        "endTime": 1680692114700, // unix timestamp (long)       
        "activities": [{             // IVR menus customer has visited during this call.
            "menu": "Main",
            "selection": "Billing",
            "timestamp": "1680692114700",
            "metadata": {}
        "additionalAttr1": {},
        "additionalAttr2": {}

Possible Responses

Response CodeDescription


Code 202 means that the message has been accepted.


Code 400 is sent in case request payload is not valid.

500Internal server error
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.