Saltar a contenido

Webhook

Un webhook es una retro llamada HTTP, el cual utiliza Lynn para la notificación de eventos a través de un HTTP POST.

Mediante la API de Lynn se puede enviar información y/o eventos a Lynn y para poder completar con una comunicación bidireccional en la aplicación que hace uso de las API debe estar disponible un webhook para recibir dicha mensajería.

El webhook debe ser una API REST POST (http, https) el cual debe ser alcanzable por Lynn y en el Body va a recibir un objeto JSON con una estructura ReadMessageResponse, como recomendación durante la etapa de desarrollo el programador puede utilizar la herramienta NGROK o una similar el cual genera una url que permite a lynn alcanzar una interacción que el programador esta debugeando en su PC.

Un webhook debe cumplir con unos parámetros básicos:

  • Capacidad de recibir llamadas HTTPs verbo POST.

  • Alcanzable desde la instancia cloud de Lynn.

  • Capacidad de procesar la estructura de lectura “readMessage” en formato JSON.

  • (Deseado) Capacidad de registrar transacciones.

  • Tiempos de respuesta @800 Ses \<= 1,4seg peak normal

ReadMessageResponse

Este objeto cuenta con una estructura de datos generales que permite saber el id de la interacción al cual hace referencia el mensaje, adicional puede contener algunos de los siguientes objetos:

{
    "SessionId": "b86be691-2003-471d-XXXX-ac1e2ea83d85",
    "TextMessages": [],
    "MenuMessages": [],
    "EventMessages": [],
    "AwaitingMenu": false,
    "AwaitingText": true,
    "IsOnChatConversation": true,
    "IsAgentConnect": true,
    "AwaitingValidation": null,
    "AwaitingType": "",
    "SupportCancelation": false,
    "SecurityChallenge": "",
    "ExternalConversationId": "",
    "Criteria": "",
    "Value": "",
    "ChannelId": 21,
    "Provider": -1,
    "Tenant": 0000
}
  • SessionId: (GUID) Identifica la sesión al cual pertenece el mensaje.

  • AwaitingMenu: (Boolean) Está a la espera de la respuesta de un menú.

  • AwaitingText: (Boolean) Está a la espera de un text.

  • AwaitingType: (string) indica el tipo de parámetro en correlación AwaitingText.

  • IsOnChatConversation: (Boolean) Estado de la interacción identifica si fue transferida a un callcenter.

  • isAgentConnect: (Boolean) Estado de la interacción identifica si fue ya tiene un agente conectado.

  • SupportCancelation: (Boolean) Identifica si es posible cancelar acción actual (api CancelCurrent).

  • Capacity: (Object) objeto con el detalle de la capacidad con el cual se creó la interacción. (Deprecado)

  • TextMessages: (Object[]) Arreglo de objeto tipo TextMessage con los mensajes que se debe mostrar al cliente.

  • EventMessages: (Object[]) Arreglo de objeto tipo EventMessage con los eventos del sistema.

  • SecurityChallenge: Uso reservado para comunicación entre módulo del core de Lynn.(New)

  • ExternalConversationId: identificador de cliente. (New)

  • Criteria: variable que aloja datos de interes, por ejemplo:RUT. (New)

  • Value: es el valor del Criteria, por ejemplo un rut. (New)

  • ChannelId: Identificador del canal, en el caso de APi´s externas es 21. (New)

  • Provider: Identificador del canal, en el caso de APi´s externas es -1. (New)

  • Tenant: identificador del aplicativo dentro de Lynn. (New)

TextMessage: Objeto que contiene el texto informativo el cual debe ser presentado al cliente; este texto puede ser una respuesta automática del Bot, o un mensaje enviado mediante algún ejecutivo de callcenter, el origen del mensaje se puede identificar con el dato UserID que puede contener los valores (BOT, AGENT, CLIENT).

Text Description automatically
generated

  • SessionId: (GUID) con el id de la interacción que identifica al cliente.

  • Id: (Guid) Id del Mensaje.

  • ConversationId (Guid) Id de la conversación.

  • Part: (int) identifica el origen del mensaje

    • 0: BOT

    • 1: CLIENT

    • 2: AGENT

  • PartName: (string) Nombre del Origen del mensaje, en caso del Bot el nombre del Tenant, en caso de Agent el nombre del ejecutivo, en caso de client es el nombre del cliente actual.

  • Correlation: (int) Orden que se debe reproducir los mensajes y/o eventos, se debe organizar el orden de los mensajes por este campo y luego ejecutarlos secuencialmente.

  • Date: (DateTime) Fecha del mensaje

  • AvailableByVoice: (Boolean) Indica si el mensaje es reproducible en audio en caso de que el canal lo soporte

  • AvailableByText: (Boolean) Indica que el mensaje se puede presentar en la plataforma.

  • Text: (string) El texto informativo a presentar.

  • Audio: (string) nombre del audio a reproducir en casa de que el canal soporte esta funcionalidad.

  • VoiceTextMessage: (string) información que será reproducida por TextToSpeech(TTS) en caso de que el canal soporte la funcionalidad

  • MessageType: (Int)

  • Interpretación: (int)

  • Images:

  • RedirectOpctions:

  • Label: (string)

  • ChatMessage: (Boolean)

  • ChatMessageIndex: (int)

  • Description: ¿

  • Formater: ¿

MenuMessage: Objeto en el cual se solicita una acción del cliente, se le puede presentar un menú para seleccionar una opción, o solicitar un valor en específico por ejemplo el rut, teléfono, email, etc.

Text Description automatically
generated

  • SessionId: (GUID) con el id de la interacción que identifica al cliente.

  • Id: (Guid) Id del Mensaje.

  • ConversationId (Guid) Id de la conversación.

  • Part: (int) identifica el origen del mensaje

    • 0: BOT

    • 1: CLIENT

    • 2: AGENT

  • PartName: (string) Nombre del Origen del mensaje, en caso del Bot el nombre del Tenant, en caso de Agent el nombre del ejecutivo, en caso de client es el nombre del cliente actual.

  • Correlation: (int) Orden que se debe reproducir los mensajes y/o eventos, se debe organizar el orden de los mensajes por este campo y luego ejecutarlos secuencialmente.

  • Date: (DateTime) Fecha del mensaje

  • AvailableByVoice: (Boolean) Indica si el mensaje es reproducible en audio en caso de que el canal lo soporte

  • AvailableByText: (Boolean) Indica que el mensaje se puede presentar en la plataforma.

  • Title: (string) contiene el título del menú.

  • Options: (object[]) Objeto que contiene las opciones del menú.

    • Index: (int) El orden de las opciones.

    • Text: (string) El texto de la opción.

  • VoiceTitle: (string) El título del menú para reproducir con TTS en caso de que el canal lo soporte

EventMessages: Objeto que se utiliza para identificar una gran cantidad eventos de Lynn entre los cuales se destacan (AgentConnect, StartTyping, StopTyping, EndSession, Data, etc)

Text Description automatically
generated