A full beginner-to-advanced walkthrough of every feature. If you have never used the bot before, start at Section 1. Each card can be expanded for step-by-step instructions, real examples, and tips.
This is the core of the bot. It watches your source channels and copies every new message to your destination channels — automatically, 24/7, in under 1 second. All other features (filters, transforms, scheduling) run on top of this.
You pick a source channel (a Telegram channel or group you are a member of) and a destination channel (a channel or group where you want the messages to arrive). The bot connects to your Telegram account and the moment a new message is posted in the source, it copies it to the destination automatically. You do not have to do anything after initial setup.
You run a crypto signals group. Three paid channels post signals. You want those signals automatically shared to your own group. Add each of the 3 channels as a source and your group as the destination — every signal arrives in your group within a second of being posted, 24/7.
/connect +YourPhoneNumber to the bot. Telegram sends a one-time verification code to your phone — no password required. Enter the code when prompted (prefix it with aa, e.g. aa12345)./chats to the bot. It lists every channel and group your account is in, with their numeric IDs. Channel IDs look like -1001234567890 (always start with -100). Copy the IDs you need./manage, tap Add Redirection, and give it a name (e.g. "Crypto Signals"). Then tap Add Pair and enter the source ID and destination ID.The bot stores a mapping of each source message ID to the forwarded message ID in the destination. When an edit event arrives for the source message, the bot edits the corresponding destination message with the new content. Your destination always reflects the current, up-to-date version.
If you specifically want to preserve the original (un-edited) version in your destination — e.g. for archiving “first drafts” of news stories — turn this OFF in Processing settings. The destination copy will remain unchanged even if the source edits the message later.
/manage → select rule → Processing → toggle Mirror Edits. ON by default.When a source admin deletes a message (a wrong signal was sent, a post was recalled), the bot deletes the forwarded copy from your destination. Keeps your destination clean and consistent with the source.
If you want a permanent archive — keeping every message even after the source deletes it — turn this OFF. Every forwarded message stays in your destination permanently regardless of what happens in the source.
/manage → rule → Processing → toggle Mirror Deletions. ON by default.Under the hood, Telegram sends each photo in an album as a separate message, all sharing the same “media group ID”. The bot buffers incoming messages for 1.2 seconds, groups those sharing the same ID, and forwards the entire album as one grouped message — exactly as the original appeared.
Without this, a 10-photo product album would arrive in your destination as 10 separate photo messages, cluttering the chat. With buffering it arrives as one clean photo gallery. This runs automatically for all rules — no setup needed.
The bot records the last message ID it successfully forwarded from each source. On restart, it checks the source for any messages posted after that ID and forwards them in order, up to a ceiling of 200 messages per source. Runs silently within seconds of coming back online.
Brief server maintenance or a bot restart will not cause you to miss messages. For very high-volume channels during extended downtime, messages beyond the 200-message ceiling won’t replay — but normal restarts typically affect at most a handful of messages.
Messages appear in the destination as if they were sent by your account directly — no "Forwarded from" banner. The source channel name is completely hidden. Best for rebranding content, private aggregation, or when you don’t want to expose your sources.
Messages show a "Forwarded from [Channel Name]" header in the destination. The original source is visible to anyone who sees the message. Best when you want to credit the original channel or maintain transparency about content origins.
/manage → rule → Processing → toggle Quote Mode. OFF by default.In Telegram, when someone taps "Reply" on a message and writes a response, the new message is a reply. In channels with comments enabled, replies appear as threaded discussions. By default the bot forwards these along with regular posts.
If your source is a channel with an active comments section and you only want the main channel posts (not the reader comments/replies), disable this. Only top-level posts from the channel will be forwarded.
/manage → rule → Processing → toggle Process Reply. ON by default.Type filters let you control exactly which categories of messages get forwarded. By default everything passes through. You toggle individual types OFF to block them, or combine them to create an exact allow-list of what you want.
All toggleable message types (all ON by default):
Detailed explanation of every filter type:
Plain text messages with no media attached. A message that is only words, no photo or file. Turn OFF to stop forwarding text-only posts — useful if you only want media from a source.
Messages containing a photo or image. Includes photos sent with or without a caption. Turn OFF to skip all image posts and only forward text or other media.
Video files or video messages. Includes videos sent with captions. Turn OFF if you don’t want large video files filling your destination channel.
Audio files uploaded as music (with title and artist shown). Different from voice notes. Turn OFF to skip music files while still allowing voice messages, or vice versa.
Short voice recordings sent by pressing the microphone button in Telegram. These are different from uploaded audio files. Turn OFF to skip voice messages only.
Any file uploaded as a document — PDFs, ZIPs, EXEs, DOCX, XLSX, code files, APKs, etc. Turn OFF to stop forwarding file attachments and only forward media.
Animated GIF files and MPEG4 looping videos (the ones that auto-play silently). These are separate from regular videos. Turn OFF to remove animations from your destination.
Telegram stickers (static and animated). Often used for reactions in groups — they rarely carry useful information. Turn OFF to keep your destination professional and clutter-free.
Interactive polls created in Telegram. Turn OFF if you don’t want polls forwarded to your destination (they can’t be voted on in a channel you re-post to, so they’re often useless there).
Messages that are replies to another message (they quote the original). Channels with comments sections generate many of these. Turn OFF to skip all replies and only forward top-level posts.
Messages that were themselves forwarded from another channel or user (they show a "Forwarded from X" banner in the source). Turn OFF if you only want original posts and not re-shared content.
Any message whose text contains a hyperlink (https://, t.me/, www., or bare domains). Turn OFF to block all messages containing any kind of link — great for filtering out spam and promotional posts.
Any message whose text contains one or more #hashtags. Many promotional posts use hashtags like #ad #promo #sale. Turn OFF to block all messages containing hashtags.
Media messages (photo, video, audio, document) that have any text caption attached. Turn OFF to allow only bare media with no text attached, or turn OFF to skip captioned media and let only text messages through.
Special filter: When ON, only forward audio messages that include a caption (description text). Audio files without any caption text are skipped. Useful when you only want properly labelled, described audio — not random unlabelled voice clips.
Special filter: When ON, only forward photos that include a caption. Photos without any text are skipped. Useful for news channels where you want photo+context posts but not standalone photos with no explanation.
/manage and tap the rule you want to configure.Type filters control what kind of message passes through. Keyword filters control messages based on what’s written inside them. You can allow only messages mentioning “BTC”, or block any message containing “advertisement”. These work on message text and captions.
You add a list of words or phrases. When a message arrives, the bot scans its text. If the text contains any of your whitelist words → forward it. If none of the whitelist words are found → skip it silently. Matching is case-insensitive by default (BTC = btc = Btc).
You forward from a general cryptocurrency channel but only want posts about BTC and ETH. Add BTC, Bitcoin, ETH, Ethereum to the whitelist. Only messages that mention at least one of those words will reach your destination. Everything else is dropped.
BTC · Bitcoin · buy signal · sell signal · ETH/manage → select your rule → tap Whitelist.buy signal or target reached. The bot checks if the exact phrase appears anywhere in the message text.The opposite of whitelist. You add words you want to block. When a message arrives: if its text contains any blacklisted word → skip it. If no blacklisted words found → forward it normally. By default everything passes through — the blacklist only kicks in once you add words.
You aggregate a news channel that occasionally posts sponsored ads. Add advertisement, sponsored, promo code, buy now to the blacklist. All ad posts are silently dropped; real news posts still come through.
advertisement · sponsored · promo code · join our · click hereEvery rule has its own private whitelist and blacklist. But there are also global lists that apply to every single rule simultaneously. A message that is blocked by the global blacklist is dropped even if the per-rule whitelist would have allowed it.
You have 10 rules. There are 5 spam words you always want to block everywhere. Adding them to the global blacklist once blocks them across all 10 rules. Without global filters you’d need to add those words to each rule individually every time.
/manage → tap the gear/settings icon next to your username at the top → Global Filters.Transforms modify what a message says before it reaches your destination. Strip out ads, rename channels, add your own branding, reformat the whole layout. Multiple transforms can be stacked and run in this fixed order: 1) Translate → 2) Text Replace → 3) Remove Lines → 4) Format Template → 5) Make Bold → 6) Caption Prepend/Append.
You define replace rules, each consisting of a Find text and a Replace with text. Before forwarding each message, the bot scans its text and performs every replace rule in order. You can stack as many rules as you need per redirection. To delete something, just leave the “Replace with” field blank.
Simple (literal): Matches the exact text you type, case-insensitive. No special knowledge needed. Best for replacing channel names, removing specific phrases, swapping words.
Regex (pattern): Uses Python regular expressions to match complex patterns. Can match “any URL”, “any phone number”, “any @mention” — things you can’t predict in advance.
① Simple replacement — beginner-friendly, no special knowledge needed:
Type the exact phrase you want to find. Type what you want to replace it with (or leave blank to delete it). The bot will find every occurrence of that phrase in every forwarded message and swap it. Matching ignores uppercase/lowercase by default.
@OtherChannel → Replace: @YourChanneladvertisement → Replace: (blank = deleted)BREAKING NEWS: → Replace: 🚨Follow us for more → Replace: (blank = deleted)Source: XYZ Media → Replace: Source: My Channel② Regex replacement — advanced, matches patterns you can’t predict:
A regex (regular expression) is a search pattern that can match a whole category of text. For example, the pattern https?://\S+ matches any URL — whether it’s https://google.com or https://t.me/channel or any other link. You don’t need to know the URL in advance.
https?://\S+ → matches and removes ANY URL/link@\w+ → matches and removes ANY @mention\+\d{10,13} → matches and removes phone numbers#\w+ → matches and removes #hashtagst\.me/\S+ → removes Telegram invite links only# Simple replace examples (Find → Replace with) @CryptoSignalsOriginal → @MySignalChannel Join us at t.me/promo → (blank: line deleted) SIGNAL: → 🚨 SIGNAL: # Regex replace examples (Pattern → Replace with) https?://\S+ → (blank: removes all URLs) @\w+ → (blank: removes all @mentions) \+\d{10,13} → (blank: removes phone numbers) (?i)buy now → (blank: removes "buy now" case-insensitive)
Follow @CryptoOriginal for more daily updates. → (blank — deleted)Use code CRYPTO20 for 20% off our premium plan. → (blank — deleted)https?://\S+ → (blank — removes URL)/manage → select rule → Transform → Text Replace.__all__ as the find pattern to replace the entire message text with your replacement string. Useful for turning a specific message into a completely custom announcement.You specify trigger words or phrases. When a message arrives, the bot splits it into lines. Any line containing one of your trigger words is removed entirely. The remaining lines are joined back together and forwarded. Only matching lines are deleted — the rest of the message stays intact.
Text Replace finds a phrase and replaces it in-place (mid-sentence). Remove Lines deletes the entire line containing the word. Use Remove Lines for footer-style text that sits on its own line. Use Text Replace for phrases embedded within a sentence.
Join our · Follow @/manage → rule → Transform → Remove Lines.[[Message.Text]] — original message text[[Message.Caption]] — caption of a photo/video[[Chat.Title]] — name of the source channel[[Message.Date]] — date & time message was posted[[Message.Sender]] — name of who sent the messageYou write a template using any combination of these variables and your own static text. Every time a message is forwarded, the variables are replaced with the real values from that message and the composed result is sent to the destination.
📢 Market Update
[[Message.Text]]
🕐 Posted: [[Message.Date]]
📡 Source: [[Chat.Title]]
🔗 @MyChannel/manage → rule → Transform → Format.\n for a new line, or just press Enter between lines.Wraps the entire message text in Telegram’s bold formatting before forwarding. Every forwarded message arrives at the destination with all text in bold. Simple toggle, no configuration needed.
Source posts: “BTC buy signal confirmed at $70k”
Destination receives: “BTC buy signal confirmed at $70k”
/manage → rule → Transform → toggle Make Bold.Your text is placed at the very beginning of every forwarded message. Example: add 📢 Signal Alert: at the start of every post so readers instantly know the context.
Your text is placed at the very end of every forwarded message. Example: add 🔗 Follow @MyChannel for more as a branded signature at the bottom of every post.
📡 Via @MyChannel🔔 Join for daily signalsCleaner is different from type filters. Filters block entire messages. Cleaner strips specific parts from a message but still forwards the rest. Think: “forward the photo but remove its caption” or “forward the document description but strip the file attachment”.
/manage → select your rule → tap Transform → Cleaner.Control when messages are forwarded. Add a delay to create a time gap between source and destination, or restrict forwarding to specific hours and days of the week only.
You set a number of seconds. When a message arrives, instead of forwarding immediately, the bot queues it and sends it to the destination after the delay period. Set 1800 = 30-minute delay. Set 3600 = 1 hour. Set 0 = no delay (immediate, default).
You run a signals channel. Create two rules from the same source: Rule A sends to your VIP group with 0-second delay (instant). Rule B sends to your free group with 1800-second delay (30 minutes). VIP members always get signals 30 minutes before free members.
When enabled, each message gets a slightly randomised delay variation around your set value. Messages don’t all arrive at exact 30:00-second intervals, making the timing look more natural and harder for free members to deduce the exact delay.
/manage → rule → Processing → Delay. Enter the delay in seconds. Toggle Delay Spread to enable jitter.
Set a start and end hour using 24-hour format (0–23). Only messages posted during that window are forwarded. Example: 9-22 = active only from 09:00 to 22:00. A message posted at 2:00 AM is permanently dropped.
Choose which days of the week forwarding runs. Days are numbered 0 (Monday) through 6 (Sunday). Example: 0,1,2,3,4 = Monday to Friday only. Saturday and Sunday messages are permanently dropped.
All hours are evaluated in the timezone you specify. Use any IANA timezone: Asia/Kolkata, America/New_York, Europe/London, Asia/Dubai, Asia/Singapore. If not set, UTC is used by default.
/manage → rule → Processing → Schedule. Set active hours, active days, and timezone. Leave blank to disable scheduling (forward all the time).
Automatically translate forwarded messages to any target language before sending. Perfect for aggregating content from foreign-language sources into a single-language destination channel.
When a message is ready to forward, the bot sends its text to a translation engine before delivering it to the destination. You set the target language once; all future messages are translated automatically. The original message in the source is unaffected.
Leave “Translate From” as auto. The translation engine detects each message’s language automatically. This handles mixed-language sources where different posts are in different languages.
en Englishhi Hindiar Arabices Spanishfr Frenchde Germanru Russianzh-CN Chinese (Simplified)pt Portugueseja Japaneseko Koreantr Turkishit Italianid Indonesian1. /manage → rule → Transform → Translate.
2. Set Translate To (e.g. en for English).
3. Set Translate From to auto (recommended) or a specific source language code.
4. Save — all future messages are translated before delivery.
An advanced Pro feature that converts one message type to another before forwarding. Turn a text message into a photo, replace a specific sticker with a different one, convert video to audio, and more.
You define rules: “when a message of type X arrives (optionally matching specific content), send type Y to the destination using file Z.” Can match on any incoming type or only on a specific message text or specific file ID (e.g. a particular sticker).
any — matches all incoming types/manage → rule → Transform → Media Transform.Automatically overlay your logo or branding on every forwarded photo. Applied server-side before delivery — no manual editing needed.
You upload a PNG image (your logo or watermark). When the bot forwards a photo, it composites your watermark onto the photo server-side using the settings you configure — then sends the combined result to the destination. The original photo in the source is never modified.
/manage → select rule → tap Watermark.Additional powerful tools for specific use cases — duplicate detection, channel history cloning, auto-pause protection, and more.
When a message is ready to forward, the bot creates a fingerprint (hash) of its content. Before forwarding, it checks if that fingerprint was already seen in the last 7 days. If it matches a duplicate → skip silently. If it’s new → forward and store the fingerprint. Hashes are auto-deleted after 7 days.
You aggregate the same news from 5 different channels. Often the same breaking story is posted by all 5. Without deduplication, your destination gets the same story 5 times. With it, only the first occurrence goes through — the other 4 are silently dropped.
/manage → rule → Processing → toggle Block Duplicates.Clone fetches historical messages from the source (going back as far as available) and forwards them to the destination with all your current filters and transforms applied. A progress counter shows done/total. You can stop at any time and resume later.
You created a new channel and want to pre-fill it with an existing channel’s content. Or you want to create a permanent archive of a channel’s history. Clone runs at ~1.5 seconds per message to avoid Telegram’s rate limits.
/manage → select rule → tap Clone History.Every time a forwarding attempt fails, a failure counter increments for that rule. The bot sends you a warning after the first few failures. After 20 consecutive failures (with no success between them), the rule is auto-paused and you receive a clear notification explaining why. A single successful forward resets the counter to 0.
/joincheck to check if your account has access to all channels/manage once the issue is fixedWhen enabled (default: ON, meaning own messages ARE skipped), the bot ignores messages sent by your own Telegram account in the source. This prevents a loop: you post in source → bot forwards to destination → if destination is also monitored, it would forward back → infinite loop.
If you are the admin who posts content to the source channel and you want your own posts forwarded too, toggle Process Own Messages ON. Only safe to do if there’s no loop risk (source and destination are different, neither monitors the other).
/manage → rule → Processing → toggle Process Own Messages.Track how your rules are performing and keep your full configuration safely backed up. Restore everything with one tap.
All 3 counters tracked per day, per rule. Stats older than 90 days auto-deleted.
Where: /manage → select rule → tap Stats.
Every 12 hours the bot automatically saves a complete snapshot of your configuration. The 6 most recent snapshots are kept — older ones are removed. You can also trigger a manual export at any time.
/manage → settings icon → Export Backup. The bot sends you a JSON file to save./manage → settings icon → Import Backup. Send the JSON file — all rules recreated instantly./manage → settings icon → Export Config → pick a dated snapshot and confirm.Connect your account and be forwarding in under 2 minutes. Free plan, no credit card.