# Variáveis

Variáveis são usadas para armazenar qualquer informação que o bot sabe sobre um usuário. Isso pode ser o idioma preferido deles, ou o canal que estão usando, mas também informações provenientes de fontes de dados externas como, por exemplo, uma API.&#x20;

Todas as variáveis usadas em uma única conversa são armazenadas no que é chamado de [sessão do usuário](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/bot-answers/session).

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FXi1rr5qphUynDLWQQWJN%2FScreenshot%202024-06-06%20at%2013.24.43.png?alt=media&#x26;token=a4a81084-70e9-4ead-94ff-279be329d45d" alt=""><figcaption><p>A página de Variáveis</p></figcaption></figure>

## Criar uma variável

Para criar uma variável a partir da **página de Variáveis** :

1. Clique em **Criar variável** no canto superior direito da tela.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fy0uezE5HMsF6xYF5XcQ2%2FScreenshot%202023-09-12%20at%2011.51.53.png?alt=media&#x26;token=5572e47d-ac13-4120-9e33-db335964c978" alt="" width="375"><figcaption><p>Criar uma variável a partir da página de Variáveis</p></figcaption></figure>

2. Uma janela aparece. Preencha o **Nome**, **Valor padrão** e **Descrição**.

{% hint style="info" %}
Por exemplo, um valor padrão pode ser usado para o caminho da URL para garantir que o chatbot sempre possa buscar dados ou interagir com serviços externos corretamente.
{% endhint %}

{% hint style="danger" %}
Observe que os valores padrão são:

* Limitados ao tipo de dado string.
* Exportados com a exportação do bot. Isso significa que variáveis juntamente com seus valores padrão serão sobrescritas na importação.
* Se uma variável tiver um valor padrão na versão LIVE, publicar não o alterará. Caso não tenha, o valor padrão da versão DRAFT será copiado para a versão LIVE.
* Se você usar uma [ação Limpar sessão](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/action-bot-dialog#clear-session) , o valor de uma variável será redefinido para seu valor padrão se tiver sido modificado durante a sessão.&#x20;
  {% endhint %}

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2F3JmTArjZfAckM968gHXy%2Fimage.png?alt=media&#x26;token=cd7f0416-c2fe-4419-9fe2-13f7e4fe331e" alt=""><figcaption><p>Exemplo de uma variável com um valor padrão para chamar um endpoint de API.</p></figcaption></figure>

3. Clique em **Criar variável**.

## Definir uma variável como sensível

O Chatlayer permite que você garanta que algumas variáveis sejam processadas de forma diferente. Isso é útil quando a conversa entre um bot e um usuário contém **informações sensíveis**, como o número da conta bancária do usuário ou qualquer coisa sensível ao GDPR.

{% hint style="danger" %}
Se você definir sua variável como sensível, seu valor nunca será mostrado no Chatlayer. Em vez disso, os usuários verão um espaço reservado. O valor real da variável só pode ser recuperado por meio de uma [requisição de API](https://api.chatlayer.ai/v1/docs/#operation/getAllMessagesInConversation).
{% endhint %}

Para definir uma variável como sensível:

1. [Criar uma variável](#create-a-variable) ou edite-a usando o **Editar** botão.
2. Ative a **opção Sensível** se você não quiser que esta variável seja salva no histórico da conversa.
3. Clique em **Criar variável**.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FMBOjwTf8Zl0PXska7RFS%2FScreenshot%202023-09-12%20at%2011.52.11.png?alt=media&#x26;token=7676b787-f9a8-4943-8df7-2d3acdefa6ea" alt="" width="375"><figcaption><p>Criar uma variável sensível a partir da página de Variáveis.</p></figcaption></figure>

## Operações em variáveis

Você pode realizar operações em suas variáveis.

### Incrementar

Se você quiser aumentar incrementalmente o valor de uma variável, você pode usar os seguintes passos:

1. Defina uma variável, por exemplo `variableName`, e atribua a ela um valor numérico como `0`
2. No ponto do fluxo onde você quer incrementar o valor de `variableName`, insira variableName como a variável e `{variableName|increment}` como o valor

Este método aumentará o valor do contador em 1 a cada vez, por exemplo quando um bloco específico for percorrido ou um botão for clicado.&#x20;

{% hint style="info" %}
Incrementar uma variável pode ser tipicamente útil quando você deseja contar quantas vezes o usuário não foi compreendido pelo bot. Aprenda como construir um **Contador de Não Compreendidos** [aqui](https://docs.chatlayer.ai/tips-and-best-practices/not-understood-bot-dialog/not-understood-counter).
{% endhint %}

### Alterar a caixa (maiúsculas/minúsculas)

Variáveis e valores diferenciam maiúsculas de minúsculas.&#x20;

Por exemplo, `capitalVariable` será considerada como uma variável separada de`CapitalVariable`.

O mesmo vale para valores. Se você verificar em um [bloco de Condição](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/plugins) se um valor para `variableX` for igual a `valueY` ele não será acionado se o valor for `variableX` for igual a `valuey`

Você pode transformar um valor de maiúsculas para minúsculas e vice-versa adicionando esses modificadores ao nome do valor:

```
{name|toUpperCase}
{name|toLowerCase}
{name|capitalize}
```

{% hint style="warning" %}
Observe que [Sintaxe de Expressão \[Beta\]](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/integrateandcode/expression-syntax) permite que você obtenha a flexibilidade de usar funções de sintaxe de código em seu bot sem a necessidade de extensas habilidades de codificação.
{% endhint %}
