Skip to main content

Criando mensagem dinâmica para o atendimento humano via API


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.

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.

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.

1 comentário

Reputação 5
Crachá +1

Muito bom!! 👏😀 Certamente vai ajudar vários membros da comunidade!

Comente