Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Current »

See the different possibilities that our API offers you to integrate uContact with external systems.

In order to use the API you need:

  1. Authenticate and get a token for the session.

  2. Use the token in the Authorization Header.

  3. Log out.

It is recommended to create a user that is exclusively to use with the uContact API.


API Omnichannel

API Telephony

API Other Actions

API Gamification

DataBases

Examples


Foremost, we need to get APIkey. For this, we use the getUserToken service with a valid SuperUser username and password.

getUserToken Service

https://dominio.ucontactcloud.com/Integra/resources/auth/getUserToken
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parameters: user
            password
Answer: JSON

Supervisor without phone

At the end of the list

[ ...
    "QWRtaW46OTgzNWM1MjUtMzU2Ny00YjgyLWEwYWYtY2NkMjNlMDhjNzA3"
]

If it is Error Answer 0

Example code for jQuery

$.ajax({
  type: 'POST', 
  url: 'https://domain.ucontactcloud.com/Integra/resources/auth/getUserToken',
  contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
  dataType: 'text',
  data: {
    user: 'ExampleUsername',
    password: 'ExamplePassword'
  },
  success: (resp) => {},
  error: (resp) => {}
});

Once you have your login token, let's move on to how to use it in API queries:

  • jQuery can be configured to use the token on every request.

  • If not, it can be specified in the headers in each request that is made.

jQuery configuration example

$.ajaxSetup({
  headers: {
    'Authorization': "Basic " + APIKey
  }
});

Token example in request headers

$.ajax({
    type: 'POST',
    url: 'https://dominio.ucontactcloud.com/Integra/resources/any/request',
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    dataType: 'text',
    headers:{
        'Authorization': 'Basic <APIKey>'
    },
    data: {
        param1: 'exampleParam1',
        param2: 'exampleParam2'
    },
    success: (resp) => {},
    error: (resp) => {}
});

After using the API, it is necessary to end the session. In this way, we will avoid security problems by disabling the token generated at the start login.

Method

https://dominio.ucontactcloud.com/Integra/resources/auth/EndSession
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params: user
	    token
Result: 1 OK  0 ERROR

Example code for jQuery

$.ajax({
    type: 'POST',
    url: 'https://domain.ucontactcloud.com/Integra/resources/auth/EndSession',
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    dataType: 'text',
    headers:{
        'Authorization': 'Basic <APIKey>'
    },
    data: {
        user: 'ExampleUser',
        token: '<token>'
    },
    success: (resp) => {},
    error: (resp) => {}
});

Relevant information

  • All WebServices are REST type.

  • uContact uses https by default (http2).

CrossDomain Connection

With the Windows proxy, we can handle events of an iframe inserted in a form, to be able to do dispositions, hang up the call, close the form, or whatever you want, for example. To do this, no plugin is needed.

Previous steps

In the form you must put:

window.addEventListener('message', event => {
    if (event.data.action === 'CLOSE_TAB') {
		parent.closeActiveTab(); 
	} else if (event.data.action === 'DISPOSITION_CALL') {
		let dataDisp = event.data.disposition;
		UC_DispositionCall(dataDisp.campaign, dataDisp.callerid, dataDisp.guid, dataDisp.l1, dataDisp.l2, dataDisp.l3, dataDisp.d1, dataDisp.d2, dataDisp.comment, dataDisp.schedule, callbackDiposition, errorDiposition);
	}   
});

event.data can be used to identify what type the action is.

And the disposition attribute is used as an object to send more information.

How to invoke it?

The way to invoke it is:

let dataDisp = {
	 campaign: 'CampañaTest',
	 callerid: '123456Test',
	 guid:'3123-3123-3123-312-3123',
	 l1:'nivel1',
	 l2:'nivel2',
	 l3:'nivel3',
	 d1:'data1',
	 d2:'data2',
	 comment:'ComentarioTest',
	 schedule:'2019-05-04 15:55:55'
};

window.parent.postMessage({ action: 'DISPOSITION_CALL', disposition:dataDisp}, '*');

You may also be interested in:


Upload dialer base


Webcallback


Postman collection for the Login and Logoff.

  • No labels