Projeto do Agent Contas ORACLE
This commit is contained in:
168
workflows/invoice_explanation.v2.yaml
Normal file
168
workflows/invoice_explanation.v2.yaml
Normal file
@@ -0,0 +1,168 @@
|
||||
name: invoice_explanation
|
||||
version: 2
|
||||
start: preparar
|
||||
|
||||
nodes:
|
||||
- id: preparar
|
||||
action: preparar_invoice_explanation
|
||||
input:
|
||||
msisdn: $.input.msisdn
|
||||
customer_id: $.input.customer_id
|
||||
current_invoice_number: $.input.current_invoice_number
|
||||
past_invoice_number: $.input.past_invoice_number
|
||||
current_invoice_due_date: $.input.current_invoice_due_date
|
||||
past_invoice_due_date: $.input.past_invoice_due_date
|
||||
channel: $.input.channel
|
||||
tentativa_anterior: $.vars.preparar.tentativa
|
||||
invoice_explanation_base: $.input.invoice_explanation_base
|
||||
|
||||
- id: formatar
|
||||
action: formatar_invoice_explanation
|
||||
input:
|
||||
explicacao_base: $.vars.preparar.explicacao_base
|
||||
invoice_detail: $.input.invoice_detail
|
||||
pause:
|
||||
enabled: true
|
||||
when:
|
||||
eq: [$.output.await_user_input, true]
|
||||
return_from: $.output.mensagem
|
||||
expected_input:
|
||||
key: resposta_usuario
|
||||
allowed_values: ["SIM", "NAO"]
|
||||
normalize: upper_strip
|
||||
resume_from: decisao
|
||||
|
||||
- id: checar_tentativa
|
||||
action: checar_tentativa_cvn
|
||||
input:
|
||||
tentativa: $.vars.preparar.tentativa
|
||||
|
||||
- id: texto_intencao_invalida
|
||||
action: montar_resposta_texto
|
||||
input:
|
||||
dados:
|
||||
texto_usuario: "Não consegui validar sua solicitação. Pode informar novamente sobre a sua fatura?"
|
||||
|
||||
- id: fim_intencao_invalida
|
||||
action: montar_resposta_texto
|
||||
input:
|
||||
dados:
|
||||
texto_usuario: "Não foi possível validar sua solicitação neste momento."
|
||||
|
||||
- id: resposta_falha_servico
|
||||
action: montar_resposta_texto
|
||||
input:
|
||||
dados:
|
||||
texto_usuario: "Para continuar com a sua solicitação, aguarde um instante."
|
||||
|
||||
- id: decisao
|
||||
action: no_op
|
||||
input: {}
|
||||
|
||||
- id: registrar_sim
|
||||
action: registrar_atendimento_invoice_explanation
|
||||
input:
|
||||
resposta_usuario: SIM
|
||||
|
||||
- id: registrar_protocolo_aceite
|
||||
action: registrar_protocolo_inicio
|
||||
input:
|
||||
msisdn: $.input.msisdn
|
||||
scenario: invoice_explanation_aceite_fechado
|
||||
request_status: Fechado
|
||||
status: CLOSED
|
||||
|
||||
- id: registrar_nao
|
||||
action: registrar_atendimento_invoice_explanation
|
||||
input:
|
||||
resposta_usuario: NAO
|
||||
|
||||
# A variação foi causada por VAS avulso ou estratégico? Sem VAS variado não há nada que
|
||||
# o bot resolva, e insistir com o orquestrador só gasta turno (SPEC §9 "Explicação da variação recusada").
|
||||
- id: checar_vas_variacao
|
||||
action: checar_vas_variado
|
||||
input:
|
||||
invoice_variation: $.input.invoice_variation
|
||||
invoice_detail: $.input.invoice_detail
|
||||
|
||||
# Nó só para nomear o last_node: o backend o mapeia para nao_resolvido em
|
||||
# auto_finalize_status_map, e a fala vem do NAO_RESOLVIDO_CLOSING.
|
||||
- id: finalizar_nao_resolvido
|
||||
action: no_op
|
||||
input: {}
|
||||
|
||||
edges:
|
||||
- from: preparar
|
||||
to: formatar
|
||||
priority: 10
|
||||
when:
|
||||
eq: [$.vars.preparar.success, true]
|
||||
|
||||
- from: preparar
|
||||
to: resposta_falha_servico
|
||||
priority: 20
|
||||
when:
|
||||
eq: [$.vars.preparar.service_failed, true]
|
||||
|
||||
- from: preparar
|
||||
to: checar_tentativa
|
||||
priority: 30
|
||||
when:
|
||||
eq: [$.vars.preparar.success, false]
|
||||
|
||||
- from: checar_tentativa
|
||||
to: fim_intencao_invalida
|
||||
priority: 10
|
||||
when:
|
||||
eq: [$.vars.checar_tentativa.limite_excedido, true]
|
||||
|
||||
- from: checar_tentativa
|
||||
to: texto_intencao_invalida
|
||||
priority: 20
|
||||
|
||||
- from: formatar
|
||||
to: decisao
|
||||
|
||||
- from: decisao
|
||||
to: registrar_sim
|
||||
priority: 10
|
||||
when:
|
||||
eq: [$.input.resposta_usuario, SIM]
|
||||
|
||||
- from: decisao
|
||||
to: registrar_nao
|
||||
priority: 20
|
||||
when:
|
||||
eq: [$.input.resposta_usuario, NAO]
|
||||
|
||||
- from: registrar_sim
|
||||
to: registrar_protocolo_aceite
|
||||
|
||||
- from: registrar_protocolo_aceite
|
||||
to: END
|
||||
|
||||
- from: registrar_nao
|
||||
to: checar_vas_variacao
|
||||
|
||||
- from: checar_vas_variacao
|
||||
to: finalizar_nao_resolvido
|
||||
priority: 10
|
||||
when:
|
||||
eq: [$.vars.checar_vas_variacao.tem_vas_variado, false]
|
||||
|
||||
# Tem VAS variado (ou não deu para saber): devolve ao orquestrador, como sempre.
|
||||
- from: checar_vas_variacao
|
||||
to: END
|
||||
priority: 20
|
||||
|
||||
- from: finalizar_nao_resolvido
|
||||
to: END
|
||||
|
||||
- from: texto_intencao_invalida
|
||||
to: END
|
||||
|
||||
- from: fim_intencao_invalida
|
||||
to: END
|
||||
|
||||
- from: resposta_falha_servico
|
||||
to: END
|
||||
Reference in New Issue
Block a user