Usando ações de IU
Casos de uso comuns e exemplos
Adicionar uma ação depois que uma tarefa for aceita
Gera um alerta javascript depois que um agente clica para aceitar qualquer tarefa.
flex.Actions.addListener("afterAcceptTask", (payload) => alert("Triggered after event AcceptTask"));
Solicitar confirmação antes de aceitar uma tarefa
Gera um prompt antes da aceitação da tarefa; impede que a ação seja executada com um comando de anulação se o usuário não confirmar.
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 uma ação existente
Substitui a ação original para AcceptTask. Introduz lógica personalizada para alertar sobre a substituição, mas executa a ação original.
flex.Actions.replaceAction("AcceptTask", (payload, original) => {
return new Promise<void>((resolve, reject) => {
alert("I have replaced this Action");
resolve();
}).then(() => original(payload));
});
Registrar uma ação personalizada
Registra uma ação personalizada chamada MyAction
, que faz uma solicitação HTTP. Em seguida, adicionamos um ouvinte à ação CompleteTask que chama essa ação personalizada. Por exemplo, isso pode ser usado para atualizar seu 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 uma mensagem após a conclusão de uma tarefa
Envia uma mensagem pós‐conversa quando a tarefa está em um estado de finalização. Pode ser usado para enviar uma pesquisa ou notificar um usuário de que o agente encerrou a sessão.
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));
});
});
}
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.