Como configurar horário de atendimento Help Center 15 de março de 2023 20:11 Atualizado Índice: Crie o bot de atendimento Adaptando template de atendimento para verificar atendentes disponíveis por equipe Adicione o script "SetWorkSchedule" Altere o script "CheckWorkTime" Observações Customize o seu template Como sabemos toda a configuração do horário de atendimento é feita pela ação de executar script, e considerando todos os níveis de conhecimento de usuário, neste artigo iremos criar um chatbot template que permite a fácil configuração do horário de atendimento. 1. Crie o bot de atendimento Estruturando bot de atendimento Iniciaremos a estruturação do bot a partir do template de atendimento, conforme imagem abaixo. Adaptando template de atendimento para verificar atendentes disponíveis por equipe No fluxo de template de atendimento, iremos alterar apenas o bloco "2.0 - Verifica Horário Atendimento", portanto nosso fluxo se mantém assim como a imagem do template de atendimento abaixo. 2. Adicione o script "SetWorkSchedule" Adicionando este script no bloco "2.0 - Verifica Horário Atendimento", atente-se na ordem dos scripts. O script "SetWorkSchedule" deve ser executado antes do script "CheckWorkTime", veja na imagem abaixo: Neste script em questão, não há variáveis de entrada. Por sua vez, nosso retorno será salvo na variável workSchedule. Para nosso exemplo, suponhamos que precisamos dos seguintes horários de disponibilidade. Domingo Segunda Terça Quarta Quinta Sexta Sábado Início de atendimento [1] 8:30 8:30 8:30 8:30 8:30 8:30 8:30 Fim de atendimento [1] 12:00 12:00 18:00 12:00 12:00 12:00 8:30 Início de atendimento [2] ----- 13:00 ----- 13:00 13:00 13:00 ----- Fim de atendimento [2] ----- 15:00 ----- 18:00 18:00 18:00 ----- Início de atendimento [3] ----- 15:30 ----- ----- ----- ----- ----- Fim de atendimento [3] ----- 18:00 ----- ----- ----- ----- ----- O script resultante é apresentado logo abaixo e pode ser customizado conforme necessidade: function run() { let workSchedule = [ { num: 0, name: "Sunday", portugueseName: "Domingo", workTime: [ { start: "8:30", end: "12:00" } ] }, { num: 1, name: "Monday", portugueseName: "Segunda-feira", workTime: [ { start: "8:30", end: "12:00" }, { start: "13:00", end: "15:00" }, { start: "15:30", end: "18:00" } ] }, { num: 2, name: "Tuesday", portugueseName: "Terça-feira", workTime: [ { start: "8:30", end: "18:00" } ] }, { num: 3, name: "Wednesday", portugueseName: "Quarta-feira", workTime: [ { start: "8:30", end: "12:00" }, { start: "13:00", end: "18:00" } ] }, { num: 4, name: "Thursday", portugueseName: "Quinta-feira", workTime: [ { start: "8:30", end: "12:00" }, { start: "13:00", end: "18:00" } ] }, { num: 5, name: "Friday", portugueseName: "Sexta-feira", workTime: [ { start: "8:30", end: "12:00" }, { start: "13:00", end: "18:00" } ] }, { num: 6, name: "Saturday", portugueseName: "Sábado", workTime: [ { start: "8:30", end: "12:00" } ] } ]; return JSON.stringify(workSchedule); //Return value will be saved as "Return value variable" field name } Observe o resultado na imagem abaixo: 3. Altere o script "CheckWorkTime" Por fim, alteraremos o "CheckWorkTime", aquele que deve ser o segundo script do "2.0 - Verifica Horário Atendimento". A primeira alteração é nas variáveis de entrada, para este exemplo nossas variáveis de entrada são: config.dateTimeOffset e workSchedule. O retorno do script será salvo ainda na variável isWorkTime. Por sua vez, temos o script propriamente dito, está apresentado abaixo e pode ser transferido para seu bot e funcionará perfeitamente, caso os passos a passos aqui apresentados sejam seguidos. // Receive the variables as parametersfunction run(offset, weekSchedule) {offset = parseInt(offset);weekSchedule = JSON.parse(weekSchedule);let today = nowUTC(offset);if (isWorkDay(today, weekSchedule)) {let todaySchedule = getTodaySchedule(weekSchedule, today);let intervalTime = getIntervalTime(todaySchedule, today);return checkTime(intervalTime, today);}return false;}function getIntervalTime(todaySchedule, today) {let intervalTime = [];for (let i = 0; i < todaySchedule.workTime.length; i++) {intervalTime.push({start: utcDate(todaySchedule.workTime[i].start, today),end: utcDate(todaySchedule.workTime[i].end, today)});}return intervalTime;}function checkTime(intervalTime, today) {for (let i = 0; i < intervalTime.length; i++) {if (today - intervalTime[i].start > 0 && intervalTime[i].end - today > 0)return true;}return false;}function getTodaySchedule(weekSchedule, today) {for (let i = 0; i < weekSchedule.length; i++) {if (weekSchedule[i].num == today.getUTCDay()) return weekSchedule[i];}}//Get now UTC Datefunction nowUTC(offset) {let now = new Date();let utc_timestamp = Date.UTC(now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate(),now.getUTCHours(),now.getUTCMinutes(),now.getUTCSeconds(),now.getUTCMilliseconds());return new Date(utc_timestamp + offset * 3600 * 1000);}//Get UTC Datefunction utcDate(timeString, today) {let hour = getValueByString("hour", timeString);let minutes = getValueByString("minutes", timeString);let utc_timestamp = Date.UTC(today.getUTCFullYear(),today.getUTCMonth(),today.getUTCDate(),hour,minutes,0,0);return new Date(utc_timestamp);}//Get hour/minute by string with pattern HH:mmfunction getValueByString(type, timeString) {if (type === "hour") {return parseInt(timeString.substring(0, timeString.indexOf(":")));} else if (type === "minutes") {return parseInt(timeString.substring(timeString.indexOf(":") + 1, timeString.length));}return 0;}//Get if today is a work dayfunction isWorkDay(today, workDays) {for (let i = 0; i < workDays.length; i++) {if (workDays[i].num == today.getDay().toString()) return true;}return false;} Observações Uma vez que este exemplo foi utilizado para verificação de horários para atendimento humano, o local de alteração para definição de horário de atendimento não será o mesmo do template de atendimento oficial. Veja onde você pode mudar as definições. Altere no script "SetWorkSchedule", caso queira: Adicionar ou retirar dias de atendimento. Adicionar, alterar ou retirar horários de atendimento de um dia. Altere nas variáveis de configuração do chatbot, caso queira: Alterar fuso horário. Customize o seu template Todo conteúdo deste artigo, gerou um template que pode ser configurado, baixado e importado em seu chatbot, a partir desta ferramenta: Para mais informações, acesse a discussão sobre o assunto em nossa comunidade ou os vídeos no nosso canal. 😃 Artigos relacionados Ajustando horário do Builder Criando mensagens interativas no WhatsApp Configuração do arquivo de audiência - Envio de notificações em massa Como adicionar atendentes no Blip Desk Como salvar o número do WhatsApp de um contato