generalbots/bottemplates/crm/attendance.gbai/attendance.gbdialog/transfer-chat.bas
Rodrigo Rodriguez (Pragmatismo) 037db5c381 feat: Major workspace reorganization and documentation update
- Add comprehensive documentation in botbook/ with 12 chapters
- Add botapp/ Tauri desktop application
- Add botdevice/ IoT device support
- Add botlib/ shared library crate
- Add botmodels/ Python ML models service
- Add botplugin/ browser extension
- Add botserver/ reorganized server code
- Add bottemplates/ bot templates
- Add bottest/ integration tests
- Add botui/ web UI server
- Add CI/CD workflows in .forgejo/workflows/
- Add AGENTS.md and PROD.md documentation
- Add dependency management scripts (DEPENDENCIES.sh/ps1)
- Remove legacy src/ structure and migrations
- Clean up temporary and backup files
2026-04-19 08:14:25 -03:00

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