Retorno vinculado à Suri

Por padrão, ao executar uma ação de Requisição HTTP, a Suri não espera uma resposta específica, apenas continua o fluxo executando as demais ações, se existirem. Porém existem algumas situações que desejamos utilizar o retorno de tal chamada HTTP de forma mais inteligente dentro do próprio Flow. Abaixo temos um exemplo para ilustrar:

Quero utilizar o Suri Flow para enviar um boleto de segunda via da fatura para meus clientes. Estou utilizando a ação de Requisição HTTP em meu Flow, onde envio os dados do contato para a API e lá consigo saber o último boleto em aberto, mas como faço para enviar de volta para o contato?

É uma situação interessante e bem comum: você deseja que o retorno da sua chamada HTTP seja uma resposta para seu contato - nesse caso, o boleto em PDF que o mesmo solicitou no fluxo. Para isso, basta marcar a opção "O retorno da requisição insere uma ação" na configuração da ação HTTP, como ilustrado abaixo:

Isso indicará à Suri que ela pode esperar um retorno do tipo FlowAction, que é uma ação executada pelo Flow de envio de mensagem ao contato. Retornando uma ação, ela é inserida no fluxo atual sem comprometer a experiência do fluxo e permitindo um leque de opções.

Existem diversos tipos de ação que podemos usar como resposta e iremos falar mais sobre elas mais abaixo, mas já adiantando, ainda utilizando o exemplo do boleto em PDF, sua API deve retornar um objeto do tipo FlowActionSendMediacontendo a url do boleto em questão., que será enviado ao contato que o solicitou.

Note que assim que marcamos a opção, aparece um banner amarelo indicando que as ações posteriores podem sofrer alterações. Isso é apenas um alerta indicando que, dependendo do tipo de FlowAction retornado, as demais ações do fluxo podem não ser executadas. Por exemplo, se sua API retornar com um FlowActiondo tipo "Envio de texto", tudo ok, as ações posteriores irão ser executadas normalmente após a ação de texto inserida ser executada. Mas se sua API retornar um FlowActiondo tipo "Transferir para atendimento humano", aí não faria sentido executar ações posteriores, pois a ação de transferir é uma ação de redirecionamento, que encerra o fluxo atual. Portanto a Suri apenas ignora as próximas ações e transfere o contato para atendimento humano.

circle-info

Caso sua API apresente falha e não consiga retornar nenhum dado ou retorne um FlowActioninválido, não se preocupe: isso não irá quebrar o fluxo da Suri. O flow irá continuar normalmente, enviando as demais ações, caso existam, e registrando o erro em nossos logs para fins de consulta.

Modelos de FlowAction

Atualmente temos suporte aos seguintes FlowAction 's como resposta de requisição HTTP:

  • FlowActionSendText: Envio de texto

  • FlowActionSendMedia: Envio de mídia (imagem, vídeo, áudio ou documento)

  • FlowActionSendLocation: Envio de localização

  • FlowActionCapture: Captura de dado

  • FlowActionRequestAgent: Transferir para atendimento humano

  • FlowActionGoToFlow: Transferir para outro fluxo

Segue abaixo uma definição de todos os modelos listados:

  • FlowActionSendText: Envio de texto

  • FlowActionSendMedia: Envio de mídia (imagem, vídeo, áudio ou documento)

  • FlowActionSendLocation: Envio de localização

  • FlowActionRequestAgent: Transferir para atendimento humano

  • FlowActionGoToFlow: Transferir para outro fluxo

  • FlowActionCapture: Captura de dado. Deixamos ele por último pois é o mais extenso. Lembrando que em caso de captura de Variável ele possui 3 subtipos: Texto livre, Botões e Lista.

    • Nome, E-mail, Telefone, Documento, Observação ou Variável de Texto Livre

    • Variável com botões: lembrando que o máximo de botões é 3

    • Variável com lista: lembrando que o máximo de opções em uma lista é 10, podendo ser divididas em no máximo 3 seções (divisões visuais no WhatsApp)

Agora que você entendeu como funciona o tratamento de Retorno vinculado à Suri, te convidamos a conhecer um pouco mais sobre a maneira mais no-code de integrar: o tratamento de Retorno livre, onde a própria Suri consegue capturar os dados proveninentes de sua API, independente do formato em que estiverem.

Last updated