Join requests

Let ChatZilla screen join requests to a private Telegram group: decline spam profiles automatically, test applicants and approve the rest in one tap.

In a group where new members have to send a join request, ChatZilla can handle the requests: greet the applicant, check them, decline obvious spam on its own and send admins a card to decide on. It is set up in the Group join requests section of the mini app.

Before you start

  • In the group's Telegram settings (Group type), switch on Approve new members. Without it Telegram never sends join requests to the bot.
  • The bot needs the admin right to add members (Invite users); Telegram sends join requests only to admins with it. See Permissions.

The flow

Switch on Enable approval flow. When someone asks to join:

  1. Auto-reject rules run first. A request that matches one is declined silently, before any admin sees it.
  2. If Verify before approval is on, the applicant gets a quick check in a private message: the group's verification type if it is a button, a choice of buttons or math (CAPTCHA and Subscription are replaced with math here), and math if none is set. Only after passing it does the request go further. Three wrong answers decline the request; the person can apply again a few minutes later.
  3. Without the check, the applicant receives the request-received message (when admin approval is on). With the check on, that message is not sent: the applicant sees a "check passed" note instead.
  4. With Require admin approval on, the group owner and the members of your team (see Statistics and logs) get a card about the applicant in their private chat with the bot, with Approve and Decline buttons. The buttons work only for people who are administrators of the group in Telegram; a team member who is not decides in the mini app, under Awaiting your decision. A team member who never started the bot can't receive the card. With the switch off, the request is approved automatically (the auto-reject rules still apply).
  5. After approval the applicant receives the welcome message in private, with an optional photo or video and link buttons. The group welcome, if switched on, is posted too.

When a team member decides on a request, the other admins' cards show who approved or declined it, so nobody handles the same request twice.

Auto-reject rules

  • Block RTL characters in name: Arabic, Hebrew and other right-to-left letters in the display name, a classic spam marker.
  • Block RTL characters in bio: the same check for the profile bio.
  • Block if no @username: decline accounts without a public username.
  • Name & bio stop-words: decline when the name, username or bio contains any of your words. Toggle "whole word" for an exact word match.

Two switches decide who hears about it: Notify the applicant on autoblock sends them a private message with the reason, Notify admins on autoblock sends every admin a short report.

Messages and variables

The request-received and welcome texts support {$username}, {$first_name}, {$chat_title} and {$chat_link} (the group title as a clickable link). Use Send test to see both messages in your private chat with the bot.

Request history

Awaiting your decision lists open requests, and a badge on the section shows how many are waiting. Request history lists every request with its status (approved, declined, autoblock) and who decided it. Approvals, declines and auto-rejections also appear in the event log.

Telegram declines a request on its own if nobody decides on it for a long time. Keep an eye on the badge, or turn off Require admin approval and rely on the auto-reject rules and the check.

Hand the routine to ChatZilla

Add the bot, switch on the rules your group needs, and get back to talking.

Add to group