CommandsFeaturesCategoriesFAQStart Free →

The Challenge of Managing Join Requests

When your group requires approval for new members to join, you get a join request every time someone wants to enter. For small groups, manually approving each request is manageable. But as your group grows, the volume of requests can become overwhelming. A popular group might receive dozens or hundreds of join requests per day, and reviewing each one manually takes hours that most admins do not have. The result is that requests pile up, legitimate members wait days for approval, and admins burn out on the repetitive task.

The Join Request Manager solves this by automating the approval process. Instead of manually reviewing every request, you set criteria that the bot evaluates automatically. Requests that meet your criteria are approved instantly, and requests that fail are declined or held for manual review. This frees your admin team to focus on community engagement rather than gatekeeping, while still maintaining tight control over who enters your group.

Approval Modes

The /jrmode command sets how join requests are handled. Manual mode requires an admin to approve or decline each request, which is the default Telegram behavior. Auto approve mode automatically approves every request that meets the configured criteria. Auto decline mode automatically declines every request that fails the criteria. Criteria mode evaluates each request against your configured filters and approves or declines based on the results, which is the most powerful and recommended mode for most groups.

In criteria mode, the bot evaluates each join request against multiple checks simultaneously. If a request passes all checks, it is approved automatically. If it fails any check, it is declined or held for manual review depending on your configuration. This gives you the precision of manual review with the speed of automation, making it possible to handle high volumes of requests without sacrificing quality control.

Trust Score Criteria

The /jrtrust command sets a minimum trust score for auto approval. If a user's trust score is below the threshold, their request is held for manual review or declined. This is particularly powerful when combined with the federation system, because trust scores are shared across federated groups. A user who has built up a high trust score in another federated group can join your group automatically, while a brand new account with no history is held for review.

This creates a trust network where good behavior in one group opens doors to others. New users start with a neutral trust score and build it up through positive participation. Once they have proven themselves in one community, they can seamlessly join other communities in the federation without going through manual approval each time. This reduces friction for legitimate users while keeping bad actors out.

Profile Criteria

Beyond trust scores, the Join Request Manager can evaluate several profile based criteria. The /jrphoto command requires users to have a profile photo, which filters out many spam accounts that use default avatars. The /jrusername command requires a username, which ensures you can identify and mention the user if needed. The /jrfirstname command checks that the user's first name does not contain flagged words.

These profile criteria are surprisingly effective at filtering spam. Most spam and scam accounts use default profile photos, have no username, or use suspicious names. By requiring these basic profile elements, you eliminate a large percentage of spam requests without needing to review them manually. Legitimate users almost always have these profile elements, so the criteria do not create friction for real members.

Profile Change Tracking

The /jrprofilechanges command toggles profile change tracking. When enabled, the bot monitors users who change their profile photo, name, or username after joining. This is useful for catching bad actors who join with a clean profile and then change it to something inappropriate or spammy after they are inside the group.

Profile change tracking adds a layer of post entry security that complements the pre entry screening. Even if a spam account passes the initial criteria, the bot will detect if they change their profile to something suspicious and alert the admin team. This two layer approach, screening at the door and monitoring after entry, provides comprehensive protection against evolving threats.

Logging and Statistics

The /jrlogchat command sets a log chat where all join request decisions are recorded. Every approval and decline is logged with the user's information, the criteria that were evaluated, and the decision that was made. This creates an audit trail that admins can review to understand why certain users were approved or declined and to identify any patterns in the request data.

The /jrstats command shows statistics about join requests, including total requests, approval rate, decline rate, and common decline reasons. The /jrpreview command lets you preview what the decision engine would output for a specific user, which is useful for testing your criteria configuration before applying it to live requests.

Permission Checking and Diagnostics

A common issue is when Approve New Members is enabled in the group but the bot lacks the Process Join Requests admin permission. Without this permission, the bot cannot approve or decline any requests, and users get stuck in the waiting list indefinitely. The /jrcheck command verifies that the bot has the right permissions and shows exactly what is missing. The /jrautocheck command runs a full diagnostic that checks the group settings, bot permissions, module configuration, and provides step-by-step fix instructions for any issues found.

When the bot detects that it cannot process join requests, it sends a one-time warning to the group explaining what is wrong and how to fix it. This prevents the silent failure where everything looks configured correctly but nothing actually works because a single permission is missing.

Available Commands

CommandArgumentsDescription
/jrenableEnable join request management.
/jrdisableDisable join request management.
/jrmode<manual|auto_approve|auto_decline|criteria>Set the join request mode.
/jrconfigShow current join request settings.
/jrlogchat[chat_id]Set the log chat for decisions.
/jrpreview[user_id]Preview decision engine output for a user.
/jrstatsShow join request statistics.
/jrlogShow join request log.
/jrfirstname<on|off>Toggle first name criteria.
/jrphoto<on|off>Toggle profile photo requirement.
/jrprofilechanges<on|off>Toggle profile change tracking.
/jrtrust<score>Set minimum trust score for auto approve.
/jrusername<on|off>Toggle username requirement.
/jrresetReset join request settings.
/jrcheckCheck if the bot has permission to process join requests.
/jrpending[count]Show recent join request activity and pending requests.
/jrautocheckRun a full diagnostic on join request setup with fix steps.
/joinreqShow pending join requests.
/joinreqcriteriaShow join request criteria.

Automate Your Group Gatekeeping

Stop manually reviewing every join request. Set criteria, let the bot decide, and keep spam accounts out automatically.