| Time | Group | Type | Event | Result | Decision | Check | Risk | |
|---|---|---|---|---|---|---|---|---|
| Time | Group | Type | Result | Decision | Risk |
|---|
How rules work — in plain words
A rule is a condition of the form “if I find this — do that”. The bot checks every join request and every message against the rules of the ruleset bound to the group — before the AI ever sees the text. If a rule matches, the bot performs its action right away. If none matched, the AI steps in and judges the text by meaning. An empty ruleset, or one not bound to a group, does nothing.
How the bot reads the list
Top to bottom, like a checklist. The first matching rule decides — the rest are not consulted. That is why order matters: an exception rule must sit above a broader one. New rules are added to the end of the list; use the ↑↓ arrows to reorder. Edits live in a draft first: press “Save”, and from the next request or message the new version is in force. “Discard changes” puts everything back.
What a rule consists of
- What to look for. “Keyword” — plain text, case-insensitive, matching inside words: “casino” will find both “Casino” and “casino-ish”. You can enter several words separated by commas — each becomes its own rule. “Regex” — a pattern for a whole class of texts (example below); if unsure, use “keyword”. “Has link” — any link (http…, www…, t.me/…); no value needed.
- Where to look. “Name” — the user’s display name, “bio” — the profile description, “text” — the message text, “anywhere” — all three at once.
- Where it applies. “In join requests” — when someone asks to join the group; “in messages” — when they already write in the group; “everywhere” — both.
- What to do. “Reject” — the bot refuses by itself. “Review” — a moderator decides: the case arrives in the Review section. “Skip” — let it through at once, the AI is not called.
Filled-in examples
- Casino ads — instant rejection. What to look for: keyword → casino, crypto, betting · Where: anywhere · Applies: in join requests · Action: reject
- Any links — by a moderator’s eyes. Has link · anywhere · in messages · review
- Exception: our channel — let through. Keyword → t.me/ourchannel · anywhere · in messages · skip. Add this rule and move it with the ↑ arrow above example 2 — otherwise the broader link rule fires first and the exception never gets a chance.
- CJK characters in the name. What to look for: regex → [\u4e00-\u9fff]+ · Where: name · Applies: in join requests · Action: reject
- Suspicious ads — but no instant ban. Keyword → easy money, investment, earnings · anywhere · everywhere · review
Tips
- Start a new rule with the “review” action: watch for a couple of days what it catches (in the Review section), and only then switch it to “reject”.
- A short keyword catches more, a longer one is more precise: “bonus” may snag an innocent message. Change a finished rule’s word or action with the pencil by its row, remove it with the cross.
- “Has link” + “skip” will let all links past the checks — not a good idea in an open group.
- A ruleset is shared: you can bind it to several groups at once on the Groups tab. Editing a ruleset applies to all bound groups simultaneously.