169 lines
4.2 KiB
YAML
169 lines
4.2 KiB
YAML
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
|