---
title: "Escrever a mensagem do alerta e usar webhooks"
slug: "webhooks-and-messages"
kind: "HELP_ARTICLE"
category: "alerts"
locale: "pt"
canonical: "https://app.forecastcity.com/pt/help/alerts/webhooks-and-messages"
published: "2026-09-08T17:58:35.210Z"
updated: "2026-10-28T00:14:40.986Z"
description: "Veja o que diz a mensagem de um alerta na ForecastCity, adicione o seu texto e variáveis e envie alertas por webhook em Raw JSON, Discord ou Slack."
---

# Escrever a mensagem do alerta e usar webhooks

Cada alerta envia uma mensagem para todos os destinos marcados por você. Por padrão, a mensagem informa o que aconteceu, o preço naquele instante e se o alerta continua ativo. Adicione uma nota sobre o seu plano de operação para ver o que você planejou antes mesmo de abrir o gráfico. Configurar o seu alerta e a mensagem dele é simples, rápido e preciso. Digite no editor ou peça ao **AI Trading Assistant** por voz ou por escrito.

Se você usa o seu próprio software, Discord ou Slack, um webhook envia cada alerta para lá também, sem precisar copiar nada manualmente. Este guia explica ambos os recursos.

O exemplo: um alerta no EURUSD que dispara quando o preço cruza acima de 1.09 no gráfico de 5m.

## O que diz a mensagem automática

Quando o campo **Message** está vazio, o alerta gera a própria mensagem ao disparar. No exemplo, a mensagem mostra:

```
EURUSD crossed above 1.09
Price 1.0901.
This alert is now off. It was set to fire once.
```

A primeira linha diz o que aconteceu, com as palavras do editor de alertas. A linha seguinte informa os números daquele instante. A última linha indica se o alerta continua ativo. O exemplo usa a opção **Once only**, então o alerta agora está desativado. Com as outras opções de Trigger, a última linha mostra “This alert stays on.”

Outros alertas seguem a mesma ordem. Veja algumas primeiras linhas, cada uma acompanhada da linha de números abaixo dela:

-   Uma linha: “GBPJPY touched 1h Resistance R1” e “Price 210.16, line at 210.20.”
    
-   Um rompimento de linha: “GBPJPY broke above 1h Resistance R1” e “The 1h candle closed at 210.32, above the line at 210.20.”
    
-   Um indicador: “BTCUSD: 1h RSI(14) crossed above 70” e “RSI(14) was 71.4 when the 1h candle closed at 105240.50.”
    
-   Uma mudança de previsão: “GBPJPY: 1h forecast turned bearish” e “Before: bullish above 209.80. Now: bearish below 209.40.”
    

Um alerta com várias condições informa quantas foram atendidas. Depois, traz uma linha para cada condição atendida:

```
BTCUSD: both conditions met
• Price crossed above 105000: the 1h candle closed at 105240.50
• 1h RSI(14) is above 55 (now 58.2)
This alert stays on.
```

Com mais condições, a primeira linha mostra, por exemplo, “all 3 conditions met” ou “2 of 3 conditions met”. Quando apenas uma condição é atendida, por exemplo com o conector **or**, a primeira linha informa essa condição, seguida pelos números dela.

## Escrever a mensagem

1.  Abra o editor de alertas e vá à aba **Options**.
    
2.  Clique na linha **Message**. Ela mostra Auto enquanto está vazia. Um campo de texto se abre abaixo dela.
    
3.  Digite a sua mensagem. O campo aceita até 400 caracteres.
    
4.  Para incluir um valor dinâmico, abra **Available variables** abaixo do campo. Copie a variável exatamente como aparece, com as chaves duplas.
    

![A linha Message aberta na aba Options, com um campo vazio, a frase abaixo dele e Available variables.](https://m.forecastcity.com/t/tnt_forecastcity/media/b4/b480142e20ce43cec05e3313cedc9941ceea0b334c3b3dda3ae8680099c0f69b.png)

O campo Message, aberto e ainda vazio, para que o alerta envie a mensagem automática.

1.  **Automatic message**: o campo vazio. Digite o seu próprio texto aqui ou deixe em branco.
    
2.  A frase abaixo do campo: “Leave it blank and the alert says what happened and at what price. A message of your own is sent first, with that under it.” (se você deixar em branco, o alerta informa o que aconteceu e a que preço; se escrever uma mensagem, ela é enviada primeiro, com esses dados abaixo).
    
3.  **Available variables**: os valores dinâmicos que você pode adicionar à sua mensagem.
    

O seu texto passa a ser a primeira linha, e o texto automático vem logo abaixo. No exemplo, esta mensagem:

```
{{symbol}} on {{timeframe}}: check the 1h trend before entering.
```

chega assim:

```
EURUSD on 5m: check the 1h trend before entering.
EURUSD crossed above 1.09. Price 1.0901.
This alert is now off. It was set to fire once.
```

O preço e a condição já aparecem nas linhas abaixo do seu texto. Use a sua mensagem para o que essas linhas não dizem, como o seu plano de operação.

A mensagem que você digita também serve como nome do alerta na lista do painel Alerts. Sem uma mensagem, a lista mostra um nome gerado a partir da condição. Para um nível de preço, o nome é curto, como “EURUSD crossing up 1.09”. Uma linha ou várias condições aparecem como o editor as descreve, por exemplo “GBPJPY: 1h Price touches 1h Resistance R1”. Quando você altera a condição, esse nome muda junto com ela. Quando você abre o alerta novamente, o campo **Message** continua vazio. Alertas salvos anteriormente sem mensagem também mostram o nome nesse formato.

## O que cada destino mostra

Cada destino recebe a mesma mensagem, formatada para aquele canal:

<table><thead><tr><th>Destino</th><th>O que mostra</th></tr></thead><tbody><tr><td>O aviso no aplicativo</td><td>A primeira linha em negrito, com os números abaixo dela.</td></tr><tr><td><strong>Notify my devices</strong></td><td>A primeira linha como título, com as outras linhas abaixo dela.</td></tr><tr><td><strong>Send to MetaTrader</strong></td><td>A primeira linha como título, com as outras linhas abaixo dela. O MetaTrader mostra o próprio horário ao lado da mensagem.</td></tr><tr><td><strong>Telegram</strong></td><td>A mensagem, o horário no seu fuso horário e um link para o gráfico.</td></tr><tr><td><strong>Send email</strong></td><td>A mensagem, com a data e o horário no seu fuso horário.</td></tr><tr><td><strong>Webhook URL</strong></td><td>O Discord e o Slack recebem a mensagem com o horário em UTC. Com a opção <strong>Raw JSON</strong>, o seu software recebe as variáveis abaixo.</td></tr></tbody></table>

O Telegram escreve o horário assim: “24 Sep, 11:02 London time”. Se o fuso horário estiver incorreto, escolha o seu em **Timezone** na página **Your profile**. Quando a ForecastCity não sabe o seu fuso horário, o horário é exibido em UTC.

O link em uma mensagem do Telegram, em um e-mail, em uma notificação no celular ou em uma janela pop-up do MetaTrader abre o gráfico daquele símbolo com o painel Alerts. Na maioria dos alertas do 4CM-AI, ele abre o gráfico com a seção **Alert observation** daquele disparo.

## Adicionar valores dinâmicos com variáveis

Uma variável é substituída pelo seu valor quando o alerta dispara. Estas são as variáveis em **Available variables**:

<table><thead><tr><th>Variável</th><th>O que ela escreve</th><th>Exemplo</th></tr></thead><tbody><tr><td><code>{{symbol}}</code></td><td>O símbolo</td><td>EURUSD</td></tr><tr><td><code>{{price}}</code> e <code>{{close}}</code></td><td>O preço no momento em que o alerta disparou</td><td>1.0901</td></tr><tr><td><code>{{condition_text}}</code></td><td>O que aconteceu, sem o símbolo</td><td>Price crossed above 1.09</td></tr><tr><td><code>{{condition}}</code></td><td>A condição como um código curto</td><td>CROSSING_UP 1.09</td></tr><tr><td><code>{{timeframe}}</code></td><td>O tempo gráfico do alerta</td><td>5m</td></tr><tr><td><code>{{time_iso}}</code></td><td>A data e o horário, em UTC</td><td>2026-09-24 10:02 UTC</td></tr><tr><td><code>{{time}}</code></td><td>O mesmo horário em segundos, para software</td><td>1790244120</td></tr><tr><td><code>{{time_now}}</code></td><td>O instante em que a mensagem foi enviada, como um número</td><td>1790244121</td></tr><tr><td><code>{{exchange}}</code></td><td>A origem das cotações</td><td>TwelveData</td></tr><tr><td><code>{{status}}</code></td><td>Se o alerta continua ativo</td><td>This alert stays on.</td></tr><tr><td><code>{{alert_url}}</code></td><td>Um link para o gráfico desse símbolo, com os seus alertas</td><td>um endereço web</td></tr><tr><td><code>{{name}}</code></td><td>A sua mensagem com cada variável substituída pelo valor, ou o nome exibido na lista do painel Alerts</td><td>EURUSD crossing up 1.09</td></tr></tbody></table>

Para uma linha, `{{condition_text}}` mostra algo como “Price touched 1h Resistance R1”. Com várias condições, ela une as condições atendidas com a palavra and. Depois que um alerta com **Once only** dispara, `{{status}}` mostra “This alert is now off. It was set to fire once.” Para um alerta com várias condições, uma linha ou um indicador, `{{condition}}` mostra `TREE`. Essa variável é um código para software.

Para alertas do 4CM-AI, `{{forecast_summary}}` resume o que a previsão fez e `{{forecast_symbol}}` informa o símbolo da previsão. `{{forecast_cycle}}` é um contador que aumenta toda vez que o alerta volta a acompanhar o mercado. Uma mensagem que contém `{{forecast_summary}}` não recebe linhas automáticas abaixo dela, porque o resumo já explica o que aconteceu.

As variáveis `{{price}}` e `{{close}}` ficam vazias na maioria dos alertas do 4CM-AI, pois eles não têm um único preço. A variável `{{time_iso}}` usa UTC, portanto pode diferir do relógio da sua tela. Uma variável inexistente permanece exatamente como foi digitada: `{{prices}}` escrito com erro chega como `{{prices}}`.

## Enviar alertas para um webhook

Um webhook envia cada alerta para um endereço web (endpoint), onde o seu próprio software, um canal do Discord ou um canal do Slack o recebe. O seu plano de assinatura precisa incluir webhooks.

1.  Na aba Options, em Notifications, marque **Webhook URL**. Aparecem um campo de endereço, a opção Format e um campo para o corpo.
    
2.  Cole o endereço em que o seu receptor escuta. Ele deve começar com `http://` ou `https://`.
    
3.  Defina **Format** como **Raw JSON** e deixe o campo do corpo vazio.
    
4.  Clique em **Create**, ou em **Save** se estiver editando um alerta.
    

![A opção Webhook URL marcada, com um endereço, o seletor de formato em Raw JSON e o campo do corpo vazio.](https://m.forecastcity.com/t/tnt_forecastcity/media/9e/9e711afc65b24ebfe70a8e091cc4006b5f9d7d57d50d61b67e5ee920f8ab4877.png)

Webhook URL marcada, com um endereço e Format definido como Raw JSON. O campo do corpo vazio envia os dados padrão.

1.  O endereço em que o seu receptor escuta. Use as portas padrão, 80 ou 443.
    
2.  **Format**: Raw JSON para o seu próprio software, ou Discord ou Slack para esses serviços.
    

Com o campo do corpo vazio, o seu receptor recebe um objeto JSON (payload) com todas as variáveis da tabela, além de `alertId` e `triggerId`. Esses dois campos identificam o alerta e esse disparo específico. Analise um envio real antes de desenvolver qualquer automação que dependa desses campos.

Abaixo do campo, o editor mostra o endereço do servidor de onde partem as nossas requisições. Adicione-o à sua lista de permissões se o seu receptor aceitar apenas endereços conhecidos.

### O que o endereço precisa ter

-   Um endereço público em uma porta padrão: 80 para http, 443 para https. Mensagens para outras portas, para localhost ou para endereços de rede privada não são enviadas.
    
-   Nenhum nome de usuário ou senha dentro do endereço.
    
-   Uma resposta em até 3 segundos, vinda do próprio endereço. Um redirecionamento para outro endereço conta como falha.
    

O editor verifica apenas se o endereço começa com `http://` ou `https://`. Os demais requisitos são verificados quando uma mensagem é enviada, portanto teste o seu endereço com um alerta real. Para alertas de preço e alertas técnicos, se o seu receptor apresentar um erro temporário, o envio é tentado mais duas vezes. A mensagem de um alerta do 4CM-AI não é reenviada após um tempo esgotado (timeout) ou erro de servidor, porque o seu receptor já pode ter agido com base nela.

## Escrever o seu próprio corpo de webhook

O campo do corpo aceita um modelo com as mesmas variáveis da mensagem. Ele comporta até 2000 caracteres. O campo permite digitar mais, mas um corpo maior é recusado ao salvar.

Com a opção **Raw JSON**, um receptor que espera um objeto simples pode receber este corpo:

```
{"symbol":"{{symbol}}","condition":"{{condition_text}}","time":"{{time_iso}}","source":"ForecastCity"}
```

As variáveis são preenchidas como texto simples. Um valor que contenha aspas ou quebra de linha pode invalidar o seu JSON. Um corpo que não seja um JSON válido é enviado como texto simples.

Para um canal do Discord, defina **Format** como **Discord** e use o endereço de webhook do canal. Depois, escreva uma linha curta no campo do corpo, por exemplo:

```
{{symbol}}: {{condition_text}}. Open your alerts: {{alert_url}}
```

Para o Slack, escolha **Slack** e escreva da mesma forma. A ForecastCity formata o seu texto na estrutura que cada serviço espera. Com o campo vazio, ambos recebem a mensagem do alerta, como mostrado acima, com o horário em UTC na última linha.

## Verificar o resultado

1.  Aguarde o disparo do alerta e abra a aba **Log** do painel Alerts.
    
2.  Compare o que o seu receptor recebeu com o registro na aba Log: o que aconteceu, o símbolo e o horário.
    

A aba Log mostra que o alerta disparou, mas não informa se o seu receptor aceitou a mensagem; por isso, verifique também o registro do próprio receptor. Se aparecerem chaves como `{{prices}}`, o nome de uma variável foi digitado incorretamente. Se o seu receptor rejeitar o corpo, confira o JSON.

## Bom saber

-   A mensagem é enviada para todos os destinos marcados por você. O corpo do webhook vai apenas para o webhook.
    
-   O Discord exibe até 1900 caracteres e o Slack até 3000. Textos mais longos são cortados.
    

## Guias relacionados

-   [Escolher onde receber o alerta](<https://app.forecastcity.com/pt/help/alerts/notification-delivery>)
    
-   [Descobrir por que um alerta não chegou](<https://app.forecastcity.com/pt/help/alerts/trigger-log-and-troubleshooting>)
    
-   [Criar o seu primeiro alerta de preço](<https://app.forecastcity.com/pt/help/alerts/first-price-alert>)
