---
title: "Pisanie własnej wiadomości alertu i używanie webhooków"
slug: "webhooks-and-messages"
kind: "HELP_ARTICLE"
category: "alerts"
locale: "pl"
canonical: "https://app.forecastcity.com/pl/help/alerts/webhooks-and-messages"
published: "2026-09-08T17:58:35.210Z"
updated: "2026-10-28T00:22:57.284Z"
description: "Zobacz, co zawiera wiadomość alertu, dodaj własną treść i zmienne oraz wysyłaj alerty do własnego oprogramowania, na Discord lub Slack za pomocą webhooka."
---

# Pisanie własnej wiadomości alertu i używanie webhooków

Każdy alert wysyła jedną wiadomość do wszystkich zaznaczonych miejsc docelowych. Domyślnie wiadomość podaje, co się wydarzyło, cenę w tym momencie oraz informację, czy alert pozostaje włączony. Dodaj notatkę o swoim planie tradingowym, aby od razu widzieć swoje założenia jeszcze przed otwarciem wykresu. Konfigurowanie alertu i jego wiadomości jest proste, szybkie i dokładne. Wpisz wiadomość w edytorze albo powiedz lub napisz do **AI Trading Assistant**.

Jeśli korzystasz z własnego oprogramowania, komunikatora Discord lub Slack, webhook wyśle tam również każdy alert, bez konieczności ręcznego kopiowania czegokolwiek. Ten przewodnik omawia oba rozwiązania.

Przykład: alert na parze EURUSD, który wyzwala się, gdy cena przetnie w górę poziom 1.09 na wykresie 5m.

## Co zawiera wiadomość automatyczna

Gdy pole **Message** jest puste, alert sam tworzy wiadomość w momencie wyzwolenia. W naszym przykładzie wiadomość brzmi:

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

Pierwszy wiersz informuje, co się wydarzyło, używając słów z edytora alertów. Kolejny wiersz podaje wartości liczbowe z tego momentu. Ostatni wiersz informuje, czy alert pozostaje włączony. W przykładzie użyto opcji **Once only**, więc alert jest teraz wyłączony. Przy pozostałych opcjach ustawienia Trigger ostatni wiersz brzmi „This alert stays on.”

Inne alerty zachowują tę samą kolejność. Oto kilka przykładowych pierwszych wierszy wraz z wierszem wartości liczbowych poniżej:

-   Linia: „GBPJPY touched 1h Resistance R1” oraz „Price 210.16, line at 210.20.”
    
-   Przebicie linii: „GBPJPY broke above 1h Resistance R1” oraz „The 1h candle closed at 210.32, above the line at 210.20.”
    
-   Wskaźnik: „BTCUSD: 1h RSI(14) crossed above 70” oraz „RSI(14) was 71.4 when the 1h candle closed at 105240.50.”
    
-   Zmiana prognozy: „GBPJPY: 1h forecast turned bearish” oraz „Before: bullish above 209.80. Now: bearish below 209.40.”
    

Alert z kilkoma warunkami podaje, ile z nich zostało spełnionych. Następnie wyświetla po jednym wierszu dla każdego spełnionego warunku:

```
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.
```

Przy większej liczbie warunków pierwszy wiersz brzmi na przykład „all 3 conditions met” lub „2 of 3 conditions met”. Gdy spełniony został tylko jeden warunek, na przykład przy spójniku **or**, pierwszy wiersz wymienia ten warunek, a poniżej pojawiają się jego wartości liczbowe.

## Pisanie wiadomości

1.  Otwórz edytor alertów i przejdź na zakładkę **Options**.
    
2.  Kliknij wiersz **Message**. Gdy jest pusty, wyświetla napis Auto. Poniżej otworzy się pole tekstowe.
    
3.  Wpisz swoją wiadomość. Pole mieści do 400 znaków.
    
4.  Aby dodać wartość na żywo, rozwiń sekcję **Available variables** pod polem tekstowym. Skopiuj zmienną dokładnie w takiej postaci, wraz z podwójnymi nawiasami klamrowymi.
    

![Wiersz Message otwarty na zakładce Options, z pustym polem, opisem poniżej oraz sekcją Available variables.](https://m.forecastcity.com/t/tnt_forecastcity/media/b4/b480142e20ce43cec05e3313cedc9941ceea0b334c3b3dda3ae8680099c0f69b.png)

Pole Message, otwarte i nadal puste, dzięki czemu alert wysyła wiadomość automatyczną.

1.  **Automatic message**: puste pole tekstowe. Wpisz tutaj własne słowa lub pozostaw je puste.
    
2.  Opis pod polem: „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.”
    
3.  **Available variables**: wartości na żywo, które możesz dodać do wiadomości.
    

Wpisane przez Ciebie słowa stają się pierwszym wierszem, a pod nimi pojawia się tekst automatyczny. W naszym przykładzie taka wiadomość:

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

dociera w takiej postaci:

```
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.
```

Cena i warunek znajdują się już w wierszach pod Twoim tekstem. Wykorzystaj własną wiadomość na informacje, których te wiersze nie podają, na przykład na swój plan tradingowy.

Wpisana wiadomość staje się również nazwą alertu na liście w panelu Alerts. Bez własnej wiadomości lista wyświetla nazwę utworzoną na podstawie warunku. Dla poziomu cenowego nazwa jest krótka, na przykład „EURUSD crossing up 1.09”. Linia lub kilka warunków są zapisane tak, jak tworzy je edytor, na przykład „GBPJPY: 1h Price touches 1h Resistance R1”. Gdy zmienisz warunek, ta nazwa zmieni się razem z nim. Po ponownym otwarciu alertu pole **Message** jest nadal puste. Alerty zapisane wcześniej bez własnej wiadomości również pokazują nazwę w tej formie.

## Co pokazuje każde miejsce docelowe

Każde miejsce docelowe otrzymuje tę samą wiadomość, dopasowaną do swojego układu:

<table><thead><tr><th>Miejsce docelowe</th><th>Co wyświetla</th></tr></thead><tbody><tr><td>Powiadomienie w aplikacji</td><td>Pierwszy wiersz pogrubioną czcionką, a pod nim wartości liczbowe.</td></tr><tr><td><strong>Notify my devices</strong></td><td>Pierwszy wiersz jako tytuł, a pod nim pozostałe wiersze.</td></tr><tr><td><strong>Send to MetaTrader</strong></td><td>Pierwszy wiersz jako tytuł, a pod nim pozostałe wiersze. Aplikacja MetaTrader wyświetla własny czas obok wiadomości.</td></tr><tr><td><strong>Telegram</strong></td><td>Wiadomość, godzinę w Twojej strefie czasowej oraz link do wykresu.</td></tr><tr><td><strong>Send email</strong></td><td>Wiadomość wraz z datą i godziną w Twojej strefie czasowej.</td></tr><tr><td><strong>Webhook URL</strong></td><td>Komunikatory Discord i Slack otrzymują wiadomość z czasem w strefie UTC. Przy opcji <strong>Raw JSON</strong> Twoje oprogramowanie otrzymuje opisane niżej zmienne.</td></tr></tbody></table>

Telegram zapisuje czas w taki sposób: „24 Sep, 11:02 London time”. Jeśli strefa czasowa jest nieprawidłowa, wybierz swoją w polu **Timezone** na stronie **Your profile**. Gdy aplikacja ForecastCity nie zna Twojej strefy czasowej, podaje czas w strefie UTC.

Link w wiadomości na Telegramie, w wiadomości e-mail, w powiadomieniu na telefonie lub w wyskakującym powiadomieniu w aplikacji MetaTrader otwiera wykres danego symbolu wraz z panelem Alerts. W przypadku większości alertów 4CM-AI link otwiera wykres z widokiem **Alert observation** z momentu tego wyzwolenia.

## Dodawanie wartości na żywo za pomocą zmiennych

W momencie wyzwolenia alertu zmienna zostaje zastąpiona swoją wartością. Oto zmienne dostępne w sekcji **Available variables**:

<table><thead><tr><th>Zmienna</th><th>Co wstawia</th><th>Przykład</th></tr></thead><tbody><tr><td><code>{{symbol}}</code></td><td>Symbol</td><td>EURUSD</td></tr><tr><td><code>{{price}}</code> oraz <code>{{close}}</code></td><td>Cena w momencie wyzwolenia alertu</td><td>1.0901</td></tr><tr><td><code>{{condition_text}}</code></td><td>Co się wydarzyło, bez nazwy symbolu</td><td>Price crossed above 1.09</td></tr><tr><td><code>{{condition}}</code></td><td>Warunek jako krótki kod</td><td>CROSSING_UP 1.09</td></tr><tr><td><code>{{timeframe}}</code></td><td>Interwał alertu</td><td>5m</td></tr><tr><td><code>{{time_iso}}</code></td><td>Data i godzina w strefie UTC</td><td>2026-09-24 10:02 UTC</td></tr><tr><td><code>{{time}}</code></td><td>Ten sam czas jako liczba sekund, dla oprogramowania</td><td>1790244120</td></tr><tr><td><code>{{time_now}}</code></td><td>Moment wysłania wiadomości jako liczba</td><td>1790244121</td></tr><tr><td><code>{{exchange}}</code></td><td>Źródło kwotowań cenowych</td><td>TwelveData</td></tr><tr><td><code>{{status}}</code></td><td>Informacja, czy alert pozostaje włączony</td><td>This alert stays on.</td></tr><tr><td><code>{{alert_url}}</code></td><td>Link do wykresu tego symbolu wraz z Twoimi alertami</td><td>adres internetowy</td></tr><tr><td><code>{{name}}</code></td><td>Twoja wiadomość z podstawionymi wartościami zmiennych albo nazwa wyświetlana na liście w panelu Alerts</td><td>EURUSD crossing up 1.09</td></tr></tbody></table>

W przypadku linii zmienna `{{condition_text}}` ma postać „Price touched 1h Resistance R1”. Przy kilku warunkach łączy spełnione warunki słowem and. Po wyzwoleniu alertu z opcją **Once only** zmienna `{{status}}` przyjmuje wartość „This alert is now off. It was set to fire once.” W przypadku alertu z kilkoma warunkami, linią lub wskaźnikiem zmienna `{{condition}}` przyjmuje wartość `TREE`. Ta zmienna to kod przeznaczony dla oprogramowania.

W alertach 4CM-AI zmienna `{{forecast_summary}}` podsumowuje zachowanie prognozy, a zmienna `{{forecast_symbol}}` podaje symbol prognozy. Zmienna `{{forecast_cycle}}` to licznik, który zwiększa się za każdym razem, gdy alert ponownie zaczyna śledzić rynek. Wiadomość zawierająca zmienną `{{forecast_summary}}` nie otrzymuje pod spodem automatycznych wierszy, ponieważ samo podsumowanie opisuje już to, co się wydarzyło.

Zmienne `{{price}}` oraz `{{close}}` pozostają puste w większości alertów 4CM-AI, ponieważ nie dotyczą one jednej konkretnej ceny. Zmienna `{{time_iso}}` używa strefy UTC, więc może różnić się od zegara na Twoim ekranie. Zmienna, która nie istnieje, pozostaje dokładnie w takiej postaci, w jakiej ją wpisano: błędnie wpisane `{{prices}}` dotrze jako `{{prices}}`.

## Wysyłanie alertów na adres webhooka

Webhook wysyła każdy alert na adres internetowy, pod którym odbiera go Twoje własne oprogramowanie, kanał Discord lub kanał Slack. Twój plan subskrypcji musi obejmować obsługę webhooków.

1.  Na zakładce Options, w sekcji Notifications, zaznacz pole wyboru **Webhook URL**. Pojawi się pole adresu, wybór opcji Format oraz pole treści (body).
    
2.  Wklej adres, na którym nasłuchuje Twój odbiorca. Adres musi zaczynać się od `http://` lub `https://`.
    
3.  W ustawieniu **Format** wybierz opcję **Raw JSON** i pozostaw pole treści puste.
    
4.  Kliknij przycisk **Create** albo przycisk **Save** w przypadku edytowanego alertu.
    

![Zaznaczony wiersz Webhook URL z wpisanym adresem, formatem ustawionym na Raw JSON i pustym polem treści.](https://m.forecastcity.com/t/tnt_forecastcity/media/9e/9e711afc65b24ebfe70a8e091cc4006b5f9d7d57d50d61b67e5ee920f8ab4877.png)

Zaznaczona opcja Webhook URL z wpisanym adresem oraz ustawieniem Format na Raw JSON. Puste pole treści wysyła dane domyślne.

1.  Adres, na którym nasłuchuje Twój odbiorca. Użyj standardowych portów: 80 lub 443.
    
2.  **Format**: opcja Raw JSON dla własnego oprogramowania albo opcja Discord lub Slack dla tych komunikatorów.
    

Gdy pole treści jest puste, Twój odbiorca otrzymuje obiekt JSON ze wszystkimi zmiennymi z tabeli oraz polami `alertId` i `triggerId`. Te dwa pola identyfikują sam alert oraz to konkretne wyzwolenie. Sprawdź jedną rzeczywistą wysyłkę, zanim zbudujesz rozwiązanie zależne od tych pól.

Pod polem edytor wyświetla adres serwera, z którego wychodzą nasze żądania. Dodaj go do swojej listy dozwolonych (allowlist), jeśli Twój odbiorca przyjmuje połączenia tylko ze znanych adresów.

### Wymagania dotyczące adresu

-   Publiczny adres na standardowym porcie: 80 dla http, 443 dla https. Wiadomości na inne porty, na adres localhost lub na adres sieci prywatnej nie są wysyłane.
    
-   Brak nazwy użytkownika i hasła wewnątrz adresu.
    
-   Odpowiedź w ciągu 3 sekund bezpośrednio z tego adresu. Przekierowanie na inny adres jest traktowane jako błąd.
    

Edytor sprawdza jedynie, czy adres zaczyna się od `http://` lub `https://`. Pozostałe wymagania są weryfikowane podczas wysyłki wiadomości, dlatego przetestuj swój adres za pomocą prawdziwego alertu. W przypadku alertów cenowych i technicznych, jeśli u odbiorcy wystąpi tymczasowy błąd, próba wysłania wiadomości jest ponawiana maksymalnie dwa razy. Wiadomość alertu 4CM-AI nie jest wysyłana ponownie po przekroczeniu czasu oczekiwania lub błędzie serwera, ponieważ odbiorca mógł już podjąć na jej podstawie działanie.

## Pisanie własnej treści webhooka

Pole treści przyjmuje szablon z tymi samymi zmiennymi, których używa wiadomość. Mieści do 2000 znaków. W polu można wpisać więcej tekstu, ale dłuższa treść zostanie odrzucona przy zapisywaniu.

Przy opcji **Raw JSON** odbiorca oczekujący prostego obiektu może otrzymać taką treść:

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

Zmienne są wstawiane jako zwykły tekst. Wartość zawierająca cudzysłów lub znak nowej linii może uszkodzić strukturę JSON. Treść, która nie jest poprawnym kodem JSON, zostaje wysłana jako zwykły tekst.

Dla kanału Discord w ustawieniu **Format** wybierz opcję **Discord** i wklej adres webhooka tego kanału. Następnie wpisz krótki wiersz w polu treści, na przykład:

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

Dla komunikatora Slack wybierz opcję **Slack** i napisz treść w ten sam sposób. Aplikacja ForecastCity opakowuje Twój tekst w format wymagany przez daną usługę. Gdy pole treści jest puste, oba komunikatory otrzymują wiadomość alertu pokazaną wyżej, z czasem w strefie UTC w ostatnim wierszu.

## Sprawdzanie wyniku

1.  Poczekaj na wyzwolenie alertu, a następnie otwórz zakładkę **Log** w panelu Alerts.
    
2.  Porównaj dane odebrane przez odbiorcę z wpisem na zakładce Log: co się wydarzyło, symbol oraz godzinę.
    

Zakładka Log pokazuje, że alert się wyzwolił. Nie pokazuje natomiast, czy Twój odbiorca przyjął wiadomość, dlatego sprawdź również dziennik po stronie swojego odbiorcy. Jeśli widzisz nawiasy klamrowe, takie jak `{{prices}}`, nazwa zmiennej zawiera literówkę. Jeśli odbiorca odrzuca treść, sprawdź poprawność kodu JSON.

## Warto wiedzieć

-   Wiadomość trafia do każdego zaznaczonego miejsca docelowych. Treść webhooka trafia wyłącznie na adres webhooka.
    
-   Komunikator Discord wyświetla do 1900 znaków, a Slack do 3000 znaków. Dłuższy tekst zostaje przycięty.
    

## Powiązane przewodniki

-   [Wybór miejsca dostarczania powiadomień o alertach](<https://app.forecastcity.com/pl/help/alerts/notification-delivery>)
    
-   [Sprawdzanie, dlaczego alert nie dotarł](<https://app.forecastcity.com/pl/help/alerts/trigger-log-and-troubleshooting>)
    
-   [Tworzenie pierwszego alertu cenowego](<https://app.forecastcity.com/pl/help/alerts/first-price-alert>)
