Resumen:
- Prerrequisitos
- Recepción de un nuevo ticket
- Asignación de un ticket a un agente
- Recepción de mensajes del cliente
- Mensajes originados por el agente
- Flujo de mensajes
- Finalización de un ticket
Puede ser interesante para su negocio que la atención al cliente sea realizada a través de una herramienta de su preferencia. Con esto en mente, BLiP le permite conectar una plataforma personalizada como canal de atención.
Prerrequisitos
Para llevar a cabo la atención al cliente utilizando un canal de atención personalizado, existen algunos prerrequisitos:
- Agregar la URL de la API que recibirá la información de atención.
- Agregar una clave de autenticación, que será enviada en cada solicitud a la API, para confirmar la identidad de BLiP (Opcional).
- Elegir si los tickets creados para atención utilizarán las reglas de atención de BLiP. En caso de que lo utilicen, agregar las posibles colas para el ticket (Opcional).
Para un flujo de atención completo, existen las siguientes etapas:
Recepción de un nuevo ticket
Una vez que el bot dirige la conversación al servicio de atención, si el canal personalizado está activo, la URL registrada en el paso 1 recibirá una solicitud POST con el mensaje de un nuevo ticket creado. En este primer momento, el ticket se almacena en BLiP con el estado de "Esperando" (Waiting).
Ejemplo de una respuesta con los datos del ticket creado:
{
"type": "application/vnd.iris.ticket+json",
"content": {
"id": "{TICKET_ID}",
"sequentialId": "{TICKET_SEQUENTIAL_ID}",
"ownerIdentity": "{BOT_ID}",
"customerIdentity": "{CUSTOMER_ID}",
"customerDomain": "{CUSTOMER_DOMAIN}",
"provider": "Webhook",
"status": "Waiting",
"storageDate": "2019-11-08T20:15:59.415Z",
"rating": 0,
"unreadMessages": 0,
"closed": false,
"customerInput": {
"type": "text/plain",
"value": "Hello world!"
}
},
"id": "Ticket:{TICKET_ID}:Waiting",
"from": "{TICKET_ID}@desk.msging.net/Webhook"
}
Asignación de un ticket a un agente
Una vez que se crea un ticket, es responsabilidad de la API que recibe el ticket manejarlo y asignarlo a un agente. Esta acción se realiza a través de una solicitud de “cambio de estado" (change status).
En esta etapa, BLiP espera recibir el estado de "Abierto" (Open) junto con el identificador del agente. Por lo tanto, es recomendable que la API del canal personalizado devuelva esta respuesta antes de realizar cualquier otra manipulación en el estado del ticket, evitando así inconsistencias en el flujo.
El comando para actualizar el ticket dentro de la plataforma se puede enviar utilizando la extensión de BLiP Desk, como se muestra en el siguiente ejemplo:
{ "id": "{COMMAND_ID}", "to": "postmaster@desk.msging.net", "method": "set", "uri": "/tickets/change-status", "type": "application/vnd.iris.ticket+json", "resource": { "id": "{TICKET_ID}", "status": "Open", "agentIdentity": "{AGENT_ID}" } } |
Después de enviar la solicitud anterior, BLiP asocia al agente con el ticket, actualizando al nuevo estado de "En Atención". A partir de este momento, el ticket estará listo para intercambiar mensajes.
Recepción de mensajes del cliente
Después de asignar un ticket a un agente, todos los mensajes enviados por el usuario al bot serán redirigidos a la URL registrada en el paso 1. El mensaje enviado por el cliente utilizando BLiP seguirá el estándar del protocolo LIME, el cual puede consultarse en la documentación de BLiP. En esta etapa, las interacciones del cliente con BLiP generan eventos, lo que permite identificar si el cliente envió el mensaje, si está escribiendo (composing) o incluso si pausó (paused) la escritura.
Ejemplo de un mensaje enviado utilizando Blip:
{
"type": "text/plain",
"content": "Olá, sou seu cliente! Poderia me ajudar?!",
"id": "fwd:{MESSAGE_ID}",
"from": "{TICKET_ID}@desk.msging.net/Webhook"
}
{
"type": "application/vnd.lime.chatstate+json",
"content": {
"state": "composing"
},
"id": "fwd:{MESSAGE_ID}",
"from": "{TICKET_ID}@desk.msging.net/Webhook"
}
Mensajes originados por el agente
Una vez que un ticket ha sido asignado a un agente, se vuelve posible enviar mensajes al cliente y comenzar la atención. Para ello, simplemente envíe un mensaje al ticket deseado con el contenido compatible con el Protocolo Lime y documentado por BLiP.
Un ejemplo de mensaje enviado por el agente que puede ser enviado al cliente es el siguiente:
{
"type": "text/plain",
"content": "Olá, vou continuar com seu atendimento!",
"id": "{MESSAGE_ID}",
"to": "{TICKET_ID}@desk.msging.net/Webhook",
}
Flujo de mensajes
Una vez que ha comenzado el tráfico de mensajes, puede ser útil seguir este flujo en tiempo real. Para ello, la extensión de BLiP Desk también proporciona llamadas (APIs) que devuelven esta información. Mediante la solicitud "threads", es posible recuperar la información de diferentes formas, como por ejemplo: mensajes enviados por el cliente, mensajes enviados por el agente, flujo de conversación más reciente, entre otros. El siguiente ejemplo obtiene los últimos 20 mensajes ordenados en una conversación con el bot, para un cliente específico:
Ejemplo de una solicitud para recuperar el flujo de mensajes:
{
"Id": "{COMMAND_ID}",
"method":"get",
"uri":"threads-merged/{CUSTOMER_ID}?$take=20&direction=desc",
"type":"application/vnd.iris.thread-message+json"
}
Ejemplo de la respuesta con los mensajes intercambiados:
"type": "application/vnd.lime.collection+json",
"resource": {
"total": 2,
"itemType": "application/vnd.iris.thread-message+json",
"items": [
{
"id": "424385e7-b150-4fec-963e-8cf680e5299c",
"direction": "received",
"type": "text/plain",
"content": "Meu nome é Maria.",
"date": "2023-07-20T18:50:34.267Z",
"status": "consumed",
"metadata": {
"#uniqueId": "506ab59f-65d9-42e7-8ace-dbab75990c2e",
"date_created": "1689879034244",
"#date_processed": "1689879034259",
"$internalId": "506ab59f-65d9-42e7-8ace-dbab75990c2e",
"$originatorSessionRemoteNode": "postmaster@0mn.io/#omni-gateway-lime-7ffzk",
"$elapsedTimeToStorage": "00:00:00.0108285"
}
},
{
"id": "18394a27-5772-41b5-b7be-28f292816154",
"direction": "received",
"type": "text/plain",
"content": "Olá, preciso de ajuda!",
"date": "2023-07-20T18:21:22.500Z",
"status": "consumed",
"metadata": {
"#uniqueId": "addd53c1-e48b-4c35-b19d-3189de896d6d",
"date_created": "1689877282456",
"#date_processed": "1689877282466",
"$internalId": "addd53c1-e48b-4c35-b19d-3189de896d6d",
"$originatorSessionRemoteNode": "postmaster@0mn.io/#omni-gateway-lime-7ffzk",
"$elapsedTimeToStorage": "00:00:00.0365423"
}
}
}
Finalización de un ticket
Cuando sea necesario finalizar un ticket en atención, simplemente envíe el comando para cambiar el estado del ticket. Una vez que el ticket ha sido cerrado, ya no se podrá actualizar. Este comando puede enviarse utilizando la extensión de BLiP Desk. Un ejemplo del comando:
{
"id": "{COMMAND_ID}",
"to": "postmaster@desk.msging.net",
"method": "set",
"uri": "/tickets/change-status",
"type": "application/vnd.iris.ticket+json",
"resource": {
"id": "{TICKET_ID}",
"status": "ClosedAttendant
}
}
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃