# Flow Call

{% hint style="info" %}
O conector Flow Call faz parte de um conjunto de conectores para chamada de fluxos externos e retorno de dados do fluxo externo para o fluxo inicializador. Acesse a documentação dos conectores [Flow Trigger](https://docs.floui.io/guia/conectores/categorias/triggers/flow-trigger) e [Flow Output](https://docs.floui.io/guia/conectores/categorias/filas-e-eventos/flow-output) para saber mais sobre como utilizá-los em seu ambiente.
{% endhint %}

{% tabs %}
{% tab title="Parâmetros" %}

<figure><img src="https://215079342-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F226k0cnPTn1PWu9xHcK8%2Fuploads%2F9UoG5aOKaBUe0CP1wKPM%2Fimage.png?alt=media&#x26;token=83947cc5-760d-4c92-bacd-20fe58c92564" alt=""><figcaption><p>Parâmetros de configuração</p></figcaption></figure>

| Campo                      | Tipo                 | Descrição                                                                                                                                                                                                                                                                      |
| -------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Descrição                  | Campo de texto       | Descrição visual do conector no editor de fluxo                                                                                                                                                                                                                                |
| ID do Flow a ser executado | Campo de texto       | Identificador do fluxo externo, do mesmo workspace, que será chamado na execução do fluxo inicializador. O identificador do fluxo pode ser obtido pela URL ao acessar o fluxo.                                                                                                 |
| Chaves para envio ao Flow  | Tabela de parâmetros | <p>Dados que serão enviados ao fluxo externo, no formato de objeto JSON.</p><p>Use a notação Mustache {{msg}} para enviar valores dinâmicos da execução do fluxo.</p>                                                                                                          |
| Chave                      | Campo de texto       | Nome da chave que será enviada para o fluxo externo                                                                                                                                                                                                                            |
| Valor                      | Campo de texto       | Conteúdo da chave que será enviada para o fluxo externo                                                                                                                                                                                                                        |
| Output path                | Campo de texto       | <p>Refere-se ao caminho onde os dados retornados do fluxo externo estão localizados.</p><p>Caso o fluxo externo não retorne os dados para o fluxo inicializador (pelo conector Flow Output), este caminho não estará disponível para uso ou acesso no fluxo inicializador.</p> |
| {% endtab %}               |                      |                                                                                                                                                                                                                                                                                |

{% tab title="Payload" %}

## Sucesso

Quando o conector Flow Call for executado com sucesso e acionar um fluxo externo, poderá haver dois casos.

Fluxo externo retorna dados para o fluxo inicializador: Caso o fluxo externo retorne os dados de volta para o fluxo inicializador estes dados estarão localizados no Output Path configurado no conector Flow Call.&#x20;

No exemplo abaixo, no conector Flow Call foi enviado somente os campos name e last\_name do objeto user. O fluxo externo recebe estes dados, manipula-os e retorna novos dados para o fluxo inicializador para uso, localizados no caminho definido no Output Path do conector Flow Call (retorno\_fluxo\_externo).

Importante: O conector Flow Call aguarda a execução do fluxo externo até que ele finalize. Enquanto o fluxo externo estiver em execução, o fluxo inicializador também estará em execução.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfge6rKsK94-gnNd1vnb1tF9cWoIJZ_wDKCGZOoQuco77CwHEoLcXIMUerd5kNBR9oRfmrPY9hY4YtTs4iEkK5xsUYdYD2uG8-H5op7TtguK1Je1T4sembY04uVC4QRd9SJpAYetw?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Exemplo de retorno de dados</p></figcaption></figure>

Fluxo externo retorna dados para o fluxo inicializado: Caso o fluxo externo não retorne dados para o fluxo inicializador, o fluxo continuará a ser executado e o caminho configurado no Output Path do conector Flow Call não estará disponível para uso no fluxo, ou possivelmente será sobrescrito por outros conectores seguintes.

Os dados do fluxo externo são retornados pelo conector Flow Output. Acesse a [documentação](https://docs.floui.io/guia/conectores/categorias/filas-e-eventos/flow-output) do conector para saber mais.

## Erro

A execução do conector Flow Call poderá ser interrompida por diversos fatores. Segue alguns exemplos comuns e específicos para este conector.

Caso o fluxo externo não exista ou não exista neste workspace, irá ocorrer uma exceção interrompendo a execução do fluxo.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXce7xkpzsgvIwUCQhCliQmrfCWPMq1L7mzvtEFHoyRqTWfsutIPtOTjynaK8en58yzEWn2CqjBHN3e32A6MOxMD1Vk1WcNWfGTTbbgUJHqgnLirErFG9ba0IIx6GJhj8IR3BWHanA?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Fluxo externo não encontrado</p></figcaption></figure>

Caso o fluxo externo exista mas não está ativo para ser executado, irá ocorrer uma exceção interrompendo a execução do fluxo.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfU1OPe1RU0FD30r5UUenODR_UTsM8kE6b0dG3BZE3d9scyzSQFk_oANArorYL9MMCborsNQiCUvJhf9LjPFNOeBdmpayWMMOu1aG-ogZhh8YxicbQA5W53MdQnSlYGjJaY2kZZMw?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Fluxo externo não habilitado</p></figcaption></figure>

Caso o fluxo externo tenha atingido o limite de execuções simultâneas do fluxo, irá ocorrer uma exceção interrompendo a execução do fluxo.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd8XiiSlls8JNbjXWvMtVa7A4Mk31f01yQXqfpGQYlVdswEGE3TzqRa1mjBRjFeUTeEhm4IufTazAWd7SY9WJZGXxkBoy1flcyo-5wn6di5nDZ02cDXD7XyExHrDC2GvodyixSQ?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Fluxo externo atinge limite de execuções</p></figcaption></figure>

Caso o identificador do fluxo externo esteja incorreto, irá ocorrer uma exceção interrompendo a execução do fluxo.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc7gV4mOHomVuzD22u7V1_5oxMGavVHUiXKZmh6YHF-NjMSfGiNEV97HhKgU-dKRVHSrjf4xbsPgqpwpJFwTZ2vlvm1P-RcBpryS8z3B2n7tJeqVTXRkglIs5kNd-dFQf0oz3Ww?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Fluxo externo incorreto</p></figcaption></figure>

Caso não tenha sido especificado o identificador do fluxo externo, irá ocorrer uma exceção interrompendo a execução do fluxo.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdAqIYvaWJ8g6059VGY4y0eSCPAcdbrThAMbxFYO1vZh4tnlkEbMkE4ArqWZCRa0-cgAw4FssHVtxLbFP7TXUnblNGBJayMiQqjf3yUGGozSru_c9mA6bSXuCng7zcNBLhXF7OnBw?key=yLogrgEbXy0K_a4zmB9ApgKO" alt=""><figcaption><p>Fluxo externo não configurado</p></figcaption></figure>

Caso no fluxo externo ocorra algum erro de execução, a execução do fluxo principal irá continuar mas não irá receber a resposta do fluxo externo.
{% endtab %}
{% endtabs %}
