# Variável de usuário (user variable)

### :point\_right: Para que serve?

É o módulo que permite criar variáveis que ficam salvas dentro do usuário que está executando o fluxo. Seu valor é compartilhado entre todos os fluxos e existe durante toda a execução do atendimento. Geralmente é utilizada para salvar valores que fazem referência ao usuário, como por exemplo: **nome**, **e-mail**, **telefone**, etc...

<figure><img src="/files/WNPGYBemB1BPUlcLm9qr" alt=""><figcaption><p>Utilização do módulo <strong>Variável de usuário</strong> em um fluxo real</p></figcaption></figure>

### :point\_right: Detalhes do módulo

A configuração do módulo conta com alguns detalhes que devemos conhecer antes de começar a usá-lo.

Para criar ou atualizar uma variável de usuário, precisamos detalhar em formato **JSON** a variável que desejamos salvar.

Também é necessário **definir o nome das variáveis** e seus respectivos **valores** nas configurações do módulo. Para chamar as variáveis, deve-se usar **{{user.variable}}**.

No campo "**variável**, nomeamos nossa nova variável de usuário. No campo ao lado, chamado de "**valor**", definimos o que será atribuído a ela. Lembrando que sempre deve seguir o formato JSON como neste exemplo:

<figure><img src="/files/zNnfR3b2D9gzH5As8gt2" alt=""><figcaption><p>Variável de usuário em um caso real e complexo, em que é preciso armazenar os dados de um cliente que escolheu fazer uma negociação de dívida.</p></figcaption></figure>

### :point\_right: Caso de uso

#### Armazenar campo de texto

Precisamos armazenar o CPF do usuário de forma que possamos acessá-lo em qualquer ponto do fluxo. Para isso, após validarmos o CPF em um módulo de Chat, utilizamos o módulo **Variável de usuário** para salvar globalmente o valor do CPF. Também devemos determinar no campo variável o nome da variável de fluxo e também o seu valor, utilizando **{{user.text}}** para armazenar o valor do módulo anterior.

#### Armazenar campo de url

Precisamos armazenar a foto da CNH de um cliente como uma variável do usuário. Então, após receber  a mensagem do usuário, podemos armazenar a foto da CNH como uma variável de fluxo determinando o campo "variável" com o nome desejado da variável e seu valor, utilizando **{{user.url}}** para pegar o conteúdo do módulo anterior.

#### **Armazenar diversos outros dados**

Com esse módulo, você consegue armazenar quaisquer variáveis que quiser. Um exemplo nesse caso é a variável de negociação de um contrato. Para isso, foi definida a variável **selected\_negotiation**, com valor **{{input.select\_negotiation}}**.

Dentro do banco de dados, o bot vai buscar informações de andamento e de número do contrato de negociação. O fluxo deve ficar assim:

<figure><img src="/files/bFjCkpckh1wYejZdRqSZ" alt=""><figcaption><p>Exemplo de uma variável de usuário para armazenar dados de clientes que optaram por uma negociação contrato.</p></figcaption></figure>

Isso vai fazer com que, além de armazenar a informação, o bot seja capaz de buscar dados específicos do contrato. Esses dados, chamados com a ajuda de um módulo de [Executar código](/docs/builder-de-chatbots/acao/executar-codigo-run-code.md) ao longo do fluxo, também pode ser armazenados no contato com o cliente, criando a variável de usuário e salvando-a no banco, como no fluxo acima.

:tada: Parabéns por chegar até aqui! Esperamos que esse material te ajude e, caso tenha dúvidas, [acione nosso suporte](https://suporte.hyperflow.global/support/login).


---

# Agent Instructions: 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:

```
GET https://help.hyperflow.global/docs/builder-de-chatbots/acao/variavel-de-usuario-user-variable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
