Join requests — the bot admits paying members for you
How to give access to a private chat through join requests, so Craft lets in people who paid and keeps everyone else waiting.
A link to a private chat can be set up so that people do not join straight away — they send a join request that somebody has to approve. Craft does that for you: a request from someone who paid is approved automatically, usually within a second or two.
How it works#
- A person goes through your funnel and pays.
- They tap the link to the private chat and send a join request.
- Craft sees the request, finds their payment, and lets them in.
It also works the other way round — request first, payment later. That happens more often than you would expect: people tap the link right away and pay an hour later. The request just waits, and the moment the payment arrives the person is admitted automatically. They do not need to apply again.
What to set up#
1. Add your funnel's bot as an administrator of the chat with the right to invite new members. That permission is exactly what the bot uses to admit people — without it the bot sees the request but cannot act on it.
2. Create an invite link with approval in Telegram. In the chat's management screen, open invite links, create a new one and turn on Request Admin Approval. Anyone who opens that link does not get in right away — they send a request instead.
3. Put that link into a funnel message — as text or as a button. You can safely give it to everyone and not worry about it being forwarded: nobody gets in through it without paying.
⚠️ The "Approve New Members" switch in the chat type settings will not help here. It only exists for public chats (with an @username) and applies to people who join without a link. People come to a private chat through a link, so approval has to be turned on for the link itself.
⚠️ The "Channel invite" block does not work for join requests. It gives everyone a personal one-time link that lets them in straight away, with no request, and Telegram does not allow a single link to have both a member limit and approval. These are two different ways to lock a chat, and you pick one: personal links (the "Channel invite" block) or join requests (one link with approval).
Who the bot does NOT admit#
A request from someone with no payment is left pending — not approved, but not rejected either. This is deliberate: in Telegram a rejection closes the door for good, and that person cannot apply again through the same link. Wrongly rejecting someone who paid would mean refunding them, while a pending request breaks nothing — when they pay, they get in.
You can handle those requests by hand in Telegram, in the chat's join requests.
If someone paid but did not get in#
The funnel owner receives a message from the bot with the person's name and the reason. The most common one is that the bot is not an administrator, or lost the permission to invite members. Restore the permission and approve the request by hand in Telegram — the pending request is still there.
⚠️ If everything is set up but no requests show up at all, the person most likely used an ordinary link without approval — for example, an old one you shared earlier. These links let people in straight away. Revoke old links in the chat settings.
⚠️ Payments are matched across all funnels of the same bot. If one bot sells access to two different paid chats, someone who paid for the first will also get into the second. If you sell access to two chats, use a separate bot for each.