Guia de Redirecionamento Avançado para Chatbots

Redirecionar | Bot Builder

Básico

Redirecionar permite aos usuários redirecionar para qualquer um dos outros nós na mesma ou em outras árvores. Este item não é obrigatório e só se aplica quando você deseja enviar respostas de outros nós dentro ou entre árvores.

Propriedade

Descrição

Obrigatório
Árvore A árvore para a qual você deseja redirecionar S
O nó para o qual você deseja redirecionar S

Você também pode clicar aqui para abrir o chatbot ou nó correspondente em uma nova aba.

Haverá linhas tracejadas para representar os relacionamentos de Redirecionamento entre nós gerais.



Há opções de Ajuste Fino para definir ações após o redirecionamento. Você pode usar a chave para ativar ou desativar as ações abaixo:

  1. Executar ações prévias após o redirecionamento
  2. Enviar resposta após o redirecionamento
  3. Executar ações posteriores após o redirecionamento

Avançado

Neste ponto, você provavelmente já dominou a versão básica do redirecionamento, que é bastante direta. Ative o redirecionamento e o sistema executará o nó redirecionado da árvore.

No entanto, a versão básica pode não atender a todos os casos de uso de chatbot.

Digamos que haja um cenário em que o chat ao vivo só pode ser ativado em um determinado período de tempo (horário comercial). Nesse caso, o sistema não pode simplesmente redirecionar um usuário para o mesmo nó de chat ao vivo. O sistema precisará fazer uma verificação antes de determinar para qual nó da árvore redirecionar. Com a versão avançada do redirecionamento, você poderá finalmente levar em conta variáveis (horário comercial) e redirecionar para diferentes nós com base em diferentes casos de uso.

Função Avançada

Quando um nó é executado com sucesso e se o redirecionamento do nó estiver ativado, o nó redirecionado será executado em seguida. Um redirecionamento avançado é uma função do tipo Promise. Um objeto com treeIdnodeCompositeIdsendResponserunPreAction e runPostAction é resolvido pelo callback resolve da função promise.

  1. treeId e nodeCompositeId são respectivamente o ID da Árvore e o ID Composto do nó redirecionado. `
  2. sendResponse é um valor booleano que controla se as respostas do nó redirecionado são enviadas.
  3. runPreAction e runPostAction são valores booleanos que controlam se o preAction e postAction do nó redirecionado são executados, respectivamente.
  4. Qualquer valor salvo no escopo this também é passado para o nó redirecionado.

Resultado Esperado


Exemplo de Redirecionamento 1
Exemplo de Redirecionamento 1

Exemplo de Redirecionamento 2
Exemplo de Redirecionamento 2

Exemplo de Estrutura de Árvore

Exemplo de Estrutura de Árvore com Redirecionamento Avançado
Exemplo de Estrutura de Árvore com Redirecionamento Avançado


Redirecionamento Avançado
Redirecionamento Avançado
  1. Ao ativar o redirecionamento em “Básico”, é necessário escolher a “Árvore” e o “Nó” para o qual deseja redirecionar. Se você quiser personalizar o redirecionamento programaticamente, pode clicar em “Avançado” após ativar o “Redirecionamento”.

  2. Se você deixar o resolve ”( )” vazio, mesmo que o botão de redirecionamento esteja ativado, o nó não será redirecionado.

  3. A área avançada permite escolher um nó diferente de acordo com a situação apresentada. Os desenvolvedores podem codificar o redirecionamento transformado para diferentes condições, decidindo redirecionar ou não por meio do ID Composto do nó.

  4. No exemplo abaixo, o sistema redirecionará para nós diferentes com base no horário do evento. Por exemplo, se o usuário solicitar atendimento ao vivo fora do horário comercial, o nó de chat ao vivo não será acionado. Em vez disso, uma mensagem de fora do expediente será enviada porque o usuário foi redirecionado para o nó correspondente.

return new Promise((resolve, reject) => {
const today = this.moment().utcOffset(8)
let nodeCompositeId
this.fetchDataFromDataSource({
channel: this.channel,
collectionName: "Insert the sample datasource ID with public holiday in the format of year/month/date",
filter: {
year: `${today.year()}`,
month: `${today.month() + 1}`,
date: `${today.date()}`,
}
}).then((json) => {
console.log("json", json)
if (json.length) {
// is Holiday
nodeCompositeId = "Insert the composite ID of the node which consists the non-office hour/holiday message"
} else {
console.log("holiday Check", this.moment().utcOffset(8).hour())
// not Holiday
if (
this.moment().utcOffset(8).day() > 0 &&
this.moment().utcOffset(8).day() < 6 &&
this.moment().utcOffset(8).hour() >= 9 &&
this.moment().utcOffset(8).hour() < 18
) {
// is Office Hour
nodeCompositeId = "Insert the composite ID of the node which triggers the live chat"
} else {
// not Office Hour
nodeCompositeId = "Insert the composite ID of the node which consists the non-office hour/holiday message"
}
}
resolve({
tree: this.node.tree,
nodeCompositeId
})
})
})

IdeiaDICA

Você sempre pode mudar como deseja redirecionar com base em diferentes lógicas de eventos de mensagens. Para mais informações sobre referências de eventos de mensagens, veja a documentação de referência.

Última atualização em 30/5/2024