> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Variáveis de modelo e conteúdo dinâmico

> Utilize variáveis nos cabeçalhos, corpo, botões e URLs dos modelos WhatsApp — regras de sintaxe, valores de exemplo, tokens de personalização do HubSpot e armadilhas que levam à rejeição.

As variáveis permitem que um único modelo aprovado envie mensagens personalizadas a milhares de contactos sem ter de voltar a enviar para o Meta. Esta página é um mergulho profundo sobre como as variáveis funcionam no Flowella, onde podem aparecer e como ligá-las aos dados do HubSpot.

Para uma visão geral de alto nível da estrutura do modelo, consulte [Referência do modelo](/pt/app/template-reference). Para a criação de modelos passo a passo, ver [Modelos](/pt/app/templates).

## Sintaxe

Os modelos WhatsApp utilizam **variáveis posicionais** com chavetas duplas e um índice baseado em 1:

```text theme={null}
Hi {{1}}, your booking on {{2}} is confirmed. Reference: {{3}}.
```

Regras:

* Os índices começam em `{{1}}` e devem ser **sequenciais** - não é possível saltar de `{{1}}` para `{{3}}`.
* O mesmo índice pode ser reutilizado dentro de um único componente (corpo, cabeçalho ou URL), mas o Flowella enviará o mesmo valor para cada ocorrência.
* Não é permitido espaço em branco dentro das chaves: `{{ 1 }}` é inválido.
* As variáveis são **apenas texto**. Números, datas e moeda são enviados como strings - formate-os a montante no HubSpot antes de os enviar.

<Note>
  O Meta está a lançar **variáveis nomeadas** (`{{first_name}}`) para novos modelos. O Flowella suporta ambos, mas os índices posicionais continuam a ser o formato mais fiável em todos os tipos de modelos e versões Cloud API.
</Note>

## Onde as variáveis podem aparecer

| Componente                                                        | Variáveis permitidas                | Notas                                                          |
| ----------------------------------------------------------------- | ----------------------------------- | -------------------------------------------------------------- |
| **Header (TEXT)**                                                 | 1                                   | Apenas valores curtos - sem quebras de linha.                  |
| Cabeçalho (media)\*\*                                             | 1 (o identificador de media ou URL) | A variável é o próprio media, não o texto.                     |
| Cabeçalho (LOCATION)\*\*                                          | 4 (lat, long, name, address)        | Todos os quatro são necessários quando o cabeçalho é variável. |
| Cada variável conta para o limite de caracteres do corpo do Meta. |                                     |                                                                |
| Rodapé\*\*                                                        | Nenhum                              | Rodapé é apenas texto estático.                                |
| Botão URL\*\*                                                     | 1                                   | Anexado ao final de uma URL base estática.                     |
| Botão \_COPY\_CODE\*\*                                            | 1                                   | O valor completo do código.                                    |
| Botões Resposta rápida, Telefone, Fluxo, Catálogo\*\*             | Nenhum                              | Configuração estática.                                         |
| Cartões de carrossel\*\*                                          | Até 3 por corpo de cartão           | As variáveis de cada cartão são numeradas independentemente.   |

## Valores de amostra

Quando submete um modelo ao Meta, cada variável necessita de um **valor de amostra**. O Meta utiliza as amostras para:

1. Decidir se o conteúdo do modelo corresponde à categoria escolhida (Marketing, Utilidade, Autenticação).
2. Estimar a qualidade e o risco de spam.
3. Mostrar uma pré-visualização aos revisores.

Os valores de amostra não são utilizados no momento do envio - são apenas para revisão. Mas eles são importantes:

* Utilize valores **realistas**. `{{1}} = "John"` é bom; `{{1}} = "xxx"` provoca frequentemente a rejeição.
* Mantenha as amostras **curtas**. Colar um parágrafo numa única variável é um sinal clássico de rejeição.
* Certifique-se de que a amostra é **adequada ao tipo**. Se `{{2}}` for uma data, use uma data. Se for um número de encomenda, utilize algo que se pareça com um número de encomenda.

## Ligar variáveis aos dados HubSpot

Num fluxo de trabalho HubSpot que utiliza a ação **Enviar Modelo WhatsApp** do Flowella:

<Steps>
  <Step title="Escolher o modelo">
    O Flowella mostra todos os modelos aprovados para o seu canal. As variáveis são detectadas automaticamente no corpo do modelo, no cabeçalho e nos botões.
  </Step>

  <Step title="Mapear cada variável para um valor do HubSpot">
    Para cada `{{n}}`, escolha uma propriedade HubSpot de contacto, empresa, negócio ou bilhete - ou escreva um valor estático. É possível misturar tokens de personalização e texto literal no mesmo mapeamento.
  </Step>

  <Step title="Definir uma alternativa para valores vazios">
    Se um contacto não tiver valor para a propriedade mapeada, a mensagem falhará, a menos que forneça uma alternativa. Falhas comuns: `"there"` para o primeiro nome, `"your account"` para o nome da conta.
  </Step>

  <Step title="Teste antes de entrar em ação">
    Enviar o fluxo de trabalho para um único contacto de teste primeiro. Meta rejeita envios em que qualquer variável esteja vazia, contenha apenas espaços em branco ou contenha uma nova linha.
  </Step>
</Steps>

<Warning>
  Variáveis vazias falham no momento do envio, não na aprovação do modelo. Um fluxo de trabalho que é executado contra milhares de contactos pode ser silenciosamente abandonado se faltar uma propriedade crítica. Defina sempre fallbacks.
</Warning>

## Dicas de formatação de variáveis

\*\*Nomes

```text theme={null}
Hi {{1}},
```

Colocar a propriedade em maiúsculas no HubSpot a montante, ou utilizar um passo do fluxo de trabalho HubSpot para copiar o `firstname` numa propriedade "Nome próprio (formatado)".

\*\*Datas

Os modelos WhatsApp não formatam datas. Se a sua propriedade HubSpot for `2026-05-24T00:00:00Z`, é isso que aparece na mensagem. Utilize uma propriedade calculada HubSpot ou uma ação de fluxo de trabalho para formatar as datas como `24 May 2026` antes de as mapear.

**Moeda**

O mesmo que as datas - formato a montante. Incluir o símbolo da moeda no texto estático (`Total: £{{1}}`) para que a variável seja apenas o número.

**URLs no corpo do texto**

Pode incluir o URL completo dentro de uma variável do corpo, mas a pré-visualização da ligação não será apresentada e o URL conta para o limite de caracteres do corpo. Em vez disso, utilize um botão **URL** com um sufixo de variável:

```text theme={null}
Base URL: https://acme.com/orders/
Variable: {{1}}
At send time: https://acme.com/orders/AB-1234
```

## Motivos comuns de rejeição relacionados com variáveis

* **Índices saltados** (`{{1}}` e depois `{{3}}`). Renumerar sempre.
* **Variável no início ou no fim** do corpo sem texto circundante (`{{1}}` sozinho). Adicionar uma palavra antes ou depois.
* **Duas variáveis adjacentes** (`{{1}}{{2}}`). Separe-as com pelo menos um espaço ou pontuação.
* Valores de amostra que se parecem com placeholders\*\* - `"test"`, `"xxx"`, `"123"` - especialmente em modelos de Marketing.
* **Variáveis no rodapé** - não permitidas.
* **Mais do que uma variável num botão URL** - só é permitida uma, e deve estar no **fim** do URL.

## Padrões avançados

### Reutilizar um valor entre componentes

Se um nome de cliente aparecer tanto no cabeçalho como no corpo, defina-o uma vez no seu fluxo de trabalho e mapeie tanto `{{1}}` (cabeçalho) como `{{1}}` (corpo) para a mesma propriedade HubSpot. O Flowella envia a cada componente a sua própria lista de parâmetros, pelo que os índices são independentes - mapeia o valor duas vezes, mas apenas o armazena uma vez no HubSpot.

### Conteúdo condicional

Os modelos WhatsApp não suportam a lógica if/else dentro do modelo. Para enviar conteúdos diferentes para segmentos de contactos diferentes, crie **modelos separados** e ramifique no seu fluxo de trabalho HubSpot - por exemplo, "Boas-vindas VIP" e "Boas-vindas Standard".

### Modelos multilingues

O nome e a estrutura de um modelo são partilhados entre idiomas, mas cada idioma é **submetido, aprovado e armazenado separadamente**. As variáveis devem estar nas mesmas posições em todas as versões linguísticas. O Flowella escolhe o idioma correto com base na propriedade `hs_language` do contacto (ou num fallback configurado por si).

## Resolução de problemas

* Template aprovado mas as mensagens falham com "parameter mismatch "\*\* - O Meta e o Flowella não concordam com o número de variáveis que o template tem. Re-buscar o modelo no Flowella (Modelos → atualizar) para que a contagem de variáveis seja sincronizada.
* A variável mostra o literal `{{1}}` na mensagem entregue\*\* - o fluxo de trabalho não mapeou um valor para esse índice. Verifique a lista de parâmetros da ação do fluxo de trabalho.
* **Mensagem rejeitada no envio com "violação de política "** - uma variável contém um URL ou conteúdo que não corresponde à categoria do modelo. O conteúdo de estilo de marketing não pode ser injetado num modelo de Utilitário através de variáveis.

<Tip>
  Para obter informações sobre o ciclo de vida completo da submissão, edição e pausa de modelos, consulte [Modelos](/pt/app/templates) e [Referência do modelo](/pt/app/template-reference). Para obter ajuda específica sobre rejeição, consulte [Template rejected](/pt/troubleshooting/template-rejected).
</Tip>
