Guard

Moderation for your Telegram groups

← Back to the site
◆ Guard dashboard
Moderation
Review0 History
Directory
People Groups
System
Rules Statistics
Account
Plans API tokens Profile Accounts
admin
Review
JK move · A approve · X reject · R refresh
—waiting for you
—resolved by you
—auto-rejected
—undos pending
TimeGroupTypeEvent ResultDecisionCheckRisk
Nothing matches the selected filters
No one found. Search by @username, name, or numeric id
Groups
Event history
TimeGroupType ResultDecisionRisk
No events yet
No groups yet. Connect your first group — the one the bot will send join requests from. If the bot is already in your group, enter its Chat ID and the group will be linked to your account.

New group

Join requests
Messages in the group
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

  1. Casino ads — instant rejection. What to look for: keyword → casino, crypto, betting · Where: anywhere · Applies: in join requests · Action: reject
  2. Any links — by a moderator’s eyes. Has link · anywhere · in messages · review
  3. 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.
  4. CJK characters in the name. What to look for: regex → [\u4e00-\u9fff]+ · Where: name · Applies: in join requests · Action: reject
  5. 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.

New ruleset

Total checks
—
AI checks
—
Corrections
—
your marks in the history
Check results
By group

New token

The token goes into your bot instead of the service key (the API_KEY variable). One token grants access to all your groups.

Copy the token now — it will not be shown again
Account

Email not confirmed yet —

Saved
Change password
Password changed; other sessions signed out
This month’s usage
Calculating…
Plans
No accounts found. Search by email or name
Review0 History People Groups
admin
Rules Statistics API tokens Plans Profile Accounts