Back to blog

Telegram forward filters: block unwanted reposts without losing sources

Understand forwarded-message metadata, source lists, hidden authors and Defendy’s current exceptions before enabling automatic deletion or member sanctions.

Imagine a community that shares software-release announcements. Members also bring in promotional channel posts. Both arrive as forwards. A blanket forward ban removes the useful sources with the unwanted promotions, while an exception based on a familiar display name may offer less certainty than an administrator expects.

A forward filter applies rules to the source information Telegram supplies with a message. It does not judge whether the original publisher is trustworthy, and it cannot identify every copied passage as a forward. Start by deciding which sharing patterns the group needs, then test the exact exceptions before turning on automatic removal.

First identify what was actually sent

A forwarded message may include source information for a user or chat. Hidden-author forwards expose less: the displayed name is not a disclosed user ID. Telegram defines these origin types in MessageOrigin.

A member can also type or paste text as a new message without forward metadata. That is not a forward input simply because the same words appeared elsewhere. A link to a post is a link, not automatically a forwarded message. Handle those cases through link rules, stop-word rules and the group's content policy.

There is another easily confused setting: protecting your own content from being forwarded out. Telegram's protected-content feature addresses that outbound-sharing problem. It is not a substitute for moderating forwards that other people bring into your group. For owner setup and screenshot limits, follow the group content-protection guide.

Enabling a category means filtering it

In Defendy's Mini App, open Anti-spam → Forwards. Expand Channels, Groups, Users, Bots or Hidden users. Each source category has its own enabled state, deletion setting and member action.

The important wording is enable filter, not “allow this kind of forward.” In the current implementation, an active category blocks a forward unless a supported exception or matching allowed source lets it through.

Do not enable all five categories as a generic safety measure. If promotional channel posts are the problem, filtering user forwards can also affect a member sharing their own note or a conversation they have permission to publish. Decide on that separate policy deliberately.

New categories start disabled, with deletion on and the member action set to None. Enabling a category can therefore start removing messages without issuing warnings. None does not mean that the forward will remain visible.

Source lists are not an identity guarantee

The allowlist and blocklist sit below the category controls and are shared across forward types. They refer to origins, not members who are exempt from the group's other rules.

Within the active forward handler, the allowlist is checked before the blocklist. Avoid putting an entry in both and assuming the block will win. Passing the forward check also does not exempt the message's text from later filters.

The reviewed implementation has a material limitation: it constructs the comparison key from the supplied chat title or author's name when present, falling back to an identifier only when that name is absent. Entering an @username or numeric ID does not therefore guarantee that a real forward will match that list entry. A display name is not strong proof of source identity, either.

The operational rule is simple: test the actual allowed source before depending on it. Add the entry, save it and send a real, harmless forward from a regular member. Do not replace that test with a similarly named sample channel or an administrator's successful post.

If essential release announcements are still removed, do not roll out a broad category ban while the exception is unresolved. Keep the case under human moderation instead of representing the list as verified source authentication.

Nor should you assume a “category off, blocklist still active” mode. The current settings projection makes a disabled category inactive before its forward filter runs. That combination is not a verified way to block only a few origins while automatically allowing every other source.

Three controls that need careful interpretation

The media switch

The switch is visible, but the current forward handler does not use it to change behavior. Turning it off is not a dependable exemption for forwarded photos, videos or documents. Source filtering and text-caption filtering are separate checks; the media guide explains the latter.

Allow the first message

This option is also visible, but the handler supplies “not the first message” to the check. Do not promise newcomers that their first forward is exempt simply because this setting appears enabled.

Allow forwarding your own messages

This option is exposed for user forwards. The implemented check compares the original author's ID with the forwarding member's ID. A hidden author may not supply the ID needed for that comparison, so this is not a universal exemption for anything a member calls their own message.

A saved toggle establishes that the setting was saved. It does not establish a working exception in all these cases.

Configure a test group before a busy community

  1. Open @defendy_bot, choose Settings and select a separate test group. Check the group name at the top.
  2. Open Anti-spam → Forwards and expand the one category you need. Enable it in the test group to reveal the additional settings, then check deletion and the member action before sending test messages.
  3. Use None for the member action and disposable, harmless forwards. If deletion is off, do not call the combination a preview mode: a matching filter can still stop later checks in the moderation chain.
  4. Add one necessary source through the relevant list. Choose its type, enter the value and save the add-entry form before trying a bulk import.
  5. Reopen the category and list to verify the saved state. Switches save as they change; an error or interrupted connection requires checking what actually persisted.
  6. Run the cases below from an ordinary member without immunity. Defendy skips Telegram administrators before automatic moderation, and some Defendy roles separately grant filter immunity.
  7. Consider member sanctions only after source handling is understood. A sanction targets the person who forwarded the message into this group, not the original publisher.

Warnings are not harmless diagnostic notifications: they can cross the member's existing warning threshold. Changing the action type resets the shared duration control to zero, which can mean an indefinite action where supported. Set and verify a finite duration after selecting a temporary restriction. Neither a warning nor a ban is needed to test source matching.

Test the material you want to keep

For the hypothetical release-discussion group, start with only the channel category enabled and prepare one source that is intended to be allowed. Test the user and hidden-author rows separately with their corresponding category enabled in the test group. An own forward surviving while Users is disabled does not establish that the own-forward exception works. These are proposed checks, not recorded results from a live group.

Verify useful sharing as well as unwanted-forward removal
ScenarioWhat to establishIf it fails
Announcement from the required channelThe actual allowlist entry worksDo not roll out the broad filter with an unverified exception
Harmless forward from another channelThe enabled category and deletion setting act as intendedCheck the sender's role, source type and bot rights
A member forwards their own messageThe original ID is available and the user exception appliesDo not extrapolate to hidden-author messages
Hidden-author forwardThe separate category has the intended policyReview the rule without guessing the person's identity
The same text pasted as a new messageOrdinary text is not confused with forward metadataInvestigate text rules separately
Forwarded image or albumThe scope of message removal is understoodDo not promise that media survives removal of its forward

If the group is linked to a channel, also check how channel publications appear in the discussion. A manual forward test does not establish the result for an automatic linked-channel post.

Record the sender's role, detected category, settings and actual outcome. An allowed-source forward can still contain a prohibited link or term. A disappearing message alone does not prove the forward list was responsible.

Recover without asking a member to repeat the mistake

If a useful post is removed, disable the problematic category or correct and verify the exception before asking for another attempt. Repeatedly reposting under the same rule can multiply the consequences.

Establish whether the message was forwarded, pasted, posted automatically into a discussion or sent on behalf of a channel. Check the moderation log if the relevant events were already enabled. A source name in a log is useful diagnostic information, not proof of authentic identity.

Fix an incorrect warning or restriction separately. If automatic reputation penalties are enabled, review that effect too. A list edit does not cancel consequences already applied, and it does not bring back the original deleted message. Once the rule is corrected, ask the member to share the useful material through the agreed route.

The goal is a rule members can follow while still citing the sources the community needs. When an exception cannot be verified, human review is preferable to a configuration that only looks selective.

Sources and review boundary

Checked on 5 October 2026 against Defendy's Mini App, source-matching service, module activation and moderation handling. The forward-filter reference lists the interface fields; the implementation limits above matter when using them. Platform references: Telegram MessageOrigin and protected content.

All scenarios are hypothetical. Source review does not confirm the version deployed to a particular group, and live forwards were not tested for this article.