Regra de atendimento condicionada

Boa tarde,
Montei um fluxograma simples de direcionamento humano com checagem de horario de atendimento e de atendentes online. A situação:
Fiz uma regra de atendimento baseada em atributos extras para direcionamento do atendimento humano a uma equipe (de um único atendente).
Quero que, caso esta equipe(atendente) esteja offline, o usuário seja direcionado não para essa equipe de um único atendente, mas para outra equipe (que possui multiplos atendentes).

Consigo fazer isso de forma “simples” ou apenas com scripts de checagem de atendente na equipe, etc? Como eu faria isso? Obrigado.

2 curtidas

@Guilherme_Jacoby boa tarde!
Acho que a forma mais simples é vincular essa equipe (de um único atendente) com a equipe (que possui múltiplos atendentes) em regras de atendimento
Escolhendo o time na aba atendentes.
Se o atendente está na equipe x e está off-line o atendente da equipe y pode atender também porque em equipes dentro da aba atendentes está marcado para o atendente da equipe y atender x e y, assim o ticket chegaria para ele também.
Não sei se fui claro.

E como eu faria isso?
Atualmente esta assim:
Atendente A ( Equipe A, Equipe TODOS )
Demais atendentes ( Equipe TODOS )

Regra de atendimento;
Se extras contato = A , direciona para Equipe A
Se extras contato =! A , direciona para Equipe TODOS

Da forma como está, se eu definir os extras contato de um usuário para A e houver atendentes online ( Equipe TODOS ), mesmo A não estando online, ele é direcionado para A e fica “parado” no chat sem atendimento.

N sei se entendi errado o que você falou, mas em regras de atendimento são apenas condicionais refereniciadas a uma mensagem ou característica do usuário.

Muito obrigado

1 curtida

La nos (…) você clica em atendimento, depois no lado esquerdo vai em atendente. Em equipes você pode selecionar e fazer um atendente participar de mais de uma equipe. O atendente 1 (off-line) participa da equipe X e o atendente 2 (online) participa da equipe X e Y. Se o atendente 1 estiver off-line o atendente 2 também recebe esse ticket.
Não sei se resolve seu problema, mas é uma alternativa.

E a regra de atendimento ficaria como?

Pois já esta assim atualmente, como eu falei.

Atendente A faz parte da Equipe A e Equipe B.
Direciono o cliente para a Equipe A de um único atendente.
Dessa forma o atendente A pode ver o que foi direcionado só pra ele ( Equipe A ) e o direcionado a todos ( Equipe B ).

Se eu direcionar só para a equipe B, seria o mesmo que não existir a equipe A, pois todos os atendentens poderiam atendender, sem preferencia para o atendente A, que é quem eu quero que atenda certos clientes, caso esteja online.

O cliente digita algo especifico para ir para o atendimento da equipe A?

@costa pode nos ajudar aqui?

Não.
Na prática, na primeira visita, eu adiciono um atributo extra chamado “atendimento” e atribuo como “TODOS”, ai o cliente vai para atendimento humano pela equipe “TODOS” com uma regra de atendimento.
Posteriormente, edito este atributo de extra deste cliente para “Atendente A” e, a partir dai, sempre que ele entrar em contato, vai para atendiimento humano com a equipe “Atendente A” através de uma regra de atendimento que verifica o atributo extra.

Na prática quero fazer de forma que, ele vá para essa equipe “Atendente A” preferencialmente. Caso a equipe “Atendente A” não esteja online, ele iria pra equipe “Atendente TODOS”.

Pensei o seguinte, criar um bloco de atendimento humano 2 onde o atendente (A) recebe os tickets, e se caso ele esteja off-line seja direcionado para o bloco de atendimento (B).
@Bia tem como fazer isso?

1 curtida

Ei @Guilherme_Jacoby! Seja muito bem-vindo! Sempre que chega gente nova aqui indicamos o tópico de Primeiros Passos :hatching_chick: para entender melhor como a Comunidade Blipper funciona! :blush:

Obrigada @Rafael_dos_Anjos por já ter recebido o Guilherme tão bem! :blipinlove:

Sobre essa solução, acredito que é possível sim. Vou pedir que o @BrunoC avalie também se há como fazer isso de forma nativa no Blip :happyblip:

1 curtida

Bem vindo ao Fórum @Guilherme_Jacoby.

Para fazer isso você precisa buscar os atendentes online e decidir pra qual time vai jogar o seu usuário antes de enviar para a caixa de Atendimento Humano e setar a variavel de extra já do time desejado.

Para buscar os atendentes online você pode enviar esse command, depois com o resultado dele você vai filtrar todos os atendentes que estão no time XPTO e que estejam com o status online.

O nosso template padrão de atendimento humano faz essa pesquisa de atendentes online, caso queira ter um exemplo bem proximo do que você precisa fazer basta criar um bot novo lá no blip e escolher a opção de Atendimento Humano ao invés de criar do zero, nesse template você vai ter uma caixinha que checa a disponibilidade fazendo as duas ações necessarias (requisição + script).

1 curtida

Bom dia Gabriel, muito obrigado pela resposta.
Atualmente eu já uso esse script (baseado inclusive no modelo de atendimento humano padrão) para checar atendentes online. O problema é que ele não verifica a equipe, mas a existência de qualquer atendente.

O segundo problema é que, na prática serão diversas Equipes e cada cliente ficará com uma.

Na prática:
Cada cliente terá seu atendente preferencial. Caso o atendente preferencial não esteja online, ele será atendido por algum atendente qualquer.
Por exemplo, teremos 5 atendentes. Cada atendente fará parte de uma equipe com seu próprio nome e uma equipe “Geral”.
Clientes receberão atributo extra referente ao atendente preferencial dele.
Caso o atendente preferencial esteja online, ele será redirecionado para este atendente preferencial, caso contrário irá para o grupo “Geral”, onde qualquer um atenderá.

É possível fazer isso com esse código? Como eu conseguiria fazer isso?

Obrigado a todos pela ajuda!

Você vai modificar esse script que você tem de checar se existe algum atendente ativo para filtrar a partir do time, pra isso adicione a variavel que guarda qual time o usuário deve ir como variável de entrada do script, em seguida modificar onde valida o status como online para checar se teams possui o time que o usuário está destinado a ir.

Você pode usar esse script aqui para fazer isso:

const run = (result, team) => {
    result = JSON.parse(result);

    return result.resource &&
        result.resource.total > 0 &&
        result.resource.items.some(
            (attendant) =>
                attendant.teams.includes(team) &&
                attendant.status === 'Online'
        );
}

Assumindo que a variavel extra do contato de nome team armazena qual fila o usuário deve ir, sua ação vai ficar parecida com isso aqui:

Com isso vc vai validar se existe um atendente na fila desejada, agora para transbordar para a fila geral caso não haja nenhum atendente disponivel você pode salvar o valor do team em uma outra variavel e remover ele dos extras (assim ele vai transbordar para a fila Geral) e depois que sair do atendimento basta colocar de volta o valor que dá proxima vez que esse usuário transbordar a mesma validação será feita.

Ah, para remover uma variavel dos extras basta setar um novo valor pra ela, basta esse valor não bater com nenhuma das regras de atendimento definidas que o usuário vai cair na fila principal.

Muitissimo obrigado Gabriel ! Estamos quase lá. Fiz como você instruiu e cheguei no seguinte fluxograma:

no 3.0 vejo se o atendente preferencial está online. Caso esteja, é direcionado para ele. Caso negativo, ele checa se existe algum qualquer. Se existe, ele salva o extra.atendente antigo em uma variável (que vou definir nesse cliente novamente depois) e define o extra.atendente para “TODOS” e pode ser direcionado para o atendimento geral, indo para 3.1 e 4.0.

O problema agora é que, para eu colocar de volta o extra.atendente que eu salvei em uma variável, eu preciso que o cliente saia do bloco 4.0 (de atendimento), colocando a informação de contato na entrada de 5.0. Estou fazendo isso e pelos testes funciona normalmente como deveria.
Agora a dúvida é: o cliente SEMPRE vai para o 5.0 quando o atendente finaliza o atendimento? E se o cliente demorar muito para sair do atendimento? a variável que eu salvei se manteria salva por bastante tempo até ele sair do atendimento humano?

Muito obrigado!

2 curtidas

Sim, a não ser que vocë adicione uma nova saida no bloco de atendimento humano.

Sim, essas variaveis definidas sempre vão estar disponiveis, elas não expiram. Até existe uma possibilidade de criar uma variavel que deleta sozinha (variavel de context com tempo de expiração) mas não vem ao caso.

1 curtida

Perfeito, Gabriel. Acho que está solucionado então!

Muito obrigado a todos pelo suporte!
Qualquer coisa peço um SOS novamente por aqui, abraços!

2 curtidas

@Guilherme_Jacoby, feliz que deu tudo certo e que esses feras em Blip conseguiram te ajudar :blipinlove:

Volte também para compartilhar dicas e feedbacks sobre sua experiência, viu? E quem sabe até ajudar outros blippers por aqui… :curiousblip:

Um abraço!