Usar las acciones de la interfaz de usuario
Ejemplos y casos de uso comunes
Agregar una acción después de aceptar una tarea
Genera una alerta de javascript después de que un agente haya hecho clic para aceptar una tarea.
flex.Actions.addListener("afterAcceptTask", (payload) => alert("Triggered after event AcceptTask"));
Pedir una confirmación antes de aceptar una tarea
Genera un mensaje antes de la aceptación de la tarea; impide que esa acción se ejecute con un comando abort si el usuario no la confirma.
flex.Actions.addListener("beforeAcceptTask", (payload, abortFunction) => {
alert("Triggered before event AcceptTask");
if (!window.confirm("Are you sure you want to accept the task?")) {
abortFunction();
}
});
Personalizar una acción existente
Reemplaza la acción original de AcceptTask. Inserta la lógica personalizada para alertar sobre el reemplazo, pero ejecuta la acción original.
flex.Actions.replaceAction("AcceptTask", (payload, original) => {
return new Promise<void>((resolve, reject) => {
alert("I have replaced this Action");
resolve();
}).then(() => original(payload));
});
Registrar una acción personalizada
Registra una acción personalizada denominada MyAction
, que realiza una solicitud HTTP. A continuación, agregamos un detector a la acción CompleteTask que invoca esta acción personalizada. Por ejemplo, esto se puede utilizar para actualizar tu sistema CRM.
flex.Actions.registerAction("MyAction", (payload) => {
return
fetch("https://my.server.backend.com/test")
.then(response => {
alert("Triggered MyAction with response " + JSON.stringify(response));
})
.catch(error => {
console.log(error);
throw error;
});
});
flex.Actions.addListener("afterCompleteTask", (payload) => {return flex.Actions.invokeAction("MyAction")});
Enviar un mensaje después de completar una tarea
Envía un mensaje posterior a la conversación una vez que la tarea se encuentra en un estado de conclusión (wrap-up). Se puede utilizar para enviar una encuesta o informar a un usuario que el agente ha cerrado la sesión.
flex.Actions.replaceAction("WrapupTask", (payload, original) => {
// Only alter chat tasks:
if( payload.task.taskChannelUniqueName !== "chat" ) {
original(payload);
} else {
return new Promise(function(resolve, reject) {
// Send the message:
flex.Actions.invokeAction("SendMessage", {
body: 'Thanks for chatting. Your session is now closed.',
channelSid: payload.task.attributes.channelSid
}).then(response => {
// Wait until the message is sent to wrap-up the task:
resolve(original(payload));
});
});
}
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.