Document toolboxDocument toolbox

API Reference

The ECM REST APIs allow to configure campaigns, strategies and insert contacts to a campaign. It currently supports the following functions:

  • Manage Campaigns
  • Upload Contacts to campaigns
  • Insert DNC callers
  • Manage campaign strategies 


On this page:

Login

This API is used to get an access token that will be used as a bearer token in the rest of the APIs for authentication/authorization. This API also returns license and user details

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/api/login

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Body

  • username (required): The username to login to ECM
  • password (required): The password to login to ECM

Example Request

Example Request
{
  "username":"admin",
  "password":"admin"
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
{
  "license":"valid",
  "licStatus":"trial",
   "licensedTo":"KPMG",
   "creationDate":"2019-09-16T19:00:00Z",
   "expiryDate":"2022-10-16T19:00:00Z",
   "supportExpiryDate":null,
   "numberOfAgents":5,
   "valid":true,
   "userDetails":{
     "id":1,
     "username":"admin",
     "userId":null,
     "email":null,
     "fullName":"Administrator",
     "type":"DB",
     "isActive":true,
     "profileExists":false,
     "lastLogin":"Fri Jun 11 13:40:55 PKT 2021",
     "lastUpdated":"1623400855424",
     "dateCreated":"1615193443313",
     "createdBy":null,
     "updatedBy":null,
     "profilePicture":null,
     "roles":[{
       "id":1,
       "name":"Administrator",
       "description":"Administrator Role",
       "permissions":null}]},
     "token_type":"Bearer",
     "token":"JWT-TOKEN",
     "expires_in":36000,
     "refresh_token":"JWT-REFRESH-TOKEN"
}

Campaign

Get Cisco Campaigns

This API fetches the Cisco campaigns from UCCE/UCCX.  A campaign from this list can be choosen to associated with ECM campaign in campaign create API

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/fetchCiscoCampaigns

AuthorizationBearer token retrieved from login API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Parameters


HTTP Request

-

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

In case of CCE: 

Example Response
[
 {
  "ciscoCampaignId": "5001",
  "ciscoCampaignName": "IVR_based",
  "ciscoTableName": "DL_5002_5002",
  "ciscoFileName": "test.txt",
  "ciscoFilePath": "//Sprawler/import/",
  "campaignType": "0"
 }
]

In case of CCX response:

Example Response
[
 {
  "ciscoCampaignId": "5001",
  "ciscoCampaignName": "IVR_based"
  "campaignType": "0"
 }
]

Create campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/createCampaign

Authorization Bearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Body

  • startTime (required): This is the start time of the campaign
  • endTime (required): This is the end time of the campaign
  • name (required): This is the name of the campaign.
  • description (optional): This is the optional description of the campaign 
  • strategyId (required): This is the ID of the strategy attached to the campaign.
  • type (required): This is the type of ECM campaign. This can be one of the following: i) IVR ii) Agent iii) None  where 0 = IVR, 1 = Agent and -1 = NONE
  • crmCampaignId (optional): This is the ID of the CRM campaign attached to this campaign.
  • ciscoCampaignId (required): This is the ID of the Cisco campaign attached to this campaign
  • weekDays (required): Select on which days of the week the campaign should run. The expected values are between 0-6 where 0 = Sunday and 6 = Saturday.
  • enabled (required): This is the status of the campaign. The expected value is either true OR false 
  • description (optional): This is an optional description of the campaign.
  • SMS template (optional): This is the template SMS that is attached to this campaign. This SMS is used for any SMS attempts in the strategy.

HTTP Request

Example Request
{
 "startTime": "22:10",
 "endTime": "22:23",
 "name":   "sample_campaign",
 "description": "details",
 "strategyId": "22",
 "status": "1",
 "type": "0",
 "crmCampaignId": "crm_campaign_1",
 "ciscoCampaignId": "5001",
 "weekDays": "0,1,2",
 "enabled": true,
 "description": "details",
 "smsTemplate": "sms-template"
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response
Example Response
{"id": "2",
 "crmCampaignId": "crm_campaign_1",
 "ciscoCampaignId": "5001",
 "ciscoCampaignName": "IVR_based",
 "smsTemplate": "sms template",
 "description": "details",
 "enabled": true,
 "endTime": "22:23",
 "strategyId": "22",
 "name": "sample_campaign",
 "startTIme": "22:10",
 "status": "1",
 "type": "0",
 "lastUpdated": "2018-11-14T11:01:42Z",
 "dateCreated": "2018-11-14T11:01:42Z",
 "weekdays": "0,1,2"
}

Create Campaign by Skill Group

This API is used for creating a campaign in ECM using a UCCE skill group. The skill group name passed is JSON is used to associated UCCE campaign with ECM campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/createCampaignBySkilllGroup

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Body

  • crmCampaignId (optional): ID of the CRM campaign which needs to be associated with this ECM campaign
  • name (required): This is the name of the ECM campaign
  • description (optional): This is the description of the ECM campaign
  • dialerType (optional): This is the dialing mode of the Cisco campaign which is supposed to be mapped with this ECM campaign. 
  • skillGroup (required): This is the CCE Skill Group attached to the associated Cisco campaign. 
  • enabled (required): This is the status of the campaign. The expected value is either true OR false 
  • endTime (required): This is the end time of the campaign execution. Once this time reaches, the campaign stops automatically. 
  • startTime (required): This is the start time of the campaign. 
  • strategyId (required): This is the ID of the strategy attached to this campaign.
  • type (required): This is the type of the ECM campaign. This can be one of the following: i) IVR ii) Agent iii) None  where 0 = IVR, 1 = Agent and -1 = NONE
  • weekDays (required): Select on which days of the week the campaign should run. The expected values are between 0-6 where 0 = Sunday and 6 = Saturday. 
  • SMS template (optional): This is the template SMS that is attached to this campaign. This SMS is used for any SMS attempts in the strategy.

HTTP Request

Example Request
{
    "crmCampaignId":"1122",
    "name": "Agent_Camp",
    "description": null,
    "dialerType":"PREDICTIVE",
    "skillGroup": "skillGroupName",
    "enabled": true,
    "endTime": "23:30",
    "startTime": "00:00",
    "strategyId": 2,
    "type": 0,
    "weekDays": "0,1,2,3,6",
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
{"id": "2",
 "crmCampaignId": "1122",
 "ciscoCampaignId": "5001",
 "ciscoCampaignName": "IVR_based",
 "dialerType":"PREDICTIVE",
 "skillGroup": "skillGroupName",
 "smsTemplate": "sms template",
 "description": null,
 "enabled": true,
 "endTime": "23:30",
 "strategyId": "2",
 "name": "Agent_Camp",
 "startTime": "00:00",
 "status": "1",
 "type": "0",
 "lastUpdated": "2018-11-14T11:01:42Z",
 "dateCreated": "2018-11-14T11:01:42Z",
 "weekdays": "0,1,2,3,6"
}

Update Campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/update

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

PUT

Input/Output Format

JSON

Request Body

  • id: ECM campaign ID OR
  • crmCampaignId: CRM campaign ID associated with the ECM campaign

HTTP Request

Example Request
{
 "id":1
 "name":"updated name"
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Complete Campaign object with the updated values

Get Campaigns List 

This will return the complete list of campaigns 

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Body


HTTP Request

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
[
{"id": "2",
 "crmCampaignId": "crm_campaign_1",
 "ciscoCampaignId": "5001",
 "ciscoCampaignName": "IVR_based",
 "smsTemplate": "sms template",
 "description": "details",
 "enabled": true,
 "endTime": "22:23",
 "strategyId": "22",
 "name": "sample_campaign",
 "startTIme": "22:10",
 "status": "1",
 "type": "0",
 "lastUpdated": "2018-11-14T11:01:42Z",
 "dateCreated": "2018-11-14T11:01:42Z",
 "weekdays": "0,1,2"
},
...
]

Delete campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/delete?id=1

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

DELETE

Input/Output Format

JSON

Request Parameters

  • id: ECM campaign ID OR
  • crmCampaignId: CRM campaign ID associated with the ECM campaign

HTTP Request

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response


Pause Campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/pause?id=1

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Parameters

  • id: ECM campaign ID OR
  • crmCampaignId: CRM campaign ID associated with the ECM campaign

HTTP Request


HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Campaign with id 1 successfully paused

Resume Campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/campaign/resume?id=1

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Parameters

  • id: ECM campaign ID OR
  • crmCampaignId: CRM campaign ID associated with the ECM campaign

HTTP Request

-

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Campaign with id 1 successfully resumed

DNC (Do Not Call)

This resource is used to update the DNC list in ECM so that the system does not dial contacts that are present in the DNC list. 

Get DNC Contacts

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/contact

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Parameters


HTTP Request


HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
[
  {
    "id": 1,
    "name": "David",
    "updateById": 1,
    "primaryNumber": "03062558180",
    "dataCreated": "2019-07-31T12:02:09Z",
    "lastUpdated": "2019-07-31T12:02:09Z"
  },
...
]

Upload Single Contact to DNC

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/contact/save

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Body

  • name (optional): This is the name of the contact
  • primary number (required): This is the phone number of the contact 

HTTP Request


Example Request
{
  "name": "David",
  "primaryNumber": "03062558180"
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Delete Contact from DNC

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/contact/delete?id=1

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

DELETE

Input/Output Format

JSON

Request Parameters

id: This is the id of the DNC contact in the DNC list

HTTP Request

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Bulk Upload Contacts to DNC

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/contact/uploadCsv

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Body

File: A CSV file as an attachment, multipart file

The File format should be the following:

contact-number,optional-name

HTTP Request

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Upload Contacts in a campaign

This API is used to push contacts to an ECM campaign for making calls or sending messages.

Upload Single contact

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callback/insertCallback


Bearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

HTTP Request

{
  "crmCampaignId": 1232Dce,
  "campaignId": 1,
  "phone1": "string",
  "phone2": "string",
  "phone3": "string",
  "phone4": "string",
  "phone5": "string",
  "duplicateCallbacks": "allow",
  "dialTime": "2019-11-12 15:10:20",
  "businessParam1": "string",
  "businessParam2": "string",
  "businessParam3": "string",
  "businessParam4": "string",
  "businessParam5": "string",
  "businessParam6": "string",
  "businessParam7": "string",
  "businessParam8": "string",
  "businessParam9": "string",
  "businessParam10": "string",
  "businessParam11": "string",
  "businessParam12": "string"
}

Request Body

  • crmCampaignID: This is the campaign ID of the CRM campaign that is linked to this ECM campaign.
  • campaignID: This is the campaign ID of the ECM campaign. Either one of the two campaign IDs (CRM Campaign ID or ECM Campaign ID) must be defined in the API call otherwise the operation would fail.
  • Phone1 - Phone 5: Phone 1 is mandatory. Other phone numbers are optional. The phone numbers must have a minimum of 4 and a maximum of 15 characters (inclusive of + sign in the number prefix).
  • duplicateCallbacks: The expected values are i) allow or ii) discard. This allows defining if a duplicate call should be made to a duplicate contact, that already exists in the dialing list with "Pending" status. If the value is equal to discard, the contact won't be uploaded again and no duplicate call would be made. If this is equal to allow, duplicate contacts will be uploaded for the same customer, hence allowing duplicate callbacks to be dialed.
  • dialTime: This is the date and time that the user wants to send the contact to the dialer for dialing. If null, the contact will be sent to the dialer according to the campaign settings.
  • Business Parameters (business param1-business param12): These parameters can contain any custom value for a particular customer contact such as Account Type, Customer Email. The length of the data in these parameters can be defined as per the integration specifications locked with ExpertFlow. The system allows storing a maximum of 255 characters in each of these parameters.

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

callback data saved 

Bulk upload contacts to a campaign

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callback/uploadBulkCaller


Bearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Body

  • campaignId: This is the ECM campaign Id. Define this or CRM Campaign ID in the request body.
  • crmCampaignId: This is the CRM campaign Id associated with the ECM campaign
  • File: This is the comma-separated file carrying campaign contacts. The file format should be the following:

      phone1,phone2,phone3,phone4,phone5,businessParam1,businessParam2..... businessParam12, dialTime

 If an attribute is not required then it should be left empty and then a comma. For example, the user wants to upload contacts with phone1 and businessParam1.

The file entries will look like below,

0300948984,,,,,businessParam1

  • Phone1 - Phone 5: Adding Phone1 is mandatory. You may also optionally provide other phone numbers in phone2, phone3, phone4, phone5 fields. The phone numbers must have a minimum of 4 and a maximum of 15 characters (inclusive of + sign in the number prefix).
  • Business Parameters (business param1-business param12): These parameters can contain any custom value for a particular customer contact such as Account Type, Customer Email. The length of the data in these parameters can be defined as per the integration specifications locked with ExpertFlow. The system allows storing a maximum of 255 characters in each of these parameters.

HTTP Request

-

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

File is uploaded 

Get campaign contacts

This API is used to get the status of the campaign contacts in the ECM database.

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callback/getList

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

Request Body

  • max: This attribute defines the maximum contacts that should be returned in the API response. You can specify how many results should be returned by the API. This parameter only accepts integer values.
  • page: This attribute used to define the current page number on which contacts will be displayed. You can specify the page index to get contacts on the returned page only. This parameter only accepts integer values.
  • requestStatus: This attribute is used to specify the request state for the searched contact numbers. If defined, the API returns contacts with the specified request status. This parameter only accepts integer values. There is a total of 10 request states as the following:
Request StateDescription
1SentToDailer 
2Connected
3Not Connected
4RetriesCompleted
5SMSSentAndClosed
6SMS Sent
7DNCListed
8Dangling
9SMSResponded
-1All


  • campaignId (integer): This attribute defines the campaign ID whose contacts are being retrieved. This parameter only accepts integer values.
  • numberToCall: This is the number that is going to be attempted by the system.
  • phone1 to phone5: Any of the five phones of the customer.

HTTP Request

-

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response


Example Response
{
  "callbackData": [
   {
    "id": 2,
    "attemptId": 3,
    "attemptNumber": 3,
    "dialTime": "2019-11-12 15:10:20",
    "businessParam1": "string",
    "businessParam2": "string",
    "businessParam3": "string",
    "businessParam4": "string",
    "businessParam5": "string",
    "businessParam6": "string",
    "businessParam7": "string",
    "businessParam8": "string",
    "businessParam9": "string",
    "businessParam10": "string",
    "businessParam11": "string",
    "businessParam12": "string",
    "campaignId": 0,
    "phone1": "string",
    "phone2": "string",
    "phone3": "string",
    "phone4": "string",
    "phone5": "string",
    "callResult": 0,
    "channel": 0,
    "ciscoCampaignId": 123412,
    "lastStatusUpdateTime": null,
    "numberToCall": 1393,
    "requestState": 1,
    "requestTime": "2019-07-31T12:53:34Z",
    "responseTimeout": null
  }
  ],
"total": 1
}

Call Strategies

Create strategy

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callStrategy/save

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

HTTP Request

Example Response
{
  "name":"TestStrategy"
}

Request Parameters


HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
{
  "id":1,
  "name":"TestStrategy"
}

Create Attempt

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callStrategyAttempt/save

AuthorizaitoionBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

POST

Input/Output Format

JSON

Request Body

  • csId: This is the strategy ID of which this attempt is a part.
  • name = this is the name of the attempt
  • phone: This defines on which phone 01-phone 05 this attempt should be made. The expected values are: i) 1= Phone 01, ii) 2 = Phone 02, iii) 3 = Phone 03, iv) 4 = Phone 04, v) 5 = Phone 05 
  • channel: This is the channel through which the attempt has to be made. The expected values are: i) 0 = Voice, ii) 1 = SMS
  • attempt number: This is the order of the attempt among the other attempts in the Strategy.
  • retry map: In case of a voice call attempt, the retry map is used to define what to do if the result of a voice call attempt is one of the following: 

    Call Result Description
    1Busy
    2No Answer
    3Customer Abandoned
    4Dialer Abandoned
    5Others-Not Connected: This includes all call results that were not connected due to any reason other than the above.

If the call result is one of the above, it allows to define which attempt should be made and after how much time.

Example:
[
 {
   "call_result":"1",
   "attempt_number":"2",
   "delay":"30"
 },
]

This means if call_result = BUSY then go for attempt 2 and execute it after 30 minutes.

In the case of an SMS attempt, it allows defining what to do if there's no reply from the customer; i.e. whether the system should make another attempt or close the contact.

Example:
[
 {
   "sms_response_timeout":"30",
   "attempt_number":"2",
   "expiry":"30"
 }
]
If the customer does not respond within 30 minutes, go for attempt 2.

HTTP Request

Example Request
{
    "csId": 2,
    "name": "Default",
    "phone": "1",
    "channel": 0,
    "attemptNumber": 1,
    "retryMap": [
       {
          "attempt_number": 2,
          "delay": 10,
          "call_result": 2
      }
     ]
}

HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
{
    "id": 1,
	"csId": 2,
    "name": "Default",
    "phone": "1",
    "channel": 0,
    "attemptNumber": 1,
    "retryMap": [
       {
          "attempt_number": 2,
          "delay": 10,
          "call_result": 2
      }
     ]
}

Get Strategies

Protocol

HTTP or HTTPS

URL

https://<UMM-FQDN>/umm/ecm/callStrategy

AuthorizationBearer token-from-login-API

Content-Type

Application/JSON

HTTP Method

GET

Input/Output Format

JSON

HTTP Request

-

Request Parameters


HTTP Response

200: Success

404: Not found

500: Internal Server Error

503: Service Unavailable

Example Response

Example Response
[
{
   "id": 1,
   "name": "default",
   "maxAttempts": 3,
   "callAttempts": [
    {
    "id": 2,
    "name": "Default",
    "phone": "1",
    "channel": 0,
    "attemptNumber": 1,
    "retryMap": [
     {
       "attempt_number": 2,
       "delay": 10,
       "expiry": 10,
      "call_result": 2
    }
   ]
 }
]
}
]