Olá pessoal, tudo bem com vocês?
Espero que sim! Hoje quero trazer um guia para criar mensagem dinâmica conforme a fila de atendimento e o horário que é configurado nessa tela:
Caso de uso: enviar uma mensagem dinâmica que varia conforme a fila, o dia da semana e o horário de atendimento.
1° Após configurar seu horário de atendimento, vamos fazer as requisições http para pegar esses dados:
curl --location 'https://iddocontrato.http.msging.net/commands' \
--header 'Authorization: Key dobot' \
--header 'Content-Type: application/json' \
--data-raw '{
"method": "get",
"to": "[email protected]",
"uri": "/attendance-queues?$skip=0&$take=9999&$ascending=true",
"id": "{{$guid}}"
}'
Isso vai nos trazer todas as filas e precisamos agora coletar é o attendanceHourId da fila desejada.
2° Vamos fazer a request abaixo para pegar os horários da fila.
curl --location 'https://iddocontrato.http.msging.net/commands' \
--header 'Authorization: Key dobot' \
--header 'Content-Type: application/json' \--data-raw '{
"method": "get",
"to": "[email protected]",
"uri": "/attendance-hour-container/{{attendanceHourId}}",
"id": "{{guid}}"
}'
Aí vamos receber todos os dias da semana com o horário de início e fim caso estejam configurados.
Agora quanto aos scripts a serem utilizados no bot: ele vai receber o retorno da primeira request e a fila escolhida durante a navegação.
function run(refilas,filaescolhida) {
let hourid = "";
let response = JSON.parse(refilas);
if (response.resource && response.resource.items) {
response.resource.items.forEach(item => {
if (item.name === filaescolhida) {
hourid = item.attendanceHourId;
}
});
}
return hourid;
}
Com isso ele faz a segunda request e para o próximo script vamos ter de variáveis de entrada calendarhour, calendardayofweek, responsehours que é o retorno da segunda request.
function run(calendarHour, calendarDayOfWeek, responsehours) {
let horariomanhadeinicio = "";
let horariomanhadefim = "";
let horariotardeinicio = "";
let horariotardefim = "";
// Parse the JSON response
let data = JSON.parse(response);
// Check if the response has the required structure
if (data.resource && data.resource.attendanceHourScheduleItems) {
// Iterate through the schedule items to find the matching dayOfWeek
data.resource.attendanceHourScheduleItems.forEach(item => {
if (item.dayOfWeek.toLowerCase() === calendarDayOfWeek.toLowerCase()) {
const startTime = item.startTime.split(':');
const endTime = item.endTime.split(':');
const startHour = parseInt(startTimer0], 10);
const endHour = parseInt(endTime 0], 10);
// Check if the time is in the morning or afternoon
if (startHour < 12) {
horariomanhadeinicio = item.startTime;
horariomanhadefim = item.endTime <= "12:00:00" ? item.endTime : "12:00:00";
}
if (endHour >= 12) {
horariotardeinicio = item.startTime >= "12:00:00" ? item.startTime : "12:00:00";
horariotardefim = item.endTime;
}
}
});
}
return {
horariomanhadeinicio,
horariomanhadefim,
horariotardeinicio,
horariotardefim
};
}
Aí teremos o objeto de retorno com 4 variáveis paras montarmos um texto dinâmico, mas caso não tenha pausa pode se utilizar apenas 2 variáveis de retorno.
Ficaria assim a comunicação:
E aqui o fluxo de exemplo:
Lembrando que esse caso de uso pode variar, e a melhor parte é a disponibilização da API, conforme mostrado no exemplo, que pode ser empregada em várias partes do bot.