APIs

Documentación de las principales APis de uContact para integraciones.

Autenticación Cliente

Este recurso se usa para obtener una autenticación por token para poder usar las API´s de uContact creado para loguearse desde otra aplicación para poder realizar integraciones.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/auth/getUserToken

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded

Request Body

Parametro Tipo Requerido Descripción
user Texto (String) Si Nombre de usuario
password Texto (String) Si Contraseña del usuario


Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/auth/getUserToken HTTP/1.1
Host: {{domain}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

user={{User}}&password={{Password}}

cURL

curl --location --request POST 'https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'user={{UserName}}' \
--data-urlencode 'password={{PasswordUser}}'
JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("user", "{{UserName}}");
urlencoded.append("password", "{{PasswordUser}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
JQuery
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "user": "{{UserName}}",
    "password": "{{PasswordUser}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new RestClient("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("user", "{{User}}");
request.AddParameter("password", "{{UserPassword}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "user={{User}}&password={{UserPassword}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/getUserToken")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();



HTTP Response

"{{token}}"

Respuesta de error

"0"


Autenticación Agente

Cuando se requiere hacer alguna integración con uContact con actividades de agente se autentica por medio de este recurso en el cual la plataforma toma como logueado al agente al SIP, esto hace que se tome encuenta para las llamadas o tenga interacción por VoIP además de los accesos.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/auth/AgentLogin

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded

Request Body

Parametro Tipo
Requerido Descripción
agent Texto (String) Si Nombre de usuario del agente
password Texto (String) Si Contraseña del usuario


Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/auth/AgentLogin HTTP/1.1
Host: {{dominio}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 33

agent={{User}}&password={{Password}}

cURL

curl --location --request POST 'https://{{dominio}}.ucontactcloud.com/Integra/resources/auth/AgentLogin' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'agent={{Usuario}}' \
--data-urlencode 'password={{AgentPassword}}'
JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("agent", "{{User}}");
urlencoded.append("password", "{{Password}}");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: urlencoded,
  redirect: 'follow'
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
JQuery
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "agent": "{{User}}",
    "password": "{{Password}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new RestClient("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("agent", "{{User}}");
request.AddParameter("password", "{{Password}}");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "agent={{User}}&password={{Password}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/auth/AgentLogin")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{domain}}.ucontactcloud.com")
payload = 'agent={{User}}&password={{Password}}'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/auth/AgentLogin", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" o "Error" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response

La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.

Respuesta convertida a JSON

{
    "id": 4,
    "name": "1997",
    "host": "{{domain}}.ucontactcloud.com",
    "nat": "yes",
    "type": "friend",
    "accountcode": "Vcisneros",
    "callgroup": "",
    "callerid": "1997",
    "canreinvite": "",
    "context": "agents",
    "dtmfmode": "rfc2833",
    "insecure": "",
    "language": "es",
    "mailbox": "",
    "md5secret": "07a46a13aa5434e21e6a9aa870482720",
    "pickupgroup": "",
    "qualify": "yes",
    "secret": "",
    "disallow": "all",
    "allow": "alaw;ulaw",
    "port": "",
    "defaultuser": "1997",
    "subscribecontext": "default",
    "record": "agent",
    "email": "",
    "phonetype": "SoftPhone",
    "LogLevel": "SEVERE",
    "limite": 0,
    "transport": "wss",
    "encryption": "yes",
    "did": "",
    "outboundproxy": "",
    "fullname": "Victor Cisneros",
    "token": "VmNpc25lcm9zOjJhZGUzNjAxLTNhMjgtNDhjNy1hNDg2LTczNTY3ZmI1ZDI2MQ=="
}

Respuesta de error

0

Finalizar Sesión

Para finalizar la sessión del agente o usuario una vez deje de utilizarse.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/api/AgentLogoff

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic Token

Request Body

Parametro Tipo Requerido Descripción
agent Texto (String) Si Nombre de usuario que se va a desloguar
interface Texto (String) No Numero de telefono/extensión del sip para el agente
message Texto (String) No Mensaje a guardar


Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

cURL
JavaScript
JQuery
C#
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "agent={{User}}&interface=SIP/{{Extension}}&message={{Mensaje}}");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/api/AgentLogoff")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{domain}}.ucontactcloud.com")
payload = 'agent={{User}}&interface=SIP/{{Extension}}&message={{Mensaje}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/api/AgentLogoff", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))



HTTP Response

Respuesta Exitosa

Respuesta de error

0

Colgar Llamada

Cuando se desea colgar una llamada desde fuera de uContact, se utiliza esta API; de esta manera, se puede crear una integración más completa.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/Agents/HangupPhone

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic Token

Request Body

Parametro Tipo Requerido Descripción

phone

Numero (Integer) Si Numero de telefono/extensión del agente


HTTP Request

Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP
POST /Integra/resources/Agents/HangupPhone HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 10

phone={{AgentPhone}}
cURL
JavaScript
JQuery
C#
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "phone={{AgentPhone}}");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Agents/HangupPhone")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'phone={{AgentPhone}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Agents/HangupPhone", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))



HTTP Response

Respuesta exitosa

Respuesta de error

0

Agregar registro a marcador

Agrega un registro a un marcador para lanzar la llamada en cuanto se tenga algún agente disponible, este registro serrá agregado a la cola, es decir se marcarán primero los registros que ya estaban en la cola independientemente, esta cola solo tomará encuenta los registros que no pertenecena  una lista de marcación.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente


HTTP Request

Metodo Recurso
POST /Integra/resources/Dialers/DialerTask

Request Header

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic {{Token}}

Request Body

Parametro Tipo Requerido Descripción

call

JSON String (String) Si Objeto Json convertido a texto en donde se agreguen los datos agregados en el siguient ejemplo
Ejemplo JSON

Los datos agregados en el siguiente ejemplo son meramente demostrativos, tendrá que reemplazar los datos con los correspondiente a su instancia.

{
  "calldate" : null, 			// En caso de requerir se llame a una hora en especifico, ejemplo: '1900-01-01 00:00:00'
  "campaign" : "POWER<-", 		// Nombre de la campaña a agregar el registro
  "destination": "0123456789",	// Numero de teléfono al cual se realizará la marcación
  "alternatives": "",			// Numero alternativo al cual realizarle la llamada en caso de no contactar con el primer teléfono
  "agent" : "",					// Telefono/Extensión del agente en caso de querer que un agente en especifico tome la llamada
  "data": "idcustomer=7",		// Datos para mostrar en el formulario de la instancia o para utilizarlos para algo en especifico
  "source": "source",			// Pendiente
  "bulk": false,				// Pendiente
  "automatic": true				// Pendiente
}
Descripción de Objeto JSON

En el JSON todos las Key deben estar agregadas, si el campo menciona que no es oblicatorio puede ser agregado con un valor vacio.

Parametro Tipo Requerido Descripción
calldate Texto (String) No Define la hora en la cual se realizará la marcación, puede ser 'null' o fecha en formato '1900-01-01 00:00:00'.
campaign Texto (String) Si Nombre de la campaña a la cual se agregará el registro
destination Texto (String) Si Numero de teléfono al cual se marcará
alternatives Texto (String) No Numero alternativos a contactar en caso no se logre contacto con el primer numero, puede ser vacio.
agent Texto (String) No Numero del teléfono/extensión del agente en caso de requerir que un agente en especifico tome la llamada
data Texto (String) No Datos a agregar para mostrarse en formularios, encuestas o para algún otro propocito dentro de la plataforma.
source Texto (String) Si
bulk Booleano (Boolean) Si
automatic Booleano (Boolean) Si

Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP
POST /Integra/resources/Dialers/DialerTask HTTP/1.1
Host: {{Instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 310

call={{Objeto Json}}
cURL
JavaScript
JQuery
C#
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "call={\"calldate\" : null,\"campaign\" : \"POWER<-\",\"destination\": \"0123456789\",\"alternatives\": \"\",\"agent\" : \"\",\"data\": \"idcustomer=7\",\"source\": \"source\",\"bulk\": false,\"automatic\": true }");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/DialerTask")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'call={{Objeto Json}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Dialers/DialerTask", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))



HTTP Response

Respuesta Exitosa

Respuesta de error

0

Subir Base

Sube una lista de maración por medio de un archivo CSV o TXT a un marcador pora poder acer integraciones con algún sistema externo a uContact.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente..


HTTP Request

Metodo Recurso
POST /Integra/resources/Dialers/uploadbase

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic Token

Request Body

El parametro "cant" puede agregarse con un valor de 0, una vez se se active la lista se actualizará la cantidad de registros en la lista.

En el campo fileb64 solamente se deve de enviar el contenido del archivo de texto plano codificado a base64, si se codifica el archivo como tal y se agrega a este campo marcará un error en la consulta.

Parametro Tipo Requerido Descripción

filename

Texto (String) Si Nombre del archivo a subir

fileb64

Archivo codificación Base64 Si Archivo a subir codificado a Base64

campaign

Texto (String) Si Nombre de la campaña a la cual se subirá el archivo

cant

Numero (Integer) Si

Numero de registros del archivo

username

Texto (String) Si Nombre de usuario que subirá el archivo de lista de maracacipon


Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP
POST /Integra/resources/Dialers/uploadbase HTTP/1.1
Host: {{Instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 604

filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow%3D%3D&campaign=POWER%3C-&cant=5&username=Vcisneros
cURL
JavaScript
JQuery
C#
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow==&campaign=POWER<-&cant=5&username=Vcisneros");
Request request = new Request.Builder()
  .url("https://{{Instance}}.ucontactcloud.com/Integra/resources/Dialers/uploadbase")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{Instance}}.ucontactcloud.com")
payload = 'filename=base_prueba_2.csv&fileb64=UE9XRVI8LTswMTIzNDU2Nzg5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs5ODc2NTQzMjEwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTswMTQ3ODUyMzY5O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTszNjk4NTIwMTQ3O0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow0KUE9XRVI8LTs3NTMyMTQ2OTgwO0lkPTIyMDE0MTpGb2xpbz0xOk5vbWJyZT1WaWN0b3IgQ2lzbmVyb3M6Zm9saW9DUk09Ozs5OTk5Ow%3D%3D&campaign=POWER%3C-&cant=5&username=Vcisneros'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Dialers/uploadbase", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))



HTTP Response

Respuesta Exitosa

Respuesta de error

0

Tipificar Llamada

Cuando una llamada es finalizada en uContact se puede agregar una tipificación para tener identificado en que finalizó la llamada y asi poder obtener reportes o bién crear acciones apartir de una tipificación.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST Integra/resources/api/DispositionCall

Header Request

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic {{Token}}

Parametros

Parametro Tipo Requerido Descripción

campaign


Si Nombre de la campaña

agent


Si Nombre de usuario del agente

callerid


Si Numero de telefono del contacto

guid


Si Identificador unico de llamada

l1


Si Nivel 1 de tipificación

l2


No Nivel 2 de tipificación

l3


No Nivel 3 de tipificación

d1


No Dato extra a guardar

d2


No Dato extra a guardar

comment


No Comentario para la tipificación

schedule


No Fecha y hora para agendar llamada formaro AAAA-MM-DD HH:MI:SS

camptoreschedule


No Marcador al cual agendar la llamada

tag


No Texto para tag de tipificación o vacio

Ejemplos de codigo

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP
POST /Integra/resources/api/DispositionCall HTTP/1.1
Host: {{Instancia}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 173

campaign=campana-%3E&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag=
cURL
JavaScript
JQuery
C#
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "campaign=campana->&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag=");
Request request = new Request.Builder()
  .url("https://{{Instancia}}.ucontactcloud.com/Integra/resources/api/DispositionCall")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{Instancia}}.ucontactcloud.com")
payload = 'campaign=campana-%3E&agent=Vcisneros&callerid=1234567890&guid=f9b7ada3-a4e5-4795-834d-aa1c1a37ee57&l1=Tipificacion1&l2=&l3=&d2=&d2=&comment=&schedule=&camptoreschedule=&tag='
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/api/DispositionCall", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))



HTTP Response

Respuesta Exitosa

Respuesta de error

"0"


Crear Agente

Cuando en alguna integración se necesita crear usuarios desde alguna otra plataforma, podemos usar esta API que crea usuarios del tipo agente para que puedan hacer llamadas.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/sip/addsip

Request Header

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic {{Token}}

Request Body

 
Parametro Tipo
Requerido Descripción
Phone Texto Si Objeto JSON

Ejemplo JSON

Los datos que no estan encerrados con {{ }} no serán modificados, serán enviados como datos fijos

{
    "LogLevel": "SEVERE",
    "fullname": "{{fullname}}",
    "accountcode": "{{userNameAgent}}",
    "allow": "alaw;ulaw",
    "callerid": "{{phoneNumber}}",
    "id": 407,
    "context": "agentes",
    "defaultuser": "{{phoneNumber}}",
    "did": "",
    "disallow": "all",
    "dtmfmode": "rfc2833",
    "email": "",
    "encryption": "yes",
    "canreinvite": "",
    "insecure": "",
    "host": "dynamic",
    "language": "es",
    "mailbox": "",
    "name": "{{phoneNumber}}",
    "nat": "yes",
    "phonetype": "SoftPhone",
    "pickupgroup": "",
    "callgroup": "",
    "qualify": "yes",
    "record": "agent",
    "secret": "{{passwordAgent}}",
    "subscribecontext": "default",
    "transport": "wss",
    "port": "",
    "outboundproxy": "",
    "type": "friend",
    "limite": "0"
}

Descripción de objeto JSON

Parametro Tipo
Descripción
userName Texto (String) Nombre de usuario del agente
password Texto (String) Contraseña del usuario
fullname Texto (String) Nombre completo del agente
phoneNumber
Texto (String) Numero de teléfono del agente (Dato Unico)



Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/sip/addsip HTTP/1.1
Host: {{dominio}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 1228

phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }
cURL
curl --location --globoff 'https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic VmNpc25lcm9zOjdjMjUyODAyLTljNGEtNDcyZi05MjJiLTQwNGFmY2JjM2Q2MA==");

const urlencoded = new URLSearchParams();
urlencoded.append("phone", "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow"
};

fetch("https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "phone": "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var options = new RestClientOptions("https://{{dominio}}.ucontactcloud.com")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/Integra/resources/sip/addsip", Method.Post);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Authorization", "Basic {{Token}}");
request.AddParameter("phone", "{ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "phone={ \"LogLevel\": \"SEVERE\", \"fullname\": \"{{fullname}}\", \"accountcode\": \"{{userName}}\", \"allow\": \"alaw;ulaw\", \"callerid\": \"{{phoneNumber}}\", \"id\": 407, \"context\": \"agentes\", \"defaultuser\": \"{{phoneNumber}}\", \"did\": \"\", \"disallow\": \"all\", \"dtmfmode\": \"rfc2833\", \"email\": \"\", \"encryption\": \"yes\", \"canreinvite\": \"\", \"insecure\": \"\", \"host\": \"dynamic\", \"language\": \"es\", \"mailbox\": \"\", \"name\": \"{{phoneNumber}}\", \"nat\": \"yes\", \"phonetype\": \"SoftPhone\", \"pickupgroup\": \"\", \"callgroup\": \"\", \"qualify\": \"yes\", \"record\": \"agent\", \"secret\": \"{{password}}\", \"subscribecontext\": \"default\", \"transport\": \"wss\", \"port\": \"\", \"outboundproxy\": \"\", \"type\": \"friend\", \"limite\": \"0\" }");
Request request = new Request.Builder()
  .url("https://{{dominio}}.ucontactcloud.com/Integra/resources/sip/addsip")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{dominio}}.ucontactcloud.com")
payload = 'phone={ "LogLevel": "SEVERE", "fullname": "{{fullname}}", "accountcode": "{{userName}}", "allow": "alaw;ulaw", "callerid": "{{phoneNumber}}", "id": 407, "context": "agentes", "defaultuser": "{{phoneNumber}}", "did": "", "disallow": "all", "dtmfmode": "rfc2833", "email": "", "encryption": "yes", "canreinvite": "", "insecure": "", "host": "dynamic", "language": "es", "mailbox": "", "name": "{{phoneNumber}}", "nat": "yes", "phonetype": "SoftPhone", "pickupgroup": "", "callgroup": "", "qualify": "yes", "record": "agent", "secret": "{{password}}", "subscribecontext": "default", "transport": "wss", "port": "", "outboundproxy": "", "type": "friend", "limite": "0" }'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/sip/addsip", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" o "1" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response

La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.

Respuesta exitosa

1

Respuesta de error

0

Agregar Agente a Campaña

Cuando la integración lo requiere se pueden agregar agentes a una campaña especifica por medio de esta API, a continuación mostramos el como realizar esta acción.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/queues/addqueuemember

Request Headers

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic Token

Request Body

Parametro Tipo
Descripción
queuemember Texto (String) Array de objetos, en donde se pueden agregar varios usuarios a varias campañas, por cada objeto es un usuario agregado a una campaña.
Ejemplo JSON

Los datos agregados en el siguiente ejemplo son meramente demostrativos, tendrá que reemplazar los datos con los correspondiente a su instancia.

[
    {
        "membername": "{{UserName}}",
        "queueName": "{{CampaignName}}",
        "interface1": "SIP/{{AgentPhoneNumber}}",
        "penalty": 0,
        "paused": 0
    }
]
Descripción de Objeto JSON

En el JSON todos las Key deben estar agregadas, si el campo menciona que no es oblicatorio puede ser agregado con un valor vacio.

Parametro Tipo
Descripción
UserName Texto (String) Nombre de usuario del agente
CampaignName Texto (String) Nombre de la campaña a la cual se desea agregar el usuario
PhoneNumber
Texto (String) Numero de teléfono del agente



Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/queues/addqueuemember HTTP/1.1
Host: {{domain}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 221

queuemember=[{"membername":"{{UserName}}","queueName":"{{CampaignName}}","interface1":"SIP/{{AgentPhoneNumber}}","penalty":0,"paused":0}]
cURL
curl --location --globoff 'https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'queuemember=[{"membername":"{{UserName}}","queueName":"{{CampaignName}}","interface1":"SIP/{{AgentPhoneNumber}}","penalty":0,"paused":0}]'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");

const urlencoded = new URLSearchParams();
urlencoded.append("queuemember", "[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow"
};

fetch("https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "queuemember": "[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("queuemember", "[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "queuemember=[{\"membername\":\"{{UserName}}\",\"queueName\":\"{{CampaignName}}\",\"interface1\":\"SIP/{{AgentPhoneNumber}}\",\"penalty\":0,\"paused\":0}]");
Request request = new Request.Builder()
  .url("https://{{domain}}.ucontactcloud.com/Integra/resources/queues/addqueuemember")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{domain}}.ucontactcloud.com")
payload = 'queuemember=[{"membername":"{{UserName}}","queueName":"{{CampaignName}}","interface1":"SIP/{{AgentPhoneNumber}}","penalty":0,"paused":0}]'
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/queues/addqueuemember", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" o "1" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response

La respuesta recibida es de tipo texto, por lo cual tendrá que convertirla a JSON para poder visualizar los datos correctamente.

Respuesta exitosa

1

Respuesta de error

0

Hacer Llamada

En algunas ocasiones, es necesario que un agente genere una llamada a un número de teléfono desde otra aplicación, como podría ser un CRM. Se puede utilizar esta API, y la llamada será enviada al agente.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/Agents/AgentCall

Request Header

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic {{Token}}

Request Body

Parametro Tipo
Requerido Descripción
callerid Número Si DID asignado a la campaña por la cual se realizará la llamada.
agent Texto Si Agente que tomará la llamada.
phone
Número Si Número de teléfono del agente.
tech Texto Si Protocolo de comunicación, agregar SIP.
context Texto Si Nombre del contexto para flujos por el cual saldrá la llamada. Puede ser "agentes" o "agents"
outqueue Texto Si Nombre de la campaña manual.
destination Número Si Nombre de la campaña por la cual se generará la llamada.


Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/Agents/AgentCall HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
Content-Type: application/x-www-form-urlencoded
Content-Length: 116

callerid={{callerid}}agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}
cURL
curl --location 'https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall' \
--header 'Authorization: Basic {{Token}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'callerid={{callerid}}' \
--data-urlencode 'agent={{agent}}' \
--data-urlencode 'phone={{phone}}' \
--data-urlencode 'tech=SIP' \
--data-urlencode 'context={{context}}' \
--data-urlencode 'outqueue={{outqueue}}' \
--data-urlencode 'destination={{destination}}'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

const urlencoded = new URLSearchParams();
urlencoded.append("callerid", "{{callerid}}");
urlencoded.append("agent", "{{agent}}");
urlencoded.append("phone", "{{phone}}");
urlencoded.append("tech", "SIP");
urlencoded.append("context", "{{context}}");
urlencoded.append("outqueue", "{{outqueue}}");
urlencoded.append("destination", "{{destination}}");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow"
};

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}",
    "Content-Type": "application/x-www-form-urlencoded"
  },
  "data": {
    "callerid": "{{callerid}}",
    "agent": "{{agent}}",
    "phone": "{{phone}}",
    "tech": "SIP",
    "context": "{{context}}",
    "outqueue": "{{outqueue}}",
    "destination": "{{destination}}"
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("callerid", "{{callerid}}"));
collection.Add(new("agent", "{{agent}}"));
collection.Add(new("phone", "{{phone}}"));
collection.Add(new("tech", "SIP"));
collection.Add(new("context", "{{context}}"));
collection.Add(new("outqueue", "{{outqueue}}"));
collection.Add(new("destination", "{{destination}}"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "callerid={{callerid}}&agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/Agents/AgentCall")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = 'callerid={{callerid}}&agent={{agent}}&phone={{phone}}&tech=SIP&context={{context}}&outqueue={{outqueue}}&destination={{destination}}'
headers = {
  'Authorization': 'Basic {{Token}}',
  'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/Integra/resources/Agents/AgentCall", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.

La respuesta exitosa será un GUID como identificador de la llamada; con este dato se podrán realizar futuras acciones mediante APIs.

Respuesta exitosa

8cf8570e-60e7-44ed-b799-3baab211b04d

Respuesta de error

0

Obtener Campañas

Para obtener todas las campañas creadas dentro de uContact se puede usar esta API la cual regresa la totalidad de Dialers y Queues.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/queues/getqueues

Request Header

Clave Valor
Content-Type application/x-www-form-urlencoded
Authorization Basic {{Token}}

Request Body

Parametro Tipo
Requerido Descripción
lastrow Texto No Enviar vacio


Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/queues/getqueues HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic {{Token}}
Content-Length: 8

lastrow=
cURL
curl --location --globoff 'https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{Token}}' \
--data-urlencode 'lastrow='
JavaScript
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic {{Token}}");

const urlencoded = new URLSearchParams();
urlencoded.append("lastrow", "");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow"
};

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "Basic {{Token}}"
  },
  "data": {
    "lastrow": ""
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues");
request.Headers.Add("Authorization", "Basic {{Token}}");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("lastrow", ""));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "lastrow=");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/queues/getqueues")
  .method("POST", body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = 'lastrow='
headers = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/queues/getqueues", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.

La respuesta exitosa será un JSON correspondiente a un array de objetos, en donde cada objeto corresponde a una campaña.

Respuesta exitosa

[
	{
        "name": "DEMO007->",
        "musiconhold": "default",
        "announce": "",
        "context": "",
        "timeout": 15,
        "monitorType": "MixMonitor",
        "monitorFormat": "gsm",
        "announceFrequency": 0,
        "announceRoundSeconds": 0,
        "announceHoldtime": "no",
        "announcePosition": "no",
        "retry": 3,
        "wrapuptime": 0,
        "maxlen": 100,
        "servicelevel": 15,
        "strategy": "linear",
        "joinempty": "yes",
        "leavewhenempty": "no",
        "eventmemberstatus": false,
        "eventwhencalled": true,
        "reportholdtime": false,
        "memberdelay": 0,
        "weight": 0,
        "timeoutrestart": true,
        "ringinuse": false,
        "setinterfacevar": true,
        "periodicAnnounce": "",
        "periodicAnnounceFrequency": "0",
        "did": "18885751288",
        "direction": "outbound",
        "interactions": "",
        "email": "",
        "thresholds": "40-80-20-50-60-180-300-6-3-",
        "welcome": "&  &    &  &;&  &    &  &",
        "schedule": "sun-sat;00:00-23:59",
        "form": "Totality|true",
        "quality": "",
        "dialstring": "SIP/CLEVERSIP/9898",
        "voicemail": "",
        "queue_survey": 1,
        "queue_timeout": 600,
        "auto_answer": "FALSE",
        "show_dispositions": 1,
        "queue_breaks": "",
        "screen_recording": 0,
        "language": "en",
        "transferCampaigns": ""
    }
]

Respuesta de error

0

Obtener Dialers

Para obtener la lista de los dialers de uContact, se necesita usar esta API. Por ejemplo, si queremos crear un desplegable desde otra aplicación para mostrar los dialers y realizar alguna acción específica.

Usted puede verificar la Colección de Postman para ver un ejemplo y probar con su instancia.

Todos los datos que esten encerrados por "{{ }}" son valores que serán reemplazado con los datos del propio cliente y/o la instancia correspondiente.


HTTP Request

Metodo Recurso
POST /Integra/resources/Dialers/get

Request Header

Clave Valor
Authorization Basic {{Token}}


Ejemplos de Código

Puede copiar los siguientes ejemplos de codigo y reemplazar las variables "{{variable}}" con los datos correctos.

HTTP

POST /Integra/resources/Dialers/get HTTP/1.1
Host: {{instance}}.ucontactcloud.com
Authorization: Basic {{Token}}
cURL
curl --location --globoff --request POST 'https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get' \
--header 'Authorization: Basic {{Token}}'
JavaScript
const myHeaders = new Headers();
myHeaders.append("Authorization", "Basic {{Token}}");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  redirect: "follow"
};

fetch("https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
JQuery
var settings = {
  "url": "https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Basic {{Token}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get");
request.Headers.Add("Authorization", "Basic {{Token}}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://{{instance}}.ucontactcloud.com/Integra/resources/Dialers/get")
  .method("POST", body)
  .addHeader("Authorization", "Basic {{Token}}")
  .build();
Response response = client.newCall(request).execute();
Python
import http.client

conn = http.client.HTTPSConnection("{{instance}}.ucontactcloud.com")
payload = ''
headers = {
  'Authorization': 'Basic {{Token}}'
}
conn.request("POST", "/Integra/resources/Dialers/get", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))




HTTP Response

Las respuestas en las que se obtubo error por parte de los datos enviados por lo general serán entregados con codigo HTTP 200 con un "0" en el body de la respuesta, por lo tanto hay que tener cuidado al validar por el HTTP Code Response.

La respuesta exitosa será un texto en formato JSON correspondiente a un array de objetos, en donde cada objeto corresponde a un dialer.

Respuesta exitosa

[
	{
        "campaign": "DEMO007<-",
        "schedule": "mon,tue,wed,thu,fri,sat;08:00-21:00",
        "dialertype": "PowerDialer",
        "status": 1,
        "dialstring": "SIP/CLEVERSIP/9898",
        "context": "PowerDialer",
        "exten": "${EXTEN}",
        "am": 0,
        "sound": "",
        "maxchannels": 2,
        "variables": "FORM=Totality:language=default:initialSilence=1500:greeting=2000:afterGreetingSilence=1000:totalAnalysisTime=2500:minWordLength=100:betweenWordSilence=50:maxNumberOfWords=2:silenceThreshold=256",
        "timeout": 30,
        "callerid": "18885751288",
        "retries": 0,
        "callerpres": 20,
        "tbc": -5,
        "dncr": 1,
        "schedulephones": "0=HMW:1=HMW:2=HMW:3=HMW:4=HMW:5=HMW:6=HMW:7=HMW:8=MWH:9=MWH:10=MWH:11=MWH:12=MWH:13=MWH:14=MWH:15=MWH:16=MWH:17=MWH:18=MWH:19=HMW:20=HMW:21=HMW:22=HMW:23=HMW",
        "autoanswer": 1,
        "tbc_nocontact": 0,
        "earlymedia": 0,
        "recyclecount": 0,
        "recycle": "[]",
        "country": "",
        "rule": "NONE",
        "autoconvertcallerid": 0
    }
]

Respuesta de error

0