By default, we write the message for you. Flip one switch and your own words arrive instead — with live values dropped into the blanks you leave.
DEFAULT and CUSTOM.Whatever you type is delivered exactly as written. Leave a box empty and that event simply uses the default format — you can customize entries and keep stock closes, or the other way around. Works on all four channels: Discord, Telegram, Webhook, and Push.
Write {{blank}} anywhere in your message and it's replaced with the live value when the signal fires — the same fill-in-the-blank style TradingView uses. You don't have to type them: tap the chips under each box and they drop in at your cursor.
{{symbol}} — the coin, e.g. SOL
{{side}} — LONG or SHORT
{{price}} — the signal price, as a plain number like 3412.50 (no thousands commas, so it's safe inside JSON too)
{{strategy}} — the name you gave the strategy
{{timeframe}} — e.g. 60m
{{leverage}} — e.g. 3x (blank at 1×)
{{time}} — the signal's candle time, e.g. 2026-07-07 14:00 UTC
{{exit_reason}} — why the trade closed, e.g. Take profit or Trailing stop. Close messages only — on entries it's always blank.
Two TradingView-style aliases also fill in, so a webhook template generated by a bot service (3Commas and friends) works as pasted: {{close}} — same value as {{price}}, and {{timenow}} — the signal's send time in ISO format, e.g. 2026-07-07T14:00:05Z.
A misspelled blank like {{pric}} isn't silently deleted — it stays in the message as-is, so you can spot the typo.
Fixed text. Write Bitcoin long — get in and that exact sentence arrives, nothing more. Since each signal line is tied to one strategy, a fixed message is never ambiguous.
Text with blanks. Write 📈 {{symbol}} {{side}} — entry at {{price}} and it arrives as "📈 SOL LONG — entry at 81.51".
JSON, for the Webhook channel. Bots often expect a specific shape. Write it directly:
{ "sym": "{{symbol}}", "px": {{price}}, "go": "{{side}}" }
If the finished message is valid JSON, we deliver it as application/json; anything else is delivered as plain text — the same behavior TradingView webhooks have.
Connecting a bot service? The bot recipe shows exactly what to paste for 3Commas.
Push: the first line of your message becomes the notification title, the rest becomes the body. And a tip worth the whole guide: phones preview only the first 1–2 lines of any notification — put the direction and coin first, details after. That habit pays on Discord and Telegram phone alerts too.
Discord: your text is sent as a normal Discord message, so markdown like **bold** works. Telegram: delivered as plain text. Webhook: JSON if valid, plain text otherwise, as above.
Press SEND TEST and your entry message arrives with sample values filled in. If you've written a close message, a second close sample follows — so both of your messages get checked before any real signal fires. Sample prices are stand-ins; live signals carry the real ones. On Discord, Telegram and Push the sample is clearly marked as a test.
Webhook channel — read this before testing a bot. A custom message is delivered exactly as written, with no test marker added — a connected trading bot can't tell the sample from a real signal and may place a real order. Run your first test against your bot's paper/demo mode, not live funds.
Two limits to know: each box holds up to 1,000 characters, and blanks can only carry the values listed above — signals never include stop-loss, take-profit, or PnL figures. Switching back to DEFAULT keeps your text saved; it just stops being used until you switch again.
Not connected yet? Start with the channel setup guide.
Signals are information, not orders — CoinLAB never touches your exchange account. Nothing here is financial advice.