Tick the values you want and get a ready-to-paste TradingView alert message, as webhook JSON or plain text. It checks the JSON, flags misspelled placeholders, and shows what the message will look like when it fires.
You can edit or paste a message in the box and it will be checked. Changing an option on the right rebuilds it.
Fixed text sent with every alert, e.g. source = tradingview. Don’t put passwords here.
{{placeholder}} with the live value when the alert fires.These are the placeholders (also called variables) TradingView documents for alert messages. Write them exactly as shown, including the double curly brackets.
| Placeholder | What it becomes |
|---|---|
{{ticker}} | Symbol ticker, e.g. AAPL or BTCUSD. |
{{exchange}} | Exchange, e.g. NASDAQ, NYSE or CME. Delayed data adds a suffix such as _DL. |
{{close}} {{open}} {{high}} {{low}} {{volume}} | Values of the bar that triggered the alert. |
{{time}} | Open time of that bar, in UTC, e.g. 2019-08-27T09:56:00Z. |
{{timenow}} | When the alert fired, in the same format, to the nearest second. |
{{interval}} | Chart timeframe. Price alerts and Range charts always return 1. |
{{syminfo.currency}} | Currency the symbol is priced in, e.g. USD. |
{{syminfo.basecurrency}} | Base currency of a pair, e.g. EUR for EURUSD. Other symbols return na. |
{{plot_0}} … {{plot_19}} | An indicator’s output series, counted from 0. Only the first 20 are available. |
{{plot("Name")}} | An indicator series by its English name, e.g. {{plot("Volume MA")}}. |
{{strategy.order.action}} | Strategies only. buy or sell. |
{{strategy.order.contracts}} | Strategies only. Number of contracts in the order. |
{{strategy.order.price}} | Strategies only. Price the order filled at. |
{{strategy.order.id}} | Strategies only. The order’s ID from strategy.entry, strategy.exit or strategy.order. |
{{strategy.order.comment}} | Strategies only. The order’s comment (the ID if none is set). |
{{strategy.order.alert_message}} | Strategies only. The alert_message text set in the Pine order call. |
{{strategy.market_position}} | Strategies only. long, flat or short. |
{{strategy.market_position_size}} | Strategies only. Size of the current position (absolute). |
{{strategy.prev_market_position}} | Strategies only. Previous position: long, flat or short. |
{{strategy.prev_market_position_size}} | Strategies only. Size of the previous position (absolute). |
{{strategy.position_size}} | Strategies only. Current position size, negative when short. |
Source: TradingView help center, October 2026. Price alerts use 1-minute bars for {{close}}, {{time}} and similar; indicator and drawing alerts use the chart’s timeframe. If an alert uses several indicators, {{plot}} values come from the first one.
A webhook sends your alert message to a web address as an HTTP POST request, so another app (a bot, a spreadsheet, a chat channel) can act on it. TradingView documents these rules:
application/json header. Anything else is sent as text/plain. The checker above tells you which one your message will be.Webhook notifications aren’t available on every plan. See the TradingView plans comparison and check TradingView’s pricing page for your plan.
Strategy alerts can use the {{strategy.*}} placeholders, which describe the order that just filled: buy or sell, size, price and the new position. Choose Strategy above to add them. They return nothing useful on an ordinary indicator or price alert.
Pine Script authors can also set the text per order with the alert_message parameter of strategy.entry(), strategy.exit() or strategy.order(), then put {{strategy.order.alert_message}} in the alert message. For indicators, placeholders written in an alertcondition() message are pre-filled when you create the alert.
"price": {{close}} is valid JSON only if TradingView fills in a number. Quoting it ("{{close}}") is safer; most receivers convert it.{{Ticker}} or {ticker} are sent as written, not replaced. The checker flags placeholders TradingView doesn’t document.1.Hotkeys for alerts and drawing are on our shortcuts cheat sheet.
ChartWatch is independent and not affiliated with TradingView. This tool runs entirely in your browser; nothing you type is sent anywhere. Placeholder and webhook details come from TradingView’s help center and may change.
ChartWatch is an independent tool and is not affiliated with, endorsed by, or officially connected to TradingView, Inc. “TradingView” is a trademark of its respective owner. Exchange, broker and platform names are trademarks of their respective owners.