En el detalle técnico debajo encontrarás los diferentes endpoints disponibles para encolar, cerrar una conversación en Live o mantener el diálogo con los agentes. Luego, en este material podrás visualizar más info sobre cómo recibir las respuestas.
⇒Ten en cuenta que es necesario cuentes previamente con el botId y el botToken para iniciar el uso de Live de manera externa. Ambos los solicitarás por Service Request.
Los datos que están en rojo serán considerados obligatorios, de acá en adelante.
1. Encolar: en este endpoint necesitaremos el id del grupo destino perteneciente a Live y los datos del usuario que desea hablar con un agente.
● Endpoint: POST https://gateway.aivo.co/api/v1/live-handler/queue/external
● Body
{ "botId": INT, "groupsId": [INT], "botToken": "STRING", "protocolId": 28, "user": { "hash": "STRING", "firstname": "STRING", "lastname":"STRING", "email":"STRING", "phone": "STRING", "extra": [ "Dato A": "STRING", "Dato B": "INT" ] }, "status": "queued", "lastSender": "user" } |
● Datos clave
- En el campo groupsId deberá ir el ID del grupo, al que se quiere encolar la conversación. Este lo obtendrás del endpoint GET https://live-public-api.agentbot.net/group.
- El hash debe ser único por usuario y recomendamos que sea alfanumérico, como se ve en este ejemplo, b9e8f46b56efbacea7a6a4cdab3.
- Al hash enviado le concatenaremos _botToken. Tenlo en cuenta para el resto de los endpoint.
- Los campos protocolId, status y lastSender deberán ser fijos, siguiendo con el ejemplo del ítem body: 28, “queued” y “user”
- El campo extra en el array de user sirve para agregar cualquier dato que el agente desea observar a la hora de atender, por ejemplo, un nro de ticket; y debe tener el siguiente formato:
"extra": [ "Ticket": 2024 ] |
● Respuesta: el endpoint en caso de éxito devolverá un conversationId, el cual permanecerá en estado queued hasta que se atienda, en la sección.
{ "conversationId": "e169f21f-6f7e-44cd-9bf5-dd6b51d8b24b", "customToken": “token”, "messageQueueId": 0, "notAttended": 0 } |
● Curl ejemplo
curl --location 'https://live-handler.agentbot.net/conversations/queue/external' \ --header 'Content-Type: application/json' \ --data '{ "botId": 1000, "groupsId": [ 2179 ], "botToken": "7114636682f3c091557758286be4a94c", "protocolId": 1, "user": { "hash": "b9e8f46b56efbacea7a6a4cdab", "firstname": "Brian", "lastname": “Rodriguez”, "email": null, "phone": "5492236638596", "username": null, "picture": null, "extra": [ ] }, "status": "queued", "lastSender": "user" }' |
2. Mensaje a Agente: cuando la conversación sea atendida por un agente, va a ser necesario comunicarle al mismo lo que escribe el cliente.
● Endpoint: POST https://gateway.aivo.co/api/v1/live-handler/{{conversationId}}/client/message
● Body
{ "message": [ { "action": "text", "value": "Hola, mi nombre es Tomas y necesito saber el saldo de mi cuenta", "source": "user" } ] } |
● Datos clave
- ConversationId deberá ser el conseguido en el endpoint de encolado.
- El campo action determinará qué tipo de mensaje se envió, puede ser text, file or image.
- En el campo value en el caso de ser un file o image, debes colocar la dirección del S3 o donde está almacenado el dato.
● Curl ejemplo
curl --location 'https://live-handler.agentbot.net/conversations/16d1e0f9-6243-4284-8a57-16460a265908/client/message' \ --header 'Content-Type: application/json' \ --data '{ "message": [ { "action": "text", "value": "Hola, mi nombre es Tomas y necesito saber el saldo de mi cuenta.", "source": "user" } ] }' |