Redirecionamento por equipe no Desk


Bom dia.


Eu tenho duas equipes de atendentes criadas no Blip, sendo uma Marketing e outra Suporte.

Eu criei uma regra de atendimento para que Se Mensagem do Usuario for “Marketing” encaminha para a equipe Marketing, e outra regra igual para Suporte.


Eu tenho um bloco que verifica com qual setor o usuário deseja falar e encaminha para o bloco de Atendimento humano.


Utilizei o template de atendimento humano disponível.


Problema: o Desk identifica que há atendentes online, porém não verifica se há em equipe “Marketing” ou “Suporte”, se houver apenas 1 online em um desses, ele encaminha como atendentes disponíveis.


Por exemplo, se houver um atendente disponível de Marketing, mas o cliente selecionar Suporte, o blip verifica que há atendentes (pois o de Marketing está online), mas não se há um de Suporte online, ai o usuário fica sem atendimento.


Eu preciso utilizar algum script para fazer essa verificação?


11 comentários

Estou com o mesmo problema. Já te adianto que aquele script do help valida usuários online de forma geral, e não por equipe.


Também estou em busca de um código para isso já que não sou programador e não sei como modificar o código.


Nesse link [Resolvido] Check de Atendente por equipe - #4 por Jose_Gustavo_Lins_Di o @rafaelpa explica o que tem que fazer, mas não compartilha o código.


Será que alguém consegue compartilhar esse código com a gente?

Reputação 7

@twilliann


Para fazer esse tipo de verificação, é preciso realizar uma mudança no script presente neste template de atendimento que verifica se existem atendentes online.


Tente da seguinte maneira:


function run(result, team) {
result = JSON.parse(result)
let hasAttendant = false;

if(result.resource && result.resource.total >= 1){
hasAttendant = result.resource.items.some(function(attendant){
return (attendant.status === 'Online' && attendant.teams.includes(team));
});
}
return hasAttendant;
}

Onde team é uma variável contendo o nome do time que você deseja verificar. Esta variável deve ser passada como parâmetro de entrada para o script.


@Filipe_Gustavo_de_Ca por favor, faça o teste.

Bom dia @BrunoC.


Obrigado pelo retorno. Eu testei e não consegui fazer funcionar.


Defini a variável com o nome da equipe na ação de de entrada. Mesmo com um usuário dessa equipe definido, o retorno é false.


hasattendant: false
previous-stateid@aabdbbdc-aec9-45d9-9f96-855e06615058: 3fc3b6dd-9891-4cac-91a6-1417a1ca9598

result: {
"type":"application/vnd.lime.collection+json",
"resource":{
"total":2,
"itemType":"application/vnd.iris.desk.attendant+json",
"items":[
{
"identity":"blip%[email protected]",
"teams":[
"Comercial",
"Financeiro",
"Suporte"
],
"status":"Offline"
},
{
"identity":"filipe.camargos%[email protected]",
"teams":[
"Suporte",
"Comercial",
"pap"
],
"status":"Online"
}
]
},
"method":"get",
"status":"success",
"id":"e36d8087-4d89-40a5-9873-ed44ed50cb8c",
"from":"[email protected]/#az-iris4",
"to":"[email protected]",
"metadata":{
"#command.uri":"lime://[email protected]/attendants",
"uber-trace-id":"dfed555b84b85f5%3A7098af6262ea8e8a%3Adfed555b84b85f5%3A1"
}
}

stateid@aabdbbdc-aec9-45d9-9f96-855e06615058: 1ea52b7b-b9ee-4ca1-afc6-575308012d44

status: 200

team: pap

Onde estou errando?!

Reputação 7

@Filipe_Gustavo_de_Ca


foi erro meu! 😅


Já corrigi o código. Por favor, faça o teste novamente.

Eu estou passando a resposta do usuário para uma variável {{getSetor}} onde recebe a seleção do usuário, no caso Setor 1, Setor 2, etc.


No meu script defini assim:


function run(result, getSetor) {
result = JSON.parse(result)
let hasAttendant = false;

if(result.resource && result.resource.total >= 1){
hasAttendant = result.resource.items.some(function(attendant){
return (attendant.status === 'Online' && attendant.teams.includes(getSetor));
});
}
return hasAttendant;
}

e na variável de entrada adicionei getSetor, porém ainda recebo no debugger:


....

getsetor: Suporte Técnico

hasattendant: false

isworktime: true

previous-stateid@f26182f3-91d4-4d53-a01b-95f947b30783: 95118c04-1f32-40df-b1b0-54fb24fa2fc7

....
Reputação 7

@twilliann


Você chegou a conferir se na variável result existe um atendente online no time Suporte Técnico?

Sim, nas condições de saída do bloco adicionei Se váriavel resulto é igual a “Suporte Técnico”, encaminha para o bloco Atendente Disponível.

Eu devo excluir a condição que valida hasAttendant ou alterar por getSetor ou result? Não etendi

Reputação 7

Confirme se a variável result está recebendo o valor correto e se nela exista um atendente online no time Suporte Técnico.

@BrunoC Alterei o script, porém a transferência continua a considerar se existe usuário online no desk em geral. Estou com apenas um usuário logado na equipe “pap” e se eu escolher a equipe “comercial” ele continua transferindo.

Reputação 7

@Filipe_Gustavo_de_Ca


Por favor, utilize o Debugger e poste o valor das variáveis aqui para que eu possa conferir.

Comente