Verificar atendente

Olá, eu to tentando fazer a questão de verificar a tendente online segui o modelo que tem já do bot pronto mas ainda sim não consegui fazer funcionar e não to conseguindo achar o erro se alguém conseguir me ajudar

4 Curtidas

Olá @Luiz.gustavo, só pra esclarecer o modelo que você viu foi este:

Eu tive ele como base, fiz algumas alterações, funciona em meus bots sem problemas, tente assim:

Crie o bloco para verificação de atendentes com uma requsição HTTP:

No corpo:

{
    "id": "{{random.guid}}",
    "to": "postmaster@desk.msging.net",
    "method": "get",
    "uri": "/teams/agents-online"
}

Após a chamada da API execute o script incluindo o response como variável de entrada:

function run(responseAtendente) {
    result = JSON.parse(responseAtendente)

    let hasAttendant = false;

    for (var i = 0; i < result.resource.items.length; i++) {
        if(result.resource.items[i].agentsOnline > 0){
            hasAttendant = true
        }
    }
    return hasAttendant
}

Depois é só fazer a verificação se hasAttendant for true, existe um atendente online, caso contrário você pode envia-lo para um bloco de atendimento offline.

3 Curtidas

ok, ja vou fazer esse teste mas uma pergunta eu consigo colocar mais de 1 ?
Pois tenho 3 filar diferentes e gostaria de passar se caso não tenha nem um tendente nessa para a que vai ter

1 Curtida

Com 3 filas você diz tipo 3 equipes de atendimento?

1 Curtida

sim tenho umas fila de comercial, suporte e financeiro

2 Curtidas

Entendi, neste caso antes da verificação, através do fluxo do cliente eu defino qual será a equipe que irá atender, por exemplo, se o cliente selecionou financeiro a equipe vai ser definida como financeiro, então eu à incluo como variável na execução do script e deixo o For do script assim:

for (var i = 0; i < result.resource.items.length; i++) {
        if(result.resource.items[i].name === equipe && result.resource.items[i].agentsOnline > 0){
            hasAttendant = true
        }
    }

Agora ele verifica se há atendentes por equipe.

2 Curtidas

coloquei so deu erro

1 Curtida

Consegue postar o print do erro? Todas as variáveis foram definidas?

function run(responseAtendente, equipe) {
    result = JSON.parse(responseAtendente)

    let hasAttendant = false;

    for (var i = 0; i < result.resource.items.length; i++) {
        if(result.resource.items[i].name === equipe && result.resource.items[i].agentsOnline > 0){
            hasAttendant = true
        }
    }
    return hasAttendant
}

Lembrando que a função deve estar como acima, já que agora você deve passam a resposta da API e a sua equipe que deseja verificar.

1 Curtida

1 Curtida

@Luiz.gustavo vou me intrometer aqui na sua conversa com o @Adriano_tsi :sweat_smile: :joy:

Acredito que o problema esteja justamente na definição do Script. Você está esperando duas variáveis como parâmetro responseAtendente e equipe, mas você só está passando como variável de entrada a result. Tente adicionar também o nome da equipe para a qual você irá fazer a checagem, por favor, e veja se funciona.

2 Curtidas

Onde que eu devo colocar qual equipe eu quero fazer a verificação

1 Curtida

No bloco onde você pergunta “Com qual setor gostaria de estar falando?”, quando o cliente responder salve a equipe, por exemplo, se o cliente responder financeiro, você define a variável “equipe” como financeiro. Depois no bloco onde o script é executado você deve adicionar como variável de entrada, assim as variáveis vão ficar “result” e “equipe” e o script deve funcionar.

1 Curtida

assim ?

1 Curtida

Mais ou menos :sweat_smile:, se você salvar assim qualquer conteúdo que o cliente digitar vai ficar salvo na variável, tente colocar na ações, “Definir variável”, aí você define a equipe exatamente como está registrado o nome das equipe, e coloca as condições pra definir a variável pra não acontecer da variável ser definida erroneamente.

1 Curtida

Olá, fiz o teste esse final de semana vi lugares que poderia ter feito errado mas não consegui fazer funcionar a inda, poderia fazer uma call para me orientar?

1 Curtida

Pode ser @Luiz.gustavo, mas tente esse passo a passo:

Fiz esse fluxo simples só para orientar melhor

No bloco onde você pergunta qual o assunto, você define a variável equipe de acordo com a resposta do cliente.

No próximo bloco eu faço a requisição para verificação de atendentes por equipe. E executo o script para tratar a resposta da API.

Requisição:

Script, lembrando de passar a variável de equipe definida no bloco anterior e variável de responsa da requisição:

Depois só definir as condições para direcionar ao atendente.
image

Lembrando que o esse fluxo verifica atendentes online e por equipe então é necessário que tenha um atendente cadastrado na equipe e online.

Qualquer coisa só chamar aqui que a gente faz a call.

1 Curtida

2

1 Curtida

Acredito que o erro esteja nas variáveis, de onde vem a variável “result”? Lembrando também que a ordem das variáveis adicionadas no script é a mesma que você adiciona, ou seja, “responseAtendente” no script está recebendo “result”, e “equipe” no script está recebendo “response”. Troque “result” por “equipe” e inverta a ordem.

1 Curtida

Blz Funcionou dai eu posso duplicar e colocar nos outras filas ?

2 Curtidas

Opa show! Isso mesmo,aí ele já verifica por equipes, é só você definir certinho para cada resposta, por enquanto você só tem a do financeiro, agora só definir as outras equipes tipo: "Definir váriavel: Equipe, recebe o valor: Suporte, se a resposta do usuário for igual “2-Suporte” e assim por diante.

1 Curtida