Segmentar atendimentos por equipes no Builder validando horário

Olá, prezados!

Tenho várias equipes que funcionam em horários diferentes. Basicamente equipes que funcionam em horários comerciais e outras que funcionam em horários não comerciais.
Preciso segmentar No Builder, em algum bloco pertinente, a seguinte lógica:

Verifica data e hora agora(real-time),
Se {data} for entre {seg a sexta}
e {hora} for entre {08:00} e {18:00}
transfere para atendimento humano na equipe {comercial}

 Se não, transfere para atendimento humano na equipe {não-comercial}

Podem me ajudar com os passos de como fazer isso no Builder?

Alguém disponível pra ajudar?

Oi @Daniel_Madureira

O Blip oferece a variavel {{calendar.time}} que traz o horário no formato HH:mm, lembrando que está em GMT 0 então será necessário tratar para trazer pro GMT -3.

Você pode fazer isso dentro de um script e retornar true se estiver dentro do horario comercial e false se estiver fora do horário comercial. E então tomar as decisões que forem necessárias.

Abaixo eu vou deixar um script de outra aplicação que também faz isso lembrando que a função nowDate poderia ser substituída pela variavel {{calendar.time}}:

var workDays = '{{config.workDays}}'; //Varivel global criada que pode assumir os valores 0,1,2,3,4,5,6. Sendo 0 domingo e 6 sabado
var endDate = '{{config.endDate}}'; //Varivel global que assume hora no padrao HH:mm
var startDate = '{{config.startDate}}'; //Varivel global que assume hora no padrao HH:mm
var saturdayEndDate = '{{config.saturdayEndDate}}'; //caso sabado seja usado um horario diferente pode ser informado


let timezone_hours = 3;
let timezone_month = 1;


function nowDate(){
 var now = new Date()  
 var day = now.getUTCDate();
 var minute = now.getUTCMinutes();
 var year = now.getUTCFullYear();
 var month = now.getUTCMonth();
 var hour = now.getUTCHours();
 var weekDay = now.getDay(); //workDays, dia da semana, comeca em 0 no domingo até 6 no sabado

month = month+timezone_month; //Conversão necessária pois UTC trabalha de 0-11 e não 1-12
hour = hour-timezone_hours; //Conversão necessária para timezone de brasilia
if(hour == '-3') {hour = '21'}
if(hour == '-2') {hour = '22'}
if(hour == '-1') {hour = '23'}

return obj = {
     'diaS'   : weekDay,
     'diaM'   : day,
     'mes'    : month,
     'ano'    : year,
     'hora'   : hour,
     'minuto' : minute
 }
}
function run(){
   var horaInicio = startDate.slice(0,2);
   var minutoInicio = startDate.slice(3,5);
if (nowDate().diaS === 6){
   var horaFinal = saturdayEndDate.slice(0,2)
   var minutoFinal = saturdayEndDate.slice(3,5)
}else{
   var horaFinal = endDate.slice(0,2)
   var minutoFinal = endDate.slice(3,5)
}
if ( nowDate().diaS === 0){ //Valida se é domingo
   return obj = {
     'atendimento' : false,
     'hora' : nowDate().hora
  }
}else{ //Dias de semana
//console.log(nowDate());
//---Faz as validações de regra de negocio dos horários
if (nowDate().hora < horaInicio){
 return obj = {
  'atendimento' : false,
  'hora' : nowDate().hora
 }
} 
else if(nowDate().hora == horaInicio && nowDate().minuto < minutoInicio)
{
 return obj = {
   'atendimento' : false,
   'hora' : nowDate().hora
  }
}
else if (nowDate().hora > horaFinal)
 {
 return obj = {
   'atendimento' : false,
   'hora' : nowDate().hora
  }
}
else if(nowDate().hora == horaFinal && nowDate().minuto > minutoFinal )
{
 return obj = {
   'atendimento' : false,
   'hora' : nowDate().hora
  }
}
else
{
 return obj = {
   'atendimento' : true,
   'hora' : nowDate().hora
  }
 }
}
}

No final você recebera uma variavel com dois parametros, o parametro atendimento irá ser true dentro do horário e false fora.
E o parametro hora vai trazer a hora que o cliente interagiu, usamos esse parametro para realizar um registro de eventos que vai nos dizer quais os horários de pico.

Espero ter ajudado!!

Pelo que li das documentações, só é possível fazer por script, mas tem um documento no help center que te ajuda a fazer de forma simples e rápida, no meu caso tenho 3 equipes com horários diferentes, setei uma variável extra de contato para definir para qual dos blocos de validação de horário o cliente é encaminhado (após o bot identificar para qual equipe ele será transferido), ou seja é só duplicar a estrutura no documento abaixo quantas vezes for necessário (setores e horários de operação diferentes) :

A estrutura do meu está assim: