Nyria Docs
Alert sources

Stream Telegram channel alerts to Nyria

Add the Nyria Telegram bot to your channel, authorize Nyria to read it, and stream signal messages straight into your strategies.

By the end you will have the Nyria Telegram bot reading a channel you control, authorized for one of your strategies, and a parsed test alert visible in your strategy logs.

Telegram is coming soon — it can't be selected as a strategy alert source yet. This guide is a preview of the connection flow at launch.

Telegram is an alert source, not a broker. Messages parsed from Telegram still need a connected broker on the bot side to actually place orders. See Broker integrations for the broker connection step.

Prerequisites

  • A Nyria account with at least one strategy created.
  • A connected broker (start with paper). See the broker integrations index for the list of live brokers.
  • A Telegram channel or group where you are the owner or an admin. You must be able to add bots and change admin settings.
  • Telegram app on desktop or mobile, signed in to the account that owns the channel.

You can only stream channels/groups you administer. Nyria cannot ingest messages from public broadcast channels you merely follow. This matches the Discord integration behavior.

What gets parsed

Telegram messages are parsed as natural language, the same shape as Discord. Nyria reads the message text and matches it to your strategy's entry/exit rules. There is no fixed JSON schema — for the full list of fields Nyria recognizes when you do choose to send structured data, see the webhook payload reference.

Steps

Open the Nyria Integrations tab

In the Nyria web app, go to Integrations in the left sidebar, then click Add Integration and pick Telegram from the third-party section.

Copy the bot handle

The connect modal shows the official Nyria bot handle. It looks like this:

@NyriaAlertsBot

Copy it exactly. Do not search Telegram for a bot with a similar name — only the handle shown in your Integrations tab is the real one and only it will accept the authorization token from step 5.

Add the bot to your channel as an admin

In Telegram:

  1. Open the channel or group you want Nyria to monitor.
  2. Tap the channel title → AdministratorsAdd Admin.
  3. Search for the handle you copied (@NyriaAlertsBot) and select it.
  4. Grant only these permissions — leave everything else off:
    • Read messages (always on for channel admins).
    • Send messages (the bot uses this once, to confirm authorization).

Save. The bot now sits in your channel as a silent admin.

Do not grant Delete messages, Ban users, Add new admins, or Change channel info. Nyria does not need them and will never use them. If you grant them, revoke them — least privilege is the rule.

Generate an authorization token in Nyria

Back in the Nyria Integrations → Telegram modal, click Generate authorization token. Nyria displays a one-time code that looks like this:

nyria-tg-7f3a9c2e1b

The prefix nyria-tg- is literal — the suffix is unique to your account and expires in 10 minutes. Copy the full string.

Authorize the channel from inside Telegram

In the Telegram channel where you added the bot, post a single message containing only the token from step 4:

nyria-tg-7f3a9c2e1b

Within a few seconds the bot replies in-channel with a confirmation message and Nyria's Integrations tab flips to Connected. The token is now consumed — posting it again does nothing.

If the bot does not reply within 30 seconds:

  • Re-check that @NyriaAlertsBot is actually an admin of the channel (not just a member).
  • Re-check the token has not expired — generate a new one if it has.
  • Check the channel is not set to Restricted mode for bots.

Point a strategy at the channel

In My Strategies, open the strategy you want to feed and go to its Integration tab. Set:

  • Alert source: Telegram.
  • Channel: select the channel you just authorized from the dropdown.
  • Author (optional): a Telegram username to whitelist. Leave blank to accept all admins/posters.
  • Keyword (optional): a case-insensitive substring the message must contain (for example ALERT) to be parsed.

Save the strategy.

Send a test alert

In the Telegram channel, post a real-shape message that matches your strategy's entry rule. For an equity strategy:

SPY long entry

For a crypto strategy:

close short btc

For an options strategy using external selection:

SPY 675C buy to open

These are the same natural-language shapes the Discord integration accepts — Telegram and Discord share the parser.

Verify the parse in strategy logs

Open the strategy's Logs tab in Nyria. Within ~1 second you should see a log entry with:

  • The raw Telegram message text.
  • The parsed instrument, direction, and action.
  • The resulting bot decision (entered, skipped, exited, etc.).

If the message parses but no order is placed, the bot is doing its job — the order side is controlled by your bot's broker connection and entry/exit rules, not the Telegram source. See Trading behavior and the bots reference for that side of the chain.

Message format expectations

Telegram parsing is identical to Discord — natural language, not JSON. The parser is forgiving but it does need three things in the message to act:

ConceptWhat Nyria looks forExamples
InstrumentA recognizable ticker, OCC symbol, or crypto pair.SPY, AAPL, BTC, BTCUSDT, SPY260619C00500000
Directionlong, short, or implied by action.long, short
ActionOpen/close intent.entry, exit, open, close, buy, sell, buy to open, sell to close

Examples that parse cleanly

SPY long entry
close short BTC
AAPL 150C buy to open
SPY 675C/676C bull call spread

Examples that do not parse

thinking about SPY
maybe close later
spy???

These miss either the instrument, the direction, or the action — the parser refuses to guess on partial intent.

Exits must match entries

When you post an exit, the parser pairs it to an open position by instrument + direction. Use the same instrument name and the same direction word you used in the entry. close short BTC correctly closes a BTC short entry; close BTC is ambiguous and will be rejected if more than one BTC position is open.

Nyria intentionally does not support attached bracket / OCO / OTO / trailing-stop legs from alert text. Exit conditions live on your bot configuration, not on the inbound alert. This is the same scope rule across every alert source.

Filtering options

The Author and Keyword filters on the strategy's Integration tab let one channel feed multiple strategies safely.

Dedicated alerts channel — leave both blank. Every message in the channel reaches the parser.

Single-author whitelist — set Author to the Telegram username of your signal poster. Other admins talking in the channel are ignored.

Multi-purpose channel — set Keyword to a marker like ALERT and prefix every signal you want acted on:

ALERT SPY long entry

Messages without the keyword are dropped before parsing.

Troubleshooting

"Channel not found" in the strategy dropdown

  • The bot is not yet an admin of the channel. Re-do step 3.
  • The authorization token in step 5 expired before you posted it. Generate a new one.
  • You authorized from a different Nyria account than the one viewing the strategy.

Bot is in the channel but messages are not arriving

  • Check the channel is not muted at the Telegram bot privacy level — in BotFather terms, @NyriaAlertsBot runs with privacy off only inside channels it administers. If you removed admin rights, restore them.
  • Check the strategy's Keyword filter. A keyword that does not appear in the test message will silently drop it.

"Could not parse alert"

The message lacked a recognizable instrument, direction, or action. Re-read Message format expectations and resend in one of the example shapes.

"Multiple entries disabled"

Your strategy is configured single-position. Wait for the current position to close, or change the strategy's entry behavior. This is not a Telegram-side error — it is a strategy rule.

Raw payload questions

If you want to see exactly what fields Nyria pulled out of the message, the webhook payload reference lists every field the parser recognizes. The strategy log shows the parsed payload alongside the original text.

Revoking access

To stop Nyria from reading a channel:

  1. In Telegram, remove @NyriaAlertsBot from the channel's admins (or kick it entirely).
  2. In Nyria, go to Integrations → Telegram and click Disconnect for that channel.

Either action alone is enough to stop ingestion. Doing both is the clean state.

Where to go next