66 lines
2.2 KiB
QBasic
66 lines
2.2 KiB
QBasic
PARAM session_id AS STRING LIKE "uuid" DESCRIPTION "ID da sessão" OPTIONAL
|
|
PARAM skill AS STRING LIKE "suporte" DESCRIPTION "Habilidade ou fila destino (ex: financeiro, vendas)" OPTIONAL
|
|
PARAM priority AS STRING LIKE "high" DESCRIPTION "Nova prioridade (urgent, high, normal, low)" OPTIONAL
|
|
PARAM reason AS STRING LIKE "Dúvida sobre boleto" DESCRIPTION "Motivo da transferência (obrigatório)"
|
|
|
|
DESCRIPTION "Transfere o chat para outro nível de suporte ou fila usando Habilidades, ajustando prioridade."
|
|
|
|
IF NOT reason THEN
|
|
TALK "Qual é o motivo da transferência para o próximo atendente?"
|
|
HEAR reason AS STRING
|
|
END IF
|
|
|
|
IF NOT priority THEN
|
|
priority = "normal"
|
|
END IF
|
|
|
|
' Tratar ID da sessão conversacionalmente
|
|
IF NOT session_id THEN
|
|
' Busca sessões ativas do atendente
|
|
my_sessions = GET "/api/attendance/queue?status=active"
|
|
IF UBOUND(my_sessions) = 0 THEN
|
|
TALK "Você não tem nenhuma sessão de atendimento ativa no momento para transferir."
|
|
RETURN
|
|
END IF
|
|
IF UBOUND(my_sessions) = 1 THEN
|
|
session_id = FIRST(my_sessions).session_id
|
|
ELSE
|
|
TALK "Você tem " + UBOUND(my_sessions) + " atendimentos ativos. Vou mostrar os nomes, por favor diga qual deseja transferir:"
|
|
FOR EACH s IN my_sessions
|
|
TALK "- **" + s.user_name + "** via " + s.channel
|
|
NEXT s
|
|
HEAR query AS STRING
|
|
' Busca simplificada
|
|
FOR EACH s IN my_sessions
|
|
IF INSTR(LCASE(s.user_name), LCASE(query)) > 0 THEN
|
|
session_id = s.session_id
|
|
END IF
|
|
NEXT s
|
|
IF NOT session_id THEN
|
|
TALK "Não consegui identificar a sessão."
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
' TRANSFER TO HUMAN envia para a roleta novamente
|
|
' No BASIC real, seria executado ou POSTado na API de transferência
|
|
|
|
transfer_payload = #{
|
|
required_skill: skill,
|
|
priority: priority,
|
|
transfer_reason: reason,
|
|
transferred_by: GET "session.user_id"
|
|
}
|
|
|
|
POST "/api/attendance/sessions/" + session_id + "/transfer", transfer_payload
|
|
|
|
TALK "✅ **Sessão Transferida!**"
|
|
TALK "Motivo: " + reason
|
|
IF skill THEN
|
|
TALK "Aguardando um especialista em **" + skill + "**"
|
|
ELSE
|
|
TALK "Aguardando o próximo atendente livre."
|
|
END IF
|
|
|
|
RETURN session_id
|