Índice:
- Creación de proyectos
- Habilitación de la API de Google Drive
- Pantalla de permiso de OAuth
- Creación de credenciales
- Autorizar Credenciales
- Configuración de flujo
Vea cómo guardar el historial de servicios humanos usando la integración de Blip con la API de Google Drive y guarde la transcripción de las conversaciones de su equipo.
—------
A través de la integración de Blip con Google Drive, es posible que, al final de cada atención humana, se genere un archivo .txt en Google Drive con la transcripción de la conversación, manteniendo una copia de seguridad que le permite guardar el historial de atención humana de su chatbot. .
Creación de proyectos
Accede a Google Developers y en tu pantalla de inicio, crea un proyecto.
Nota: si el proyecto aún no está seleccionado, simplemente acceda al menú como el gif de arriba y selecciónelo.
Habilitación de la API de Google Drive
En este paso accederemos a la opción de menú de la parte izquierda, APIs y Servicios → Biblioteca, buscamos Google Drive y finalmente lo activamos.
Nota: si la API no se activa en el primer intento, simplemente haga clic en el botón Activar nuevamente.
Pantalla de permiso de OAuth
Con la API habilitada, configuremos permisos externos. Para hacer esto, en el menú de la izquierda, seleccione la opción de pantalla de permiso de OAuth, ahora verá dos opciones para Tipo de usuario, simplemente seleccione Externo y haga clic en CREAR, como se muestra en el ejemplo a continuación:
Ahora, para finalizar este paso, debe definir un nombre para la API. Ingrese el correo electrónico para soporte y los desarrolladores (recuerde, no debe completar ningún otro campo).
Desplácese hasta la parte inferior de la página y haga clic en GUARDAR Y CONTINUAR.
Luego, en la página siguiente, haga clic en el botón en la parte inferior de la página para GUARDAR Y CONTINUAR. Llegarás al final y deberás hacer clic en el botón Volver al Panel y finalmente Publicar Aplicación.
Creación de credenciales
Ahora vamos a crear las credenciales de acceso a Drive que utilizará Blip.
Para hacerlo, en el menú de la izquierda, haga clic en Credenciales → Crear credenciales → ID de cliente de OAuth.
En la siguiente pantalla, elija el tipo de aplicación como Aplicación web, se enumerarán nuevas opciones, desplácese hasta la parte inferior de la página y haga clic en Agregar URI en la opción URI de redirección autorizada e incluya OAuth 2.0 Playground y haga clic en Crear.
Aparecerá una ventana emergente con el ID del cliente y la clave secreta, copie los valores, GUARDE y haga clic en Aceptar.
Autorizar credenciales
Para finalizar la configuración relacionada con Google Drive, acceda a OAuth 2.0 Playground. Después de eso, haga clic en el engranaje en la esquina superior derecha. En la ventana emergente, habilite la opción Usar sus propias credenciales de OAuth y complete los datos que recopiló en el paso anterior, como se muestra en el siguiente ejemplo:
Ahora simplemente presione CRTL+F y busque la palabra Drive. Seleccione la opción para expandirlo y luego seleccione la opción que tiene https://www.googleapis.com/auth/drive 1, como el siguiente ejemplo:
Una nueva ventana se abrirá. En él, seleccione el correo electrónico que usará para autorizar y haga clic en Permitir, como en el ejemplo a continuación:
Finalmente, haga clic en Código de autorización de intercambio para tokens para obtener el token de actualización, copie su valor y guarde con las credenciales ya guardadas en los pasos anteriores.
Configuración de flujo
El primer paso para guardar el historial de servicios humanos es obtener el token de solicitud del flujo en Blip Builder.
Para ello, en las acciones de entrada del bloque inmediatamente posterior al servicio humano, se deben realizar las siguientes configuraciones.
Cree una acción de entrada de tipo Solicitud HTTP.
El método será POST, la URL será https://accounts.google.com/o/oauth2/token con encabezados vacíos. En última instancia, el Cuerpo será:
{
"client_secret": "seu_id_secreto",
"grant_type": "refresh_token",
"refresh_token": "seu_refresh_token",
"client_id": "seu_id_de_cliente"
}
Guarde las variables de salida de la respuesta en statusAuthGoogle y el cuerpo de la respuesta en oauth, como se muestra en la imagen a continuación.
Nota: No olvide cambiar los campos client_secret, refresh_token y client_id a los obtenidos en los pasos anteriores, el grant_type debe quedar con el valor de refresh_token.
Justo debajo, usaremos la API de Blip para devolver la transcripción de la conversación, configure una nueva solicitud HTTP, el método será POST, la URL será https://{{contractid}}.http.msging.net/commands
con encabezados de tipo de contenido con aplicación /valor json y Autorización con la clave del bot de servicio humano.
Nota: Use la URL con la identificación del contrato para consumir los puntos finales informados a continuación, su rendimiento y operación pueden verse afectados si no tiene la identificación del contrato, por lo que es esencial usar la URL con la identificación del contrato para usar las solicitudes http.
En última instancia, el Cuerpo será:
{
"id": "{{random.guid}}",
"to": "postmaster@desk.msging.net",
"method": "get",
"uri": "/tickets/{{input.content@id}}/messages?attendanceTranscriptionOnly=true"
}
Guarde las variables de salida de respuesta en statusHistory y el cuerpo de la respuesta en responseHistory, como se muestra en la imagen a continuación.
Debajo de esta solicitud, cree una acción de tipo Ejecutar secuencia de comandos pasando el historial de respuesta como parámetro de entrada y guardando el retorno en el historial. El cuerpo del script debe ser:
function run(input) {
var messages = '';
try
{
// remove non-printable and other non-valid JSON chars
input = input.replace(/\\n/g, " ").replace(/\\'/g, "\\'").replace(/\\"/g, '\\"').replace(/\\&/g, "\\&").replace(/\\r/g, " ").replace(/\\t/g, " ").replace(/\\b/g, "\\b").replace(/\\f/g, "\\f");
input = input.replace(/[\u0000-\u0019]+/g,"");
obj = JSON.parse(input);
i = 0;
while(obj["resource"]["items"][i] != null && i < obj["resource"]["items"].length)
{
var o = obj["resource"]["items"][i];
if(o != null)
{
if(o["type"] == 'text/plain'){
if(o["direction"] == 'received')
{
messages = messages + '\n['+dateFormat(o["date"])+'][Usuario] ' + o["content"].replace("<b>","").replace("</b>","");
}
else
{
messages = messages + '\n['+dateFormat(o["date"])+'][Atendente] ' + o["content"].replace("<b>","").replace("</b>","");
}
}
else if(o["type"] == 'application/vnd.lime.select+json'){
t = '\n['+dateFormat(o["date"])+'][Atendente] ' + o["content"]["text"];
for(var j=0; j < o["content"]["options"].length; j++)
{
t = t + " - " + o["content"]["options"][j]["text"].replace("<b>","").replace("</b>","");
}
messages = messages + t;
}
else if(o["type"] == 'application/vnd.lime.media-link+json'){
if(o["direction"] == 'received')
{
messages = messages + '\n['+dateFormat(o["date"])+'][Usuario] <Mídia>';
}
else
{
messages = messages + '\n['+dateFormat(o["date"])+'][Atendente] <Mídia>';
}
}
else if(o["type"] != 'application/vnd.iris.ticket+json'){
if(o["direction"] == 'received')
{
messages = messages + '\n['+dateFormat(o["date"])+'][Usuario] Conteúdo indisponível';
}
else
{
messages = messages + '\n['+dateFormat(o["date"])+'][Atendente] Conteúdo indisponível';
}
}
}
i = i+1;
}
}
catch(e)
{
}
return messages.trim();
}
function dateFormat(input)
{
let d = new Date(input);
let dStr = ("0" + d.getDate()).slice(-2) + "-" + ("0" + (d.getMonth()+1)).slice(-2)+"-"+d.getFullYear();
dStr = dStr + " "+("0" + d.getHours()).slice(-2)+":"+("0" + d.getMinutes()).slice(-2);
return dStr;
}
Como se muestra en la imagen a continuación:
Sube el archivo a Google Drive
Ahora subamos el archivo a Google Drive.
Cree otra solicitud HTTP, con Método será POST , URL será https://www.googleapis.com/upload/drive/v3/files?uploadType=media con Encabezados Content-Type con valor application/json y Autorización con valor Portador {{oauth@access_token}} .
Finalmente, el cuerpo será solo {{historia}}, como se muestra en la imagen a continuación.
Guarde las variables de salida de la respuesta en statusSend y el cuerpo de la respuesta en responseSend.
¡Listo! El historial de servicio que pasó por este flujo se enviará a la cuenta de Google Drive vinculada al correo electrónico autorizado. Sin embargo, estará en formato JSON y sin un nombre definido.
Ahora cree una solicitud HTTP más, con el método PATCH, la URL será https://www.googleapis.com/drive/v3/files/{{responseSend@id}} con el encabezado de autorización con valor de portador {{oauth@ access_token }}. En última instancia, el Cuerpo será:
{
"name":"{{input.content@sequentialId}}.txt",
"mimeType":"text/plain"
}
Guarde las variables de salida de la respuesta en statusUpdate y el cuerpo de la respuesta en responseUpdate, como se muestra a continuación:
El archivo que aparecerá en su unidad se verá así:
Para obtener más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃