Saltar a contenido

API Mensajería

A continuación se muestra las api mas importante a utilizar para establecer una funcionalidad completa con Lynn en caso de mayor información del conjunto completo de api puede hacer uso de la siguiente Url [https://documenter.getpostman.com/view/4212906/UVCCd3Ap] (Messenger Service)

Generación de token de autenticación

Uno de los requisitos necesarios para el uso del Api Lynn es verificar que el consumidor (usuario o servicio) tenga autorización para el uso del API; Para ello lo primero que debe hacer es obtener el token de autenticación.

Puntos Importantes:

Método Protegido: No, se puede consultar directamente.

Ruta: /api/LynnService/CreateToken

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
BODY

{

"accessToken": "string",

"accessTokenSecret": "string",

"tenant": “number”

}

accessToken

Cadena de texto que forma parte de los parámetros de autenticación, se genera al momento de crear las credenciales de seguridad del tenant y ya no se puede modificar. Ejemplo: 90234137e9752f1.

Nota: Es similar a un usuario.

accessTokenSecret

Cadena de texto que forma parte de los parámetros de autenticación, se genera al momento de crear las credenciales de seguridad del tenant y ya no se puede modificar. Ejemplo: 66d83a1b-4da4-42f5-9883-44b8f32c36d5.

Tenant

Identificador numérico del tenant. Se obtiene en la interfaz gráfica de Lynn.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Nota: Esta respuesta se debe incluir en la cabecera de las peticiones siguientes para poder manejar la seguridad. Ejemplo:

Variable

Authorization: bearer eyJhbGciOiJIUzoEzKw4ly8jgmmAoxJbg

Json Respuesta

{

"token": "eIkpXVCJ9.eyJhefWYXYMSl8e84YxLxrCWKVeY4N

Us_2c239NG4"

}

401 Unauthorized Sin Respuesta.

Retornar una sesión de chat activa

Retorna una sesión por su ID siempre y cuando este activa. En caso de que no se encuentre activa entonces creará una nueva sesión y le asignará el mismo id enviado como parámetro.

Puntos Importantes:

Ruta:

/api/LynnService/SessionByCriteria/{criteria}/{value}/{inactivityTimeout}/{clientIdentification}/{callIId}/{capacityType}/{clientId}/{channelId}/{tenant}/{verbose}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
criteria URL Cadena de texto con el criterio del registro que se va a buscar, tiene un formato común. Ejemplo: rut_usuario.
value URL Valor correspondiente al criterio que se estableció en el parámetro anterior, tiene un formato de cadena de texto abierto. Ejemplo: 231231, abcds 232dsdda, 0000-0000-0000-0000.
inactivityTimeout URL Tiempo de inactividad en segundos para comparar y solo obtener las últimas interacciones el cual su último request es menor al valor de este parámetro, este tiempo de inactividad no aplica mientras está en la cola de la estrategia.
clientIdentification URL Nombre del cliente, se debe mantener en toda la conversación.
callId URL Identificador de la llamada de voz asociada, en el caso de que aplique, sino se puede enviar con el valor “unknown”.
capacityType URL

Tipo de capacidad del canal. Las capacidades válidas son:

- UNKNOWN = 0

- PhoneCall = 1

- DeviceVoice = 2

- WebViewer = 3

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.
channelId URL Identificador del canal por el cual se está comunicando el cliente y que es registrado en la plataforma que soporta el tenant.
tenant URL El valor del id de tenant configurado para el cliente.
verbose URL Nivel de logs a generar [1…5].
BODY

Ud_X

Parámetros custom enviados al api que corresponden a los user data, se puede enviar el json con cualquier cantidad de estos parámetros.

Json Respuesta

{

"ud_1":"val1",

"ud_2":"val2",

"ud_3":"val3"

}

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success

Nota: La respuesta puede ser una lista de este objeto, el cual, es solo un ejemplo y puede variar en algunos parámetros.

Esta respuesta corresponde a un documento de elasticsearch, parámetros importantes:

_index

Código del índice donde se encuentra el documento.

_source

Objeto que describe el tipo de información almacenada en el documento.

Level

Nivel del mensaje, indica si el tipo de registro es de confirmación o de log. Ejemplo:

- Dialog para los mensajes de chat.

- Debug para los mensajes de log.

- Audit para los mensajes de auditoria.

- Error para los mensajes de error.

subLevel

Corresponde a una actividad específica según el nivel especificado y depende de la clasificación genérica que indique el cliente.

Criteria

Criterio de búsqueda para identificar los registros de una sesión, por ejemplo: carnet de identidad de cliente, rut, entro otros.

CriteriaValue

Valor del criterio de búsqueda definido en el parámetro anterior.

Host

Nombre o dirección IP del servidor de Lynn que genero el registro.

Session

Identificador de la sesión proporcionada en la llamada que se logró recuperar.

Json Respuesta

{

"_index": "http-9t-2019.33.04",

"_type": "_doc",

"_id": "mqYPOG4BNgj2h0284mLS",

"_version": 1,

"_score": null,

"_source": {

"subLevel": "Bot",

"level": "Debug",

"tenant": 22,

"source_name": "broker",

"user_id": "mauricio maldon pades ",

"channel_url": "",

"criteriaValue": "137471493",

"type": 2,

"session": "ec52fa68-ffcb-4c8f-a91b-f4523286073c",

"headers": {

"request_method": "POST",

"request_id": "

401 Unauthorized Sin Respuesta.

Forzar una intención en una sesión ya creada

Utilizando esta función se puede inducir en Lynn una determinada intención sin la respectiva evaluación de texto en el motor cognitivo.

Puntos Importantes:

Ruta:

/api/LynnService/SendTextMessageWithIntent/{sessionId}/{capacityType}/{clientId}/{intent}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión a la cual desea enviar el mensaje.
capacityType URL

Tipo de capacidad del canal. Las capacidades válidas son:

- UNKNOWN = 0

- PhoneCall = 1

- DeviceVoice = 2

- WebViewer = 3

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.
intent URL La intención a forzar. Esto provoca que Lynn ejecute dicha intención sin evaluación de texto asociada.
BODY El texto del mensaje a enviar. Se envía el body en formato de texto plano.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Esta respuesta corresponde a una respuesta donde la intención solicitada no existe, parámetros importantes:

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

intent

número de la intención solicitada, si su valor es null corresponde a que la intención que se intentó forzar no existe.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

event

Identifica el tipo de evento asociado al mensaje, existen 43 tipos de eventos de mensajes, para ver la lista completa ir a Eventos de Mensajes.

messageType

Tipo de mensaje de la respuesta: 1 Menú, 2 Evento, 3 Texto, se encuentra en cada objeto de la lista eventMessages.

code

Sub-Evento generado en la respuesta del mensaje, la lista completa la puede encontrar en Sub-Eventos de Mensajes.

availableByVoice

Valor booleano que indica si el evento de mensaje está disponible por voz.

availableByText

Valor booleano que indica si el evento de mensaje está disponible en texto.

Json Respuesta

{

"sessionId": "694ef9c9-2acf-489f-8e2f-1f5123453038",

"eventMessages": [

{

"event": 5,

"details": "",

"source": "SendTextMessage",

"messageType": 2,

"data": null,

"code": 85,

"sessionId": "694ef9c9-2acf-489f-8e2f-1f5512345038",

"id": "832d2f2b-0673-47a2-b9fd-123459960aab",

"correlation": 0,

"capacities": [

{

"capacityType": 3,

"name": "",

"clientId": "ef344f35-8e28-4251-96ac-12345cbb2c70",

"description": ""

}

],

"date": "2019-11-05T10:34:24.7509002-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOXI",

"description": null,

"intent": null

},

{

"event": 17,

"details": "",

"source": "",

"messageType": 2,

"data": null,

"code": 86,

"sessionId": "69412345-2acf-489f-8e2f-12345c43038",

"id": "cd37e6f8-3781-4def-94b5-b75121234530",

"correlation": 0,

"capacities": [],

"date": "2019-11-05T10:34:24.7522219-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOXI",

"description": null,

"intent": null

}

],

"id": "00000000-0000-0000-0000-000000000000"

}

401 Unauthorized Sin Respuesta.

Enviar un mensaje de texto en una sesión establecida

Utilizando esta función se puede se puede enviar un mensaje de texto desde el cliente a Lynn.

Puntos Importantes:

Ruta:

/api/LynnService/SendTextMessage/{sessionId}/{capacityType}/{clientId}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión a la cual desea enviar el mensaje.
capacityType URL

Tipo de capacidad del canal. Las capacidades válidas son:

- UNKNOWN = 0

- PhoneCall = 1

- DeviceVoice = 2

- WebViewer = 3

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.
BODY El texto del mensaje a enviar. Se envía el body en formato de texto plano.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Esta respuesta corresponde a una respuesta donde la intención solicitada no existe, parámetros importantes:

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

intent

número de la intención solicitada, si su valor es null corresponde a que la intención que se intentó forzar no existe.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

event

Identifica el tipo de evento asociado al mensaje, existen 43 tipos de eventos de mensajes, para ver la lista completa ir a Eventos de Mensajes.

messageType

Tipo de mensaje de la respuesta: 1 Menú, 2 Evento, 3 Texto, se encuentra en cada objeto de la lista eventMessages.

code

Sub-Evento generado en la respuesta del mensaje, la lista completa la puede encontrar en Sub-Eventos de Mensajes.

availableByVoice

Valor booleano que indica si el evento de mensaje está disponible por voz.

availableByText

Valor booleano que indica si el evento de mensaje está disponible en texto.

Json Respuesta

{

"sessionId": "694ef9c9-2acf-489f-8e2f-1f5123453038",

"eventMessages": [

{

"event": 5,

"details": "",

"source": "SendTextMessage",

"messageType": 2,

"data": null,

"code": 85,

"sessionId": "694ef9c9-2acf-489f-8e2f-1f5512345038",

"id": "832d2f2b-0673-47a2-b9fd-123459960aab",

"correlation": 0,

"capacities": [

{

"capacityType": 3,

"name": "",

"clientId": "ef344f35-8e28-4251-96ac-12345cbb2c70",

"description": ""

}

],

"date": "2019-11-05T10:34:24.7509002-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOXI",

"description": null,

"intent": null

},

{

"event": 17,

"details": "",

"source": "",

"messageType": 2,

"data": null,

"code": 86,

"sessionId": "69412345-2acf-489f-8e2f-12345c43038",

"id": "cd37e6f8-3781-4def-94b5-b75121234530",

"correlation": 0,

"capacities": [],

"date": "2019-11-05T10:34:24.7522219-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOXI",

"description": null,

"intent": null

}

],

"id": "00000000-0000-0000-0000-000000000000"

}

401 Unauthorized Sin Respuesta.

Enviar mensaje inducido

Induce al Bot a enviar un mensaje establecido previamente por el cliente.

Puntos Importantes:

Ruta:

/api/LynnService/SendInducedMessage/{tenant}/{sessionId}/{availableByVoice}/{availableByText}/{capacityType}/{clientId}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión a la cual desea enviar el mensaje.
availableByVoice URL Valor booleano que indica si el evento de mensaje está disponible por voz.
availableByText URL Valor booleano que indica si el evento de mensaje está disponible en texto.
capacityType URL

Tipo de capacidad del canal. Las capacidades válidas son:

- UNKNOWN = 0

- PhoneCall = 1

- DeviceVoice = 2

- WebViewer = 3

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

intent

Número de la intención solicitada, si su valor es null corresponde a que la intención que se intentó forzar no existe.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

event

Identifica el tipo de evento asociado al mensaje, existen 43 tipos de eventos de mensajes, para ver la lista completa ir a Eventos de Mensajes.

messageType

Tipo de mensaje de la respuesta: 1 Menú, 2 Evento, 3 Texto, se encuentra en cada objeto de la lista eventMessages.

code

Sub-Evento generado en la respuesta del mensaje, la lista completa la puede encontrar en Sub-Eventos de Mensajes.

availableByVoice

Valor booleano que indica si el evento de mensaje está disponible por voz.

availableByText

Valor booleano que indica si el evento de mensaje está disponible en texto.

Json Respuesta

{

"sessionId": "d9f39c80-86ce-4293-91c0-f7e86409cfec",

"eventMessages": [

{

"event": 20,

"details": "",

"source": "SendInducedMessage",

"messageType": 2,

"data": null,

"code": 21,

"sessionId": "d9f39c80-86ce-4293-91c0-f7e86409cfec",

"id": "e723505c-5b6a-4bb4-9ba7-152f85ad48a4",

"correlation": 0,

"capacities": [

{

"capacityType": 3,

"name": "",

"clientId": "ef344f35-8e28-4251-96ac-ab1b5cbb2c70",

"description": ""

}

],

"date": "2019-11-05T13:07:29.5613596-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOX",

"description": null,

"intent": null

}

],

"id": "00000000-0000-0000-0000-000000000000"

}

401 Unauthorized Sin Respuesta.

Solicita el valor de un parámetro de configuración

Obtiene el valor que tiene un parámetro de configuración de un tenant usando como criterio de búsqueda el nombre de la configuración.

Puntos Importantes:

Ruta:

/api/LynnService/GetConfiguration/{tenant}/{configurationName}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
configurationName URL Nombre de la configuración que se le asignó al momento de crearlo.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Name

Esto representa el nombre de la configuración que acaba de consultar y es idéntico al valor colocado en el campo configurationName.

value

Este es el valor que tiene esa configuración.

Json Respuesta

{

"name": "CHAT_ENGINE",

"value": "PURE_ENGAGE"

}

401 Unauthorized Sin Respuesta.

Modificar el valor de un parámetro de configuración

Modificar el valor que tiene un parámetro de configuración de un tenant usando como criterio de búsqueda el nombre de la configuración.

Puntos Importantes:

Ruta:

/api/LynnService/SetConfiguration/{tenant}/{configurationName}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
configurationName URL Nombre de la configuración que se le asignó al momento de crearlo.
BODY Valor de configuración a establecer en texto plano.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Name

Esto representa el nombre de la configuración que acaba de consultar y es idéntico al valor colocado en el campo configurationName.

value

Este es el nuevo valor que va a manejar esa configuración.

Json Respuesta

{

"name": "CHAT_ENGINE",

"value": " _ENGAGE"

}

401 Unauthorized Sin Respuesta.

Leer mensajes de una sesión

Ejecutando periódicamente esta función se pueden obtener todos los mensajes disponibles en Lynn para el cliente. Se recomienda que para ambientes de voz la frecuencia de ejecución de esta función debe ser de al menos un segundo. Para ambientes de chat esta frecuencia debe ser configurada en 4 segundos.

Puntos Importantes:

Ruta:

/api/LynnService/ReadMessages/{tenant}/{sessionId}/{capacityType}/{clientId}/{date}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión a la cual desea enviar el mensaje.
capacityType URL

Tipo de capacidad del canal. Las capacidades validas son:

- UNKNOWN = 0,

- PhoneCall = 1,

- DeviceVoice = 2,

- WebViewer = 3,

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.
date URL Fecha en que se realiza el requerimiento.

Los mensajes recibidos pueden ser de 3 tipos:

  • Mensajes de texto.
  • Mensajes de menú.
  • Mensajes de eventos.

Todos los mensajes vienen correlacionados con un campo llamado Correlation el cual sirve para ordenarlos.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Corresponde a una respuesta donde Lynn ofrece todos los mensajes disponibles para el cliente, parámetros importantes:

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

textMessages

Lista donde se encuentra data de texto, texto de voz y audio de los mensajes.

menuMessages

Lista donde se encuentra el título, el título de voz y audio del menú.

eventMessages

Lista donde se encuentra el evento y el código de los mensajes.

awaitingMenu

Booleano que indica si el menú está en espera.

awaitingText

Booleano que indica si el texto está en espera.

awaitingValidation

Si la validación está en espera, contiene dos string BussinessType, Regex y dos booleanos AvailableByVoice y

AvailableByText.

awaitingType

Tipo de espera.

supportCancelation

Es un booleano, true: si está activo en la conversación, false: si la conversación es nula o la intención manipulada de la conversación es nula devuelve false.

Json Respuesta

{

"sessionId": "8afe94bc-8d0c-4d0c-a878-76a1476e3e3d",

"textMessages": [],

"menuMessages": [

{

"title": "Como te puedo ayudar en estos temas",

"options": [

{

"index": 0,

"text": "Consulta de Saldo",

"description": ""

},

{

"index": 1,

"text": "Consulta de Puntos",

"description": ""

},

{

"index": 2,

"text": "Ultimos Movimientos",

"description": ""

},

{

"index": 3,

"text": "Transferencia a Ejecutivo",

"description": ""

}

],

"audio": ".",

"messageType": 1,

"voiceTitle": ".",

"sessionId": "8afe94bc-8d0c-4d0c-a878-76a1476e3e3d",

"id": "c35bdda3-1d7e-4c58-b61b-70c00a005382",

"correlation": 2,

"capacities": [],

"date": "2020-04-22T22:24:58.5070106-04:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "1e5826cb-9644-4e2c-b9b6-7b75f0e4b588",

"part": 0,

"partName": "E-Bank",

"description": "",

"intent": {

"name": "Inicio",

"confidence": 1,

"entities": [

{

"name": "@USER_NAME",

"value": "Usuario"

},

{

"name": "@BOT_NAME",

"value": "E-Bank"

},

{

"name": "@CONVERSATION",

"value": "1e5826cb-9644-4e2c-b9b6-7b75f0e4b588"

},

{

"name": "@CONVERSATION_INTENT",

"value": "Inicio"

},

{

"name": "@TRANSCRIPTION_ID",

"value": "7973638f-8200-4106-ae35-b47c84cde65e"

},

{

"name": "@SESSION_ID",

"value": "8afe94bc-8d0c-4d0c-a878-76a1476e3e3d"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "1381c56a-22c6-40b6-a0bd-cc64f3195f99"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

},

{

"name": "Opciones_Menu",

"value": null

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "1381c56a-22c6-40b6-a0bd-cc64f3195f99"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

}

]

}

}

],

"eventMessages": [

{

"event": 6,

"details": "Opciones Menu",

"source": "130437",

"messageType": 2,

"data": null,

"code": 26,

"sessionId": "8afe94bc-8d0c-4d0c-a878-76a1476e3e3d",

"id": "1aa79bf7-1471-461c-be64-a541be3be1bc",

"correlation": 1,

"capacities": [],

"date": "2020-04-22T22:24:58.3926624-04:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "1e5826cb-9644-4e2c-b9b6-7b75f0e4b588",

"part": 0,

"partName": "E-Bank",

"description": null,

"intent": {

"name": "Inicio",

"confidence": 1,

"entities": [

{

"name": "@USER_NAME",

"value": "Usuario"

},

{

"name": "@BOT_NAME",

"value": "E-Bank"

},

{

"name": "@CONVERSATION",

"value": "1e5826cb-9644-4e2c-b9b6-7b75f0e4b588"

},

{

"name": "@CONVERSATION_INTENT",

"value": "Inicio"

},

{

"name": "@TRANSCRIPTION_ID",

"value": "7973638f-8200-4106-ae35-b47c84cde65e"

},

{

"name": "@SESSION_ID",

"value": "8afe94bc-8d0c-4d0c-a878-76a1476e3e3d"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "1381c56a-22c6-40b6-a0bd-cc64f3195f99"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

},

{

"name": "Opciones_Menu",

"value": null

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "1381c56a-22c6-40b6-a0bd-cc64f3195f99"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

}

]

}

}

],

"awaitingMenu": true,

"awaitingText": false,

"awaitingValidation": null,

"awaitingType": "List",

"supportCancelation": true,

"capacity": null

}

Ejemplo 2

{

"sessionId": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e",

"textMessages": [

{

"text": "El saldo de tu cuenta corriente es 1.000.000 pesos.",

"audio": "",

"messageType": 3,

"images": [],

"redirectOptions": [],

"voiceText": "",

"formatter": 0,

"label": "",

"sessionId": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e",

"id": "d55faf4c-865b-4871-869b-17c84d6e04c9",

"correlation": 2,

"capacities": [],

"date": "2020-04-22T22:27:40.579867-04:00",

"availableByVoice": false,

"availableByText": true,

"conversationId": "d28260fa-aa21-44e1-ac13-f466bfbdc330",

"part": 0,

"partName": "E-Bank",

"description": null,

"intent": {

"name": "Inicio",

"confidence": 1,

"entities": [

{

"name": "@USER_NAME",

"value": "Usuario"

},

{

"name": "@BOT_NAME",

"value": "E-Bank"

},

{

"name": "@CONVERSATION",

"value": "d28260fa-aa21-44e1-ac13-f466bfbdc330"

},

{

"name": "@CONVERSATION_INTENT",

"value": "Inicio"

},

{

"name": "@TRANSCRIPTION_ID",

"value": "a21c6b7e-9aec-4f5f-9f16-f22abc367f1a"

},

{

"name": "@SESSION_ID",

"value": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "d99f43ca-d788-4cab-8da4-6b22589c497e"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

},

{

"name": "Opciones_Menu",

"value": "Consulta de Saldo"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "d99f43ca-d788-4cab-8da4-6b22589c497e"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

}

]

}

}

],

"menuMessages": [],

"eventMessages": [

{

"event": 26,

"details": "StopTyping",

"source": "InduceTypingEventFomBot",

"messageType": 2,

"data": null,

"code": 57,

"sessionId": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e",

"id": "573f6850-5462-46b5-b86a-fd295da97b5d",

"correlation": 1,

"capacities": [],

"date": "2020-04-22T22:27:40.5707987-04:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "d28260fa-aa21-44e1-ac13-f466bfbdc330",

"part": 0,

"partName": "E-Bank",

"description": null,

"intent": {

"name": "Inicio",

"confidence": 1,

"entities": [

{

"name": "@USER_NAME",

"value": "Usuario"

},

{

"name": "@BOT_NAME",

"value": "E-Bank"

},

{

"name": "@CONVERSATION",

"value": "d28260fa-aa21-44e1-ac13-f466bfbdc330"

},

{

"name": "@CONVERSATION_INTENT",

"value": "Inicio"

},

{

"name": "@TRANSCRIPTION_ID",

"value": "a21c6b7e-9aec-4f5f-9f16-f22abc367f1a"

},

{

"name": "@SESSION_ID",

"value": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "d99f43ca-d788-4cab-8da4-6b22589c497e"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

},

{

"name": "Opciones_Menu",

"value": "Consulta de Saldo"

},

{

"name": "@CURRENT_INTENT",

"value": "Inicio"

},

{

"name": "@CURRENT_EVALUATION",

"value": "Inicio"

},

{

"name": "@CLIENT_NAME",

"value": "Usuario"

},

{

"name": "phoneNumber",

"value": "Usuario"

},

{

"name": "Nombre",

"value": "Usuario"

},

{

"name": "workgroup",

"value": "TEST"

},

{

"name": "GUID",

"value": "d99f43ca-d788-4cab-8da4-6b22589c497e"

},

{

"name": "lang",

"value": "ES"

},

{

"name": "ChannelId",

"value": "20"

},

{

"name": "ChannelName",

"value": "Chat"

}

]

}

},

{

"event": 11,

"details": "ConversationEnd",

"source": "ExcecuteActions",

"messageType": 2,

"data": null,

"code": 29,

"sessionId": "e6f6a2c3-b70d-4e7e-877e-014ee0c74c4e",

"id": "9f08b090-fd71-4b10-8a0c-38692d53b926",

"correlation": 3,

"capacities": [],

"date": "2020-04-22T22:27:50.1560257-04:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "E-Bank",

"description": null,

"intent": null

}

],

"awaitingMenu": false,

"awaitingText": true,

"awaitingValidation": null,

"awaitingType": "",

"supportCancelation": false,

"capacity": null

}

401 Unauthorized Sin Respuesta.

Enviar la respuesta a un menú

A través de este método se puede enviar la respuesta de un menú.

Puntos Importantes:

Ruta: /api/LynnService/SendMenuResponseMessage/{tenant}/{sessionId}/{ capacityType}/{clientId}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
Tenant URL Identificador del tenant.
sessionId URL Identificador de la sesión a la que se desea enviar el mensaje.
capacityType URL

Tipo de capacidad del canal. Las capacidades validas son:

- UNKNOWN = 0,

- PhoneCall = 1,

- DeviceVoice = 2,

- WebViewer = 3,

- OfficialChannel = 4,

- UnOfficialChannel = 5

clientId URL Identificador del cliente, es un uniqueidentifier que se debe mantener en toda la conversación.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Corresponde a una respuesta donde Lynn envía la respuesta de un menú, parámetros importantes:

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

messageType

Tipo de mensaje de la respuesta: 1 Menú, 2 Evento, 3 Texto, se encuentra en cada objeto de la lista eventMessages.

code

Sub-Evento generado en la respuesta del mensaje, la lista completa la puede encontrar en Sub-Eventos de Mensajes.

availableByVoice

Valor booleano que indica si el evento de mensaje está disponible por voz.

availableByText

Valor booleano que indica si el evento de mensaje está disponible en texto.

Json Respuesta

{

"sessionId": "1c6869ab-36fb-4e74-8f16-eccd41c58c05",

"eventMessages": [

{

"event": 12,

"details": "The the system is not waiting for the response of any menu at this time",

"source": "",

"messageType": 2,

"data": null,

"code": 11,

"sessionId": "1c6869ab-36fb-4e74-8f16-eccd41c58c05",

"id": "f43ddab2-e595-46a6-9b7c-c5ff3ca78fed",

"correlation": 0,

"capacities": [

{

"capacityType": 3,

"name": "",

"clientId": "ef344f35-8e28-4251-96ac-ab1b5cbb2c70",

"description": ""

}

],

"date": "2019-11-11T12:23:26.8619008-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "Bot Demo 1",

"description": null,

"intent": null

}

],

"id": "00000000-0000-0000-0000-000000000000"

}

401 Unauthorized Sin Respuesta.

Adicionar/actualizar entidades a una sesión ya creada y en uso

Las entidades son las variables que se pueden utilizar durante la ejecución de una sesión. Dichas variables son pasadas al inicio de la creación de la sesión y son compartidas por todas las conversaciones que se originen durante el tiempo de vida de la sesión. Además, cuando se crea una conversación dentro de una sesión como producto de una evaluación cognitiva, a esta conversación también se le adicionan todas las entidades que el motor cognitivo haya podido inferir utilizando el texto de evaluación. Utilizando esta función pueden adicionarse entidades (variables) extra a una sesión en uso.

Puntos Importantes:

Ruta: /api/LynnService/SetEntity/{tenant}/{sessionId}/{entityName}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión.
entityName URL Nombre de la entidad a adicionar/actualizar.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Success

Valor booleano que indica si se pudo establecer o no la entidad para la sesión en curso.

Error

Mensaje de error que se incluye solamente cuando el Success es false en cualquier otro caso se omite de la respuesta, esto indica el motivo por el cual falló al intentar agregar la nueva entidad.

Json Respuesta

{

"success": false,

"error": "An item with the same key has already been added. Key: ChannelName"

}

401 Unauthorized Sin respuesta.

Obtener Entidad

Solicita el valor de una entidad referenciado por el identificador de la sesión de una interacción activa para un tenant en particular.

Puntos Importantes:

Ruta:

/api/LynnService/GetEntity/{tenant}/{sessionId}/{entityName}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión de la interaccion.
entityName URL Nombre de la entidad a obtener.

Respuestas

Código http Descripción Cuerpo de la respuesta
200 Success

Este es el valor actual de la entidad en texto plano, entregado en el body de la respuesta.

"WebSimulator"

401 Unauthorized Sin respuesta.

Cancelar la Interacción Actual

Cancela la intención actual del cliente, se mantiene la sesión activa y se sigue interactuando, pero con otro contexto de respuestas.

Puntos Importantes:

Ruta: /api/LynnService/CancelCurrentInteraction/{tenant}/{sessionId}/{reason}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión que se desea cancelar.
reason URL Razón por la cual se desea cancelar la interacción.

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success

Este es el valor actual de la entidad en texto plano, entregado en el body de la respuesta.

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

id

Identificador de la solicitud de cancelación.

Json Respuesta

{

"sessionId": "734a6c23-4ab8-4aff-8d99-fc6408664986",

"eventMessages": [],

"id": "00000000-0000-0000-0000-000000000000"

}

401 Unauthorized Sin respuesta.

Terminar una sesión

Todas las sesiones de Lynn pueden ser terminadas unilateralmente por parte del motor de interacciones de Lynn si se alcanza el tiempo de inactividad utilizado (inactivityTimeout) al momento de crear dicha sesión. Adicionalmente es recomendable que las sesiones que ya no se usen sean terminadas lo cual aumentará el rendimiento de Lynn debido a que no utilizará recursos para monitorear sesiones en desuso.

Puntos Importantes:

Ruta: /api/LynnService/EndSession/{tenant}/{sessionId}

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión que se desea terminar.

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success

sessionId

Identificador de la sesión actual, generada al momento de la creación de la sesión y cuya vigencia será igual a la establecida en el parámetro timeout al momento de crear la sesión.

messages

Lista de mensajes que se le enviaran al cliente antes de cerrar la sesión.

intent

Número de la intención solicitada, si su valor es null corresponde a que la intención que se intentó forzar no existe.

eventMessages

Lista de objetos que corresponden a los eventos de los mensajes establecidos en la respuesta para su procesamiento visual.

event

Identifica el tipo de evento asociado al mensaje, existen 43 tipos de eventos de mensajes, para ver la lista completa ir a Eventos de Mensajes.

messageType

Tipo de mensaje de la respuesta: 1 Menú, 2 Evento, 3 Texto, se encuentra en cada objeto de la lista eventMessages.

code

Sub-Evento generado en la respuesta del mensaje, la lista completa la puede encontrar en Sub-Eventos de Mensajes.

availableByVoice

Valor booleano que indica si el evento de mensaje está disponible por voz.

availableByText

Valor booleano que indica si el evento de mensaje está disponible en texto.

Json Respuesta

{

"sessionId": "734a6c23-4ab8-4aff-8d99-fc6408664986",

"messages": [],

"eventMessages": [

{

"event": 3,

"details": "",

"source": "EndSession",

"messageType": 2,

"data": null,

"code": 4,

"sessionId": "734a6c23-4ab8-4aff-8d99-fc6408664986",

"id": "297356ef-7e63-4bb4-a116-7aedc65d4c76",

"correlation": 0,

"capacities": [

{

"capacityType": 3,

"name": "",

"clientId": "ef344f35-8e28-4251-96ac-ab1b5cbb2c70",

"description": ""

}

],

"date": "2019-11-11T10:56:27.8892839-03:00",

"availableByVoice": true,

"availableByText": true,

"conversationId": "00000000-0000-0000-0000-000000000000",

"part": 0,

"partName": "FOX",

"description": null,

"intent": null

}

]

}

401 Unauthorized Sin respuesta.

Obtener historial de la conversación por sesión

Puntos Importantes:

Ruta:

/api/LynnService/GetHistoricalDialoguesBySession/{tenant}/{sessionId}

Método: POST

Tabla de parámetros

Parámetros Locación Descripción
Tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
SessionId URL Identificador de la sesión que se desea obtener.

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success

[

{

"@timestamp": "2021-01-13T19:10:18.907Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "hola",

"data": {

"message": "hola"

},

"tenant": 31,

"conversation": "00000000-0000-0000-0000-000000000000",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Client",

"user_name": "unknown name",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 1,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:26.986Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "Seleccione la demo a mostrar\r\n",

"data": {

"menu_options": "Demo LMC\r\nDemo E-Bank\r\n",

"menu_header": "Seleccione la demo a mostrar\r\n",

"menu_value": "Demo E-Bank",

"subLevel": "menu"

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Bot",

"user_name": "E-Bank",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 1,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:27.651Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "",

"data": {

"interpretation": 0,

"subLevel": "text",

"audio": "",

"label": "",

"message": ""

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Bot",

"user_name": "E-Bank",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 1,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:45.832Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "Demo E-Bank",

"data": {

"message": "Demo E-Bank"

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Client",

"user_name": "unknown name",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 2,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:57.105Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "Como te puedo ayudar en estos temas\r\n",

"data": {

"menu_options": "Consulta de Saldo\r\nConsulta de Puntos\r\nUltimos Movimientos\r\nTransferencia a Ejecutivo\r\n",

"menu_header": "Como te puedo ayudar en estos temas\r\n",

"subLevel": "menu"

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Bot",

"user_name": "E-Bank",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 1,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:57.13Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "quiero un agente",

"data": {

"message": "quiero un agente"

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Client",

"user_name": "unknown name",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 2,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

},

{

"@timestamp": "2021-01-13T19:10:58.969Z",

"host": null,

"source_name": "broker",

"level": "Dialog",

"subLevel": "Bot",

"message": "Te estamos transfiriendo a uno de nuestros ejecutivos disponibles.",

"data": {

"interpretation": 0,

"subLevel": "text",

"audio": "",

"label": "",

"message": "Te estamos transfiriendo a uno de nuestros ejecutivos disponibles."

},

"tenant": 31,

"conversation": "dcfa5e73-154d-4024-bae6-1925dd4ab549",

"session": "f4f71530-6587-459d-b6ce-b2c48a614765",

"user_id": "Bot",

"user_name": "E-Bank",

"channel_id": 16,

"channel_url": "",

"channel_information": 16,

"type": 1,

"conversationType": null,

"criteria": "UserID",

"criteriaValue": "1188986551"

}

]

401 Unauthorized Sin respuesta.

Obtener historial de la conversación por tenant

[AQUÍ VA INFO]

Puntos Importantes:

Ruta:

/api/LynnService/GetHistoricalDialoguesByTenant/{tenant}

Método: POST

Tabla de parámetros

Parámetros Locación Descripción
Tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success
401 Unauthorized Sin respuesta.
500 Internal Error Internal Server Error.

Enviar archivo adjunto

Se pueden enviar archivos adjuntos los cuales son almacenados en la memoria de Lynn para ser compartidos entre el cliente y el ejecutivo de call center que atienda la interacción. En caso de que la sesión se encuentre siendo entendida por un bot o en una cola de espera este archivo adjunto solamente es entregado mediante una url relativa a la memoria de Lynn. En caso en que este siendo efectivamente atendido por un agente de call center, este archivo es transferido a la plataforma de chat que soporte dicha interacción.

Puntos Importantes:

Ruta: /api/LynnService/UploadFile

Método: POST

Tabla de parámetros

Parámetro Locación Descripción
tenant URL Valor numérico que relaciona el id de tenant configurado en Lynn.
sessionId URL Identificador de la sesión que se desea recuperar.
Content-Type: multipart/form-data
file BODY

FileToUpload

El nombre del fichero.

Respuestas:

Código http Descripción Cuerpo de la respuesta
200 Success

Success

Propiedad que indica que si se pudo cargar el archivo.

sessionId

Sesión de la interacción actual del cliente en formato GUID, se genera cuando se inicia el chat.

fileId

Identificar del archivo en la plataforma en formato GUID para buscar el archivo en la plataforma donde se encuentre guardado.

URL

Dirección web donde se encuentra el archivo a descargar, la base de la dirección viene proporcionada por la dirección de instalación de Lynn.

Json Respuesta

{

"success": true,

"sessionId": "3dc84449-dd7b-46fe-963b-23c23330dec9",

"fileId": "6593d153-f90b-4725-8e85-eae8cd74eb98",

"url": "MobileApp/File?tenant=27&file=6593d153-f90b-4725-8e85-eae8cd74eb98",

"message": null

}

401 Unauthorized Sin Respuesta.

Nota:📑 Descargar un archivo adjunto Los archivos por descargar son notificados al cliente mediante el evento: Data, utilizando el siguiente formato:

FileID = [URL del archivo a descargar]

Esta URL es relativa a dirección en la cual está instalado Lynn.

Tratamientos de archivos

Cuando un archivo es adjuntado a una conversación de chat por parte de Agente de WDE. Lynn lo notifica al cliente mediante un evento de tipo Data con el nombre: FileID y en el Value la url desde la cual descargar el archivo.

Ejemplo:

  {

  `  `"success": true,

  `  `"messages": [

  `    `{

  `      `"Code": 64,

  `      `"Data": {

  `        `"FileID":  "http://172.17.233.15:8080/genesys/2/chat/Desarrollo/00008aE6BKVN17K0/file/01745C66A67BBF4C/download"

  `      `},

  `      `"Details": "",

  `      `"Event": 32,

  `      `"Source": "InduceDataEvent",

  `      `"ExtensionData": {},

  `      `"AvailableByText": true,

  `      `"AvailableByVoice": true,

  `      `"Capacities": [],

  `      `"ConversationId": "00000000-0000-0000-0000-000000000000",

  `      `"Correlation": 2,

  `      `"Date": "/Date(1550231169083)/",

  `      `"Description": null,

  `      `"Id": "76e605b3-345b-4ac1-9619-b50531b40f58",

  `      `"Intent": null,

  `      `"MessageType": 2,

  `      `"Part": 0,

  `      `"PartName": "Agent Name",

  `      `"SessionId": "6741df0b-4962-4c6e-aa35-47a9f8b4f93a"

  `    `}

  `  `],

  `  `"count": 2,

  `  `"awaitingType": "",

  `  `"awaitingText": true,

  `  `"awaitingMenu": false,

  `  `"awaitingValidation": null,

  `  `"supportCancelation": true,

  `  `"nonEventcount": 0

  }

Eventos de Mensajes

Cada uno de estos eventos a su vez se pueden desglosar en unos sub-eventos que describan la actividad específica. Para conocer si un evento los códigos de los sub-eventos ver Sub-Eventos de Mensajes.

Código Evento Nombre del evento
0 UNKNOWN
1 Error
2 NEWSESSION
3 DELETEDSESSION
4 MENUMESSAGESENT
5 TEXTMESSAGESENT
6 MUSTFILLENTITY
7 EXECUTEDACTION
8 EXECUTINGACTIONERROR
9 EXECUTINGCONTEXTCHANGEERROR
10 EXECUTINGDIALOGERROR
11 CONVERSATIONEND
12 IGNOREDMESSAGE
13 INVALIDVALUE
14 SESSIONRESTARTED
15 ACTIONNOTIMPLEMENTEDFORVOICE
16 DISCARDEDIMAGESFORCHANNEL
17 RESPONSETEXTFROMCHANNEL
18 RESPONSEMENUFROMCHANNEL
19 CONVERSATIONSTART
20 INDUCEDMESSAGESENT
21 WEBREDIRECT
22 INTENTNOTFOUND
23 TRANSFERTOEXECUTIVE
24 INTENSIONCANCELED
25 TYPING
26 STOPTYPING
27 STARTBACKGROUNDWORK
28 STOPBACKGROUNDWORK
29 REQUIREDMENUSPECIFICATION
30 REQUIREDMENUSPECIFICATIONWITHOPTIONS
31 AMBIGUOUSTEXT
32 DATA
33 CHATCONVERSATIONEND
34 CHATAGENTCONNECTED
35 DEBUG
36 EXECUTINGACTIONJSONREQUESTERROR
400 ECO
500 ENTITYSETTOMEMORY
600 SESSIONBACKGROUNDWORKERSTART
700 REMEMORYENTITY

Sub-Eventos de Mensajes

Código Evento Padre Código Sub-evento Nombre del evento
1 0 TENANT NOT FOUND
1 UNKNOWN ERROR CREATING SESSION REST CLIENT
5 ERROR END SESSION FROM REST CLIENT
6 ERROR READ MESSAGES FROM REST CLIENT
8 ERROR RESTARTING SESSION FROM REST CLIENT
11 ERROR SENDMENURESPONSEMESSAGE REST CLIENT
15 ERROR REQUIREDMENUSPECIFICATIONWITHOPTIONS REST CLIENT
16 ERROR SET ENTITY REST CLIENT
17 ERROR CANCELCURRENTINTERACTION REST CLIENT
20 ERROR SENDTEXTMESSAGE REST CLIENT
22 ERROR INDUCE MESSAGE REST CLIENT
25 ERROR MULTICHANNELSESSION CANCELCURRENTINTENT
27 ERROR MULTICHANNELSESSION_DAEMON_DOWORK
33 ERROR MULTICHANNELSESSION_DAEMON_DOWORK ACTIONJSONREQUEST POST
34 ERROR MULTICHANNELSESSION_DAEMON_DOWORK CONTEXT CHANGE
40 ERROR MULTICHANNELSESSION  SENDTEXTMESSAGE
42 ERROR MULTICHANNELSESSION  SENDTEXTMESSAGE
43 ERROR MULTICHANNELSESSION  SENDINDUCEDMESSAGE
44 ERROR MULTICHANNELSESSION  SENDTEXTMESSAGE
46 ERROR MULTICHANNELSESSION  SENDINDUCEDMESSAGE
48 ERROR MULTICHANNELSESSION  SENDANSWERTOMENU
49 ERROR MULTICHANNELSESSION  WAITFORMENU
62 ERROR MULTICHANNELSESSION   STARTCHATCONVERSATION
65 ERROR MULTICHANNELSESSION  INDUCEDATAEVENT
67 ERROR SESSIONSTATUS SOAP
69 ERROR SESSIONSTATUS SOAP
70 ERROR CREATESESSION SOAP
72 ERROR DELETESESSION SOAP
73 ERROR READMESSAGE SOAP
75 ERROR SESSIONRESTARTED SOAP
79 ERROR SENDMENURESPONSEMESSAGE SOAP
83 ERROR SENDMENURESPONSEBYLEVENSHTEINDISTANCE SOAP
84 ERROR CANCELCURRENTINTERACTION SOAP
87 ERROR SENDTEXTMESSAGE
89 ERROR SENDINDUCEDMESSAGE
200 ERROR EVALUATEEXTENDEDPROPERTIES EVALUATION
201 ERROR MULTIPLE DEFINITIONS FOR THE SAME ENTITY GETPARAMETERSFORDELEGATIONCOMMAD
202 ERROR ENTITY NOT FOUND IN DATABASE
203 ERROR ENTITY NOT MENU IN EVALUATION OF ACTION CONDITION
204 ERROR ENTITY EXTENDED PROPERTY EVALUATION OF ACTION CONDITION
205 ERROR GENERIC EVALUATION OF ACTION CONDITION
206 ERROR GENERIC EVALUATION OF ACTION CONDITION
207 ERROR ACTIONJSONREQUEST EVALUATION PARAMETERS
208 ERROR EVALUATING PARAMETERS FOR AUDIO DIALOG
209 ERROR EVALUATING PARAMETERS FOR WEB REDIRECT
210 ERROR GENERIC ERROR ON ACTIONS PREPARATION
211 ERROR INTENT NOT FOUND IN DB CONVERSATIONINTENT. CREATEFROMID
212 ERROR GENERIC CONVERSATIONINTENT.CREATEFROMID
213 ERROR GENERIC STARTCHATCONVERSATION
214 ERROR GENERIC GENERATEACTIONFROMDB
215 ERROR CREATING SESSION MULTICHANNELSESSION CREATE
216 ERROR FINALIZECHATCONVERZATION
217 ERROR GENERIC SENDTEXTMESSAGE
2 2 NEW SESSION FROM REST CLIENT SESSIONSTATUS
3 NEW SESSION FROM REST CLIENT CREATESESSION
68 SESSIONSTATUS SOAP
69 CREATESESSION SOAP
3 4 END SESSION FROM REST CLIENT
71 FROM SOAP
218
4 9 MESSAGE SENT FROM REST CLIENT
76 FROM SOAP
5 18 TEXTMESSAGE SENT REST CLIENT
85 FROM SOAP
6 26 MULTICHANNELSESSION_DAEMON_DOWORK
7 32 MULTICHANNELSESSION_DAEMON_DOWORK
9 35 MULTICHANNELSESSION_DAEMON_DOWORK
11 29 MULTICHANNELSESSION_DAEMON_DOWORK
12 14 IGNORE MESSAGE FROM REQUIREDMENUSPECIFICATIONWITHOPTIONS REST CLIENT
23 FROM MULTICHANNELSESSION
41 FROM MULTICHANNELSESSION  SENDTEXTMESSAGE
78 FROM SENDMENURESPONSEMESSAGE  SOAP
82 FROM SENDMENURESPONSEBYLEVENSHTEINDISTANCE  SOAP
13 47 MULTICHANNELSESSION  SENDANSWERTOMENU
14 7 SESSION RESTARTED FROM REST CLIENT
74 FROM SOAP
15 37 MULTICHANNELSESSION_DAEMON_DOWORK
17 19 RESPONSETEXTFROMCHANNEL FROM REST API
86 FROM SOAP
18 10 RESPONSE MENU FROM CHANNEL REST CLIENT
77 FROM SOAP
19 45 MULTICHANNELSESSION  SENDTEXTMESSAGE
20 21 INDUCE MESSAGE SENT FROM REST CLIENT
88 FROM SOAP
21 36 MULTICHANNELSESSION_DAEMON_DOWORK
22 28 MULTICHANNELSESSION_DAEMON_DOWORK
214 ERROR GENERIC GMS CHAT INTERNALLOGOUT
215 ERROR GENERIC GMS CHAT SESSION CREATED
216 ERROR GENERIC GMS WORKER PROCESS_WORKER_DOWORK
217 ERROR GENERIC MULTICHANNELSESSION_DAEMON_DOWORK
24 24 MULTICHANNELSESSION CANCELCURRENTINTENT
27 50 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKAGENT
52 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKBOT
54 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKUSER
56 MULTICHANNELSESSION  INDUCETYPINGEVENTFOMBOT
58 MULTICHANNELSESSION  INDUCETYPINGEVENTFOMUSER
28 51 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKAGENT
53 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKBOT
55 MULTICHANNELSESSION  INDUCEBACKGROUNDWORKUSER
57 MULTICHANNELSESSION  INDUCETYPINGEVENTFOMBOT
59 MULTICHANNELSESSION  INDUCETYPINGEVENTFOMUSER
29 12 REQUIREDMENUSPECIFICATION FROM REST CLIENT
82 FROM SOAP
30 13 REQUIREDMENUSPECIFICATIONWITHOPTIONS FROM REST CLIENT
80 FROM SOAP
31 30

MULTICHANNELSESSION_DAEMON_DOWORK

32 64 MULTICHANNELSESSION  INDUCEDATAEVENT
63 MULTICHANNELSESSION  INDUCEDATAEVENT
33 60 MULTICHANNELSESSION  FINALIZECHATCONVERZATION
34 66 MULTICHANNELSESSION  INDUCEGENERICCONNECTEVENT
35 61 MULTICHANNELSESSION   STARTCHATCONVERSATION
36 31 MULTICHANNELSESSION_DAEMON_DOWORK

Limitaciones declaradas

Cuotas de consumo

rate-limit-by-key los métodos no tienen limitación del tipo rate-limit.

Cuotas por producto

Producto Básico: se activa por defecto al consumir la API. Permite:

  • Periodo: 43.200 segundos (12 horas)
  • Calls: 10.000
  • Bandwidth: 102.400 kilobytes (100 megabytes)

Producto Premium: es necesario solicitarlo a través de partner Lynn o asesor comercial, quien sumistrará el Ocp-Apim-Subscription-Key válido. Permite:

  • Periodo: 43.200 segundos (12 horas)
  • Calls: 20.000
  • Bandwidth: 997.200 kilobytes (997.2 megabytes)

Para ejecutar un reporte con el producto Premium es necesario activar en los headers el parámetro Ocp-Apim-Subscription-Key, tal ycomo se muestra a continuación:

Descripción de errores

Código del error Descripción
403 Out of bandwidth quota. Quota will be replenished in T