> For the complete documentation index, see [llms.txt](https://help.hyperflow.global/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.hyperflow.global/docs/builder-hyperflow/gerenciamento-de-aplicativos/fluxos/resposta/xml.md).

# XML

Com o módulo **XML** você monta respostas estruturadas no formato XML dentro do fluxo, definindo código de status HTTP, cabeçalhos e o corpo da mensagem em um único lugar. É ideal para integrar com sistemas legados, serviços SOAP ou qualquer serviço que exija respostas em XML.

## 🧩 Detalhes do módulo

Para configurar o módulo, preencha os campos abaixo:

| Campo                | O que preencher                                                                                                |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Nome do módulo**   | Nome interno para identificar a função do bloco no fluxo (ex.: "XML - Sucesso").                               |
| **Código de status** | Código HTTP que define o resultado da resposta (ex.: `200` para sucesso, `400` para erro).                     |
| **Cabeçalhos**       | Pares de chave e valor com metadados da resposta em formato JSON (ex.: `{"Content-Type": "application/xml"}`). |
| **Corpo**            | Conteúdo XML retornado ao próximo passo do fluxo ou ao serviço externo. Suporta variáveis do fluxo.            |

{% hint style="warning" %}
Antes de usar o módulo **XML**, você precisa ter um fluxo criado e aberto em **Gerenciamento de aplicativos > Fluxos**.
{% endhint %}

### 🎨 Identificação visual no diagrama

O módulo XML aparece no diagrama com:

* **Cabeçalho verde** — indica que pertence à categoria "Resposta".
* **Tag colorida com o código de status** — verde quando o código é menor que 400 (sucesso) e vermelha quando é 400 ou maior (erro).
* **Prévia do corpo** — as primeiras linhas do XML ficam visíveis direto no cartão, sem precisar abrir as configurações.

## ▶️ Ações principais

{% stepper %}
{% step %}

### Adicionar o módulo no diagrama

#### 🎯 Propósito

Inserir o módulo XML no ponto correto do fluxo para definir o retorno da resposta.

#### ✅ Como fazer na tela

1. Em **Gerenciamento de aplicativos > Fluxos**, abra o fluxo desejado.
2. Na barra lateral de módulos, localize **XML** na categoria **Resposta**.
3. Arraste e solte o módulo no diagrama, no ponto em que a resposta deve ser gerada.
4. Conecte o módulo ao bloco anterior pelo conector de saída.

#### 📌 Resultado esperado

O cartão do módulo XML aparece no diagrama, pronto para configuração, exibindo o código de status padrão `200`.
{% endstep %}

{% step %}

### Configurar resposta de sucesso

#### 🎯 Propósito

Retornar um XML estruturado quando o processo do fluxo for concluído com êxito.

#### ✅ Como fazer na tela

1. Clique duas vezes no módulo XML para abrir as configurações, ou clique no ícone de engrenagem no cartão.
2. Defina o **Código de status** como `200`.
3. No campo **Cabeçalhos**, adicione os metadados necessários. Exemplo:

   ```json
   {
   "Content-Type": "application/xml"
   }
   ```
4. No campo **Corpo**, escreva o XML de retorno. Você pode usar variáveis do fluxo inserindo `{{nome_da_variavel}}` no conteúdo. Exemplo:

   ```xml
   sucessoProcessamento concluído.
   ```
5. Clique em **Salvar alterações**.

#### 📌 Resultado esperado

O fluxo passa a responder com o XML de sucesso configurado, e a tag do cartão fica verde com o código `200`.
{% endstep %}

{% step %}

### Configurar resposta de erro controlado

#### 🎯 Propósito

Padronizar o retorno XML quando houver uma falha esperada ou validação negativa no fluxo.

#### ✅ Como fazer na tela

1. Adicione um segundo módulo XML no caminho de erro do fluxo.
2. Abra as configurações do módulo.
3. Defina o **Código de status** como `400` (requisição inválida) ou outro código de erro adequado (ex.: `422`, `500`).
4. No campo **Corpo**, informe a mensagem de erro em XML. Exemplo:

   ```xml
   400Dados inválidos na requisição.
   ```
5. Clique em **Salvar alterações**.

#### 📌 Resultado esperado

Quando o caminho de erro for executado, o retorno segue o padrão XML definido, e a tag do cartão fica vermelha com o código configurado.
{% endstep %}

{% step %}

### Usar variáveis do fluxo no corpo XML

#### 🎯 Propósito

Inserir dados dinâmicos coletados ao longo do fluxo diretamente no conteúdo da resposta XML.

#### ✅ Como fazer na tela

1. Abra as configurações do módulo XML.
2. No campo **Corpo**, posicione o cursor onde deseja inserir o dado dinâmico.
3. Digite `{{` para ativar o menu de autocompletar e selecione a variável desejada (ex.: `{{nome_cliente}}`, `{{protocolo}}`).
4. A variável ficará destacada no editor como um marcador visual.
5. Clique em **Salvar alterações**.

{% hint style="info" %}
O campo **Cabeçalhos** também aceita variáveis. Use o mesmo recurso de autocompletar com `{{` para inserir valores dinâmicos nos metadados da resposta.
{% endhint %}

#### 📌 Resultado esperado

Ao executar o fluxo, o valor da variável é substituído automaticamente no XML gerado, tornando a resposta personalizada para cada execução.
{% endstep %}
{% endstepper %}

## 💡 Dicas úteis

* **Nomeie os módulos com clareza**: use nomes como **XML - Sucesso**, **XML - Erro 400** para identificar facilmente cada bloco no diagrama.
* **Mantenha o XML válido**: um XML mal formado (tag aberta sem fechamento, por exemplo) pode causar erros ao executar o fluxo. Revise a estrutura antes de salvar.
* **Padronize a estrutura**: use o mesmo formato de XML em todos os retornos do mesmo fluxo para facilitar o consumo pelo sistema que recebe a resposta.
* **Diferença entre XML e JSON**: use o módulo **XML** quando o serviço que consome a resposta exige esse formato — especialmente em integrações com sistemas legados ou serviços SOAP. Para sistemas modernos que aceitam ambos, o módulo [JSON](https://gist.githubusercontent.com/rafaeldias-hyperflow/795a0acc61056bc397c629d912219566/raw/json.md) pode ser mais simples de manter.

## 📋 Caso de uso

Imagine uma integração com um sistema legado de ERP que só aceita respostas em XML:

1. O fluxo recebe uma requisição de consulta de pedido.
2. Um módulo de integração busca os dados do pedido no banco.
3. Se o pedido for encontrado, o módulo **XML - Sucesso** retorna os dados formatados:

   ```xml
   12345aprovadoR$ 350,00
   ```
4. Se o pedido não for localizado, o módulo **XML - Erro 404** retorna:

   ```xml
   404Pedido não encontrado.
   ```

Dessa forma, o ERP recebe sempre uma resposta padronizada em XML, independente do resultado da consulta.

## ✅ Resumo

* O módulo **XML** permite montar respostas no formato XML diretamente no fluxo do Hyperflow Integrações.
* Configure **Código de status**, **Cabeçalhos** e **Corpo** em uma única tela de configuração.
* Suporta variáveis do fluxo no corpo e nos cabeçalhos para respostas dinâmicas.
* A tag colorida no cartão (verde ou vermelha) indica visualmente se o módulo representa sucesso ou erro.
* Use este módulo para integrações com sistemas legados, serviços SOAP ou qualquer serviço que exija respostas em XML.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.hyperflow.global/docs/builder-hyperflow/gerenciamento-de-aplicativos/fluxos/resposta/xml.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
