Як видалити з каналу після закінчення підписки
Платний доступ лишається платним, лише коли неплатники зникають самі. Розбираємо механіку кіку, grace period і повернення.
Чому видалення має бути автоматичним
У будь-якій підписці настає момент, коли термін доступу закінчився, а людина не продовжила. Якщо ви ведете канал вручну, кожен такий випадок — це ваша робота: згадати, хто й коли платив, відкрити список учасників, знайти потрібного, видалити. На десяти підписниках це терпимо. На сотні — це джерело постійних помилок: ви або забуваєте видалити неплатника (і він безкоштовно сидить у платному каналі), або видаляєте того, хто щойно продовжив.
Тому видалення після закінчення підписки має бути механічним, а не вольовим рішенням. Система знає дату, до якої людина оплатила, і коли ця дата минає — діє сама. Це не жорсткість, а гігієна: платний доступ перестає бути платним, якщо за нього можна не платити.
Як працює автоматичний кік
Технічно за доступ відповідає бот, який є адміністратором вашого закритого каналу. Коли підписка активна, бот тримає людину всередині. Коли дата закінчення настає й оплати немає, бот видаляє учасника з каналу. У Telegram це робиться через виключення (kick): людина втрачає доступ до постів і не може повернутися за старим посиланням.
Важлива деталь: правильна реалізація не банить людину назавжди, а саме прибирає її. Різниця критична. Бан означає, що людина не зможе повернутися навіть після оплати — це псує найважливіший сценарій, коли той, кого видалили, передумав і хоче знову платити. Тому "видалити" і "забанити" — різні дії, і для підписок вам потрібне саме перше.
Grace period: не рубайте з плеча
Між "термін минув" і "видалити" має бути пільговий період (grace period) — кілька днів, протягом яких людина ще всередині, хоча формально вже не оплатила. Навіщо? Платежі затримуються, картки не проходять з першого разу, люди банально забувають продовжити на день-два. Якщо видаляти рівно о півночі в день закінчення, ви втратите частину людей, які насправді хотіли лишитися.
Розумна послідовність така: за кілька днів до закінчення бот надсилає нагадування про продовження; у день закінчення — ще одне; потім настає grace period з останнім попередженням; і лише якщо оплати так і немає — видалення. Так ви відрізаєте справжніх неплатників, не караючи тих, у кого просто не спрацював платіж вчасно.
Повернення після продовження
Сценарій, заради якого все будується, — людину видалили, а через тиждень вона захотіла повернутися. Тут автоматика так само важлива. Коли колишній підписник знову оплачує, бот має видати йому новий доступ без вашої участі: згенерувати свіже запрошувальне посилання й впустити назад. Жодного "напишіть мені в особисті, я вас додам".
Саме тому видалення не повинно бути баном: забанена людина впирається в стіну навіть з грошима в руках, і ви втрачаєте легку повторну продажу. Правильна модель — двері, що відчиняються щоразу, коли платіж проходить, і зачиняються, коли він припиняється. Стан доступу завжди дзеркалить стан оплати.
Що варто логувати
Кожне автоматичне видалення варто фіксувати: коли, кого, з якої причини (закінчилась підписка, повернення платежу, ручний кік). Це не бюрократія — це ваш захист. Коли людина пише "чому мене видалили, я ж платив", ви маєте точну відповідь, а не здогадки. А ще журнал показує, скільки людей відвалюється на закінченні підписки — це прямий сигнал про те, наскільки добре працює ваше продовження.
Логуйте й зворотні події: продовження, повторний вхід, успішне нагадування. Разом це дає чесну картину життєвого циклу підписника, по якій видно, де ви втрачаєте людей і чи повертаються вони.
Підсумок
Автоматичне видалення — це не про те, щоб когось покарати. Це про те, щоб платний доступ лишався платним без вашої щоденної участі: нагадати, дати кілька днів запасу, видалити, якщо оплати немає, і миттєво впустити назад, коли вона з'явиться. Уся ця механіка має працювати тихо, поки ви займаєтесь контентом.
У RybkaOS це вже зведено: бот стежить за датами, шле нагадування, тримає grace period, видаляє неплатників (не банить) і сам повертає доступ після продовження — а кожна дія потрапляє в журнал активності. Вам не доводиться вести списки вручну.