Stop words

Live

Stop words

Stop-word settings: search methods, global spam list, named lists, actions, durations and bulk import.

Tip: change one option at a time and verify the result in the group so false positives are easy to spot.

In short

Stop words are controlled lists of forbidden words and phrases. Use multiple lists when different topics need different actions.

How it works

  1. Active lists are checked independently when a message arrives.
  2. The selected search method determines whether a word or substring counts as a match.
  3. The settings of the matched list decide deletion, warning weight, action and duration.

Set it up step by step

  1. Open Defendy in Telegram, choose the group and open Stop words.
  2. Enable the filter and choose one search method. The method is shared by every stop-word list in this group.
  3. Open the default list or create a named list for a separate policy, such as Scam offers or Competitor mentions.
  4. Choose whether to delete the message, then select the user action, duration and warning weight for that list.
  5. Add each word, phrase or CUSTOM rule as one entry. Use a comma or Enter for manual input, or import a .txt file.
  6. Before using mute, kick or ban, test a matching message, a safe near-match, an inflected form and an obfuscated spelling in a test group.

Every setting explained

Enable filter

Default: Off.

Turns stop-word matching on for the group.

Search method

Default: Substring.

Exact (STRICT) matches whole normalized words, Partial (SUBSTRING) finds literal fragments, and Custom (CUSTOM) applies advanced rules.

Global spam words (coming soon)

Default: Off.

Reserved shared spam-word list. The current WebApp switch is disabled and cannot be changed.

List name

Default: Default.

Label used to distinguish several stop-word policies. The default list cannot be deleted; additional lists can be renamed or removed.

List action

Default: Nothing.

Action for a match: nothing, warn, notify, mute, kick or ban, subject to the standard punishment selector.

Action duration

Default: 3600 sec.

Duration for a temporary action. The full duration selector is available and can include permanent where the action supports it.

Delete matched message

Default: On.

Deletes the message that matched this list independently from the punishment action.

Warning weight

Default: 1.

Adds 1 through 5 warning points when the list action uses warnings.

Bulk import

Default: Manual input.

Add entries separated by a comma or Enter, or upload a .txt file. The WebApp accepts files up to 1 MB and reads at most 5,000 entries before plan limits are applied by the API.

Choose the right search method

The names describe string matching, not linguistic analysis. None of the modes performs stemming, lemmatization or automatic recognition of grammatical forms.

MethodWhat counts as a matchGood forMain risk
ExactA plain entry must equal a separate normalized word.Names, codes and terms that should match only as whole words.Inflected forms do not match automatically.
PartialThe normalized entry may occur anywhere inside the normalized message.Stable word stems and deliberately broad blocking.Safe words can contain the same letters.
CustomEach entry becomes a rule with required parts, exclusions, quoted phrases and wildcards.Inflections, contextual rules and reducing known false positives.A broad wildcard can make a rule much wider than intended.

Normalization before matching

Matching is case-insensitive. Defendy also normalizes some Latin look-alikes and letter emoji and removes punctuation used to split a word. This is why an entry can still catch an obfuscated spelling such as letters separated by dots. Partial mode removes non-alphanumeric separators from both the entry and the message, so spaces and punctuation do not protect a match.

Normalization is not translation and is not a morphological dictionary. Always test the exact language and spellings used in your group.

Exact mode in detail

A single-word entry matches a separate normalized word:

EntryMessageResultWhy
cata cat arrivedMatchThe word is present separately.
catcats arrivedNo matchThe ending changed.
adaddressNo matchThe letters are only part of another word.

An entry containing spaces is stored as a phrase. In the current runtime, such a phrase is searched as a normalized sequence and can also occur inside a longer sequence. If strict phrase boundaries matter, use CUSTOM mode and put the phrase in double quotes.

Partial mode and inflections

Partial mode is literal substring search after normalization. It often catches inflections when the stored letters remain unchanged, but it does not understand why a word changed.

EntryExample messageResult
catwith the catMatch
catcatsMatch if the same letters remain in that language form
adaddressMatch — possible false positive
advertisementa form with a changed ending or stemMay not match
a carefully selected stable stemseveral forms that keep that stemMatch, but test safe words too

For languages with rich inflection, add a stable stem only when it is distinctive enough. A short root such as two or three letters is usually too broad. Build a small test set with intended forms and unrelated words containing the same letters.

CUSTOM rules

In CUSTOM mode every item in a stop-word list is one complete rule. Plain text still means “contains this text”; operators add conditions.

SyntaxMeaningExample
A && BBoth parts must occur somewhere in the message.discount* && link*
!AThis part must not occur. Use it after a positive condition.cat* && !cattle*
"exact phrase"Match the quoted phrase with word boundaries."buy now"
*Zero or more arbitrary characters.advert*
+One or more arbitrary characters.promo+code
?Exactly one arbitrary character.sp?m

These are controlled wildcards, not an unrestricted regular-expression field. Other regex punctuation is treated as ordinary text.

Useful rule patterns:

  • advert* covers multiple endings that share a stable beginning;
  • cat* && !cattle* keeps the intended family while excluding a known safe word;
  • "buy now" requires the phrase instead of two unrelated words in different parts of a message;
  • discount* && link* fires only when both advertising concepts are present;
  • casino && !board game casino excludes a known safe context, but the exclusion applies to the whole message.

All positive parts of a rule must match, and every negative part must be absent. Conditions are checked across the whole normalized message, not only next to each other. Create separate list entries for alternative rules: one entry is not an OR expression.

Lists and actions

The search method is global for the group, while consequences belong to each list. For example, a Scam links list can delete and warn, while a Sensitive topics list can only notify. The default list cannot be deleted; additional lists can be renamed or removed.

The Delete message switch is independent from the user action. Turning deletion off does not automatically turn warn, mute or ban off. Review both controls before testing.

Safe test checklist

For each new entry or rule, send at least these messages in a test group:

  1. an obvious positive match;
  2. the same text in another case and with punctuation;
  3. an inflected or plural form;
  4. a word split with dots or other separators;
  5. a harmless word containing the same stem;
  6. a message containing the CUSTOM exclusion;
  7. a clean message that must remain untouched.

After changing the search method, close and reopen the settings page and confirm the selected value is retained. Until the test passes, avoid irreversible actions such as kick or ban.

Practical example

Create a list called “Scam phrases”, add several real examples and use notify or warn first. Partial search catches shared fragments, but test it against harmless words; use negative CUSTOM conditions for known false positives.

Recommendations

  • Partial search does not understand grammar; use a tested stable stem or a CUSTOM rule for inflections.
  • Stop-word lists do not have a separate exceptions field. Narrow the entry, switch methods or add a negative CUSTOM condition.
  • Keep list names practical: topic, language or campaign.

Troubleshooting

  • Check that Defendy is still an administrator in the group.
  • Refresh the settings panel and make sure you are editing the correct group.
  • If a setting is saved but does not work, check the bot permissions in Telegram.
  • If you are not sure what happened, open the moderation log.
  • If an inflected form is missed, remember that exact and partial matching do not perform morphology; test a stable stem or a CUSTOM wildcard.
  • If a partial rule catches a safe word, shorten its reach or replace it with a CUSTOM rule containing a negative condition.
  • The Global spam words control is marked Coming soon and is intentionally disabled.

Need help?

If a setting behaves differently than expected, contact support.@ubotz