September 14, 2023

Инструкция для администраторов платформы геткурс по работе со скриптом для контроля телеграм чатов/каналов

https://getscript.ru/blog/1051120

Как выдавать и аннулировать доступ ученикам

🟢Чтобы выдать доступ пользователю к каналу нужно:
1. Сначала отправить пользователя привязать себе телеграм на странице /tlgrm
2. Затем запустить по нему процесс "Выдать доступ к телеграм-каналу"

Если всё ок, то после завершения процесса пользователю в телеграм придёт сообщение от чат-бота со ссылкой на вступление в канал.

🟠 Чтобы аннулировать доступ пользователя к каналу нужно:
Запустить по пользователю процесс "Аннулировать доступ к телеграм-каналу".

После завершения процесса пользователь будет удалён из канала.

ℹ️ Процессы по выдаче и аннулировании доступа можно использовать в качестве подпроцессов в тех процессах, которые у вас уже есть. В том числе в процессах по покупкам и заказам.

⚠️ Телеграм пересылает автоматически все посты из канала в чат для комментариев, если он привязан к каналу, поэтому необходимо параллельно контролировать подписчиков этого чата на равне с каналом.

Обычно при настройке мы добавляем в чат для комментариев нашего бота для контроля подписчиков. И если вы не планируете скидывать пользователям ссылок на вступление в этот чат, то этого будет достаточно.

В случае, если вы будете давать пользователям ссылки на чат, крайне жалательно посадить в этот чат ещё и геткурсовского бота для его контроля (инструкция), чтобы он не давал вступать пользователям, которые не имеют доступа. Это позволит давать пользователям прямые ссылки на чат (без заявки на вступление). Если этого не сделать, то вы всё равно сможете давать ссылки на чат, но они обязательно должны быть с заявкой на вступление.

⚠️ При удалении из канала и чата пользователь будет забанен на 5 минут. В течение этих 5 минут бана пользователь не сможет вступить в канал, даже если ему уже выдан доступ. По истечении 5 минут бана пользователь сможет вступить в канал заново как обычно, если ему был выдан доступ.

⚠️ Настроенные процессы сами по себе не запускают автоматическую выдачу/аннулирование доступа при покупке продукта или при неоплате продления. Они являются просто инструментами выдачи/аннулирования доступа, которые вы можете либо использовать вручную (через Действие "Запуск процесса" в карточке пользователя), либо для автоматизации они могут запускаться в качестве подпроцессов из ваших процессов по покупкам или заказам с периодической проверкой необходимому условию.

Если у пользователя кончился доступ и он был исключён из канала, а потом решил вернуться и опять оплатил доступ, то для того, чтобы вернуть ему доступ к каналу, должен запуститься процесс для выдачи доступа снова.

Поэтому для автоматической выдачи доступа по покупке продукта вам нужно сделать отдельный процесс по заказам или по покупкам (с вашим условием получения доступа, например, покупка курса), и из него через подпроцесс запускать процесс выдачи доступа.

🟠 Типичный пример условия запуска выдачи доступа для процесса по заказам:
Правило вхождения объекта Статус "Завершён" И Продукт (или Предложение)[выбираете ваш продукт или предложение]

🟠 Типичный пример условия запуска выдачи доступа для процесса по покупкам:
Правило вхождения объекта Статус "Активна" И Продукт [выбираете ваш продукт]

С аннулированием доступа аналогично - делаете отдельный процесс по покупкам, который запускается, когда срок покупки истекает, и из него через подпроцесс добавляете процесс выдачи доступа.

🟠 Типичный пример условия запуска аннулирования доступа для процесса по покупкам:
Правило вхождения объекта Статус "Завершена" И Продукт [выбираете ваш продукт]

⚠️ Нельзя запускать выдачу/аннулирование доступа одновременно большому кол-ву учеников. Потому что в этом случае геткурс создаёт и исполняет одновременно большое кол-во задач, что может вызвать перегрузку хостинга запросами и вызвать ошибки.

Если необходимо выдать/аннулировать доступ массово, сделайте запуск процесса по условию и установите в нём ограничение "Максимум 10 объектов" И "НЕ в группе" (если это процесс выдачи, то группа будет "Остаются в телеграм-канале ...", если процесс аннулирования - "Выбыли из телеграм-канала ...").

Тогда после запуска процесса по такому условию доступ будет выдаваться по очереди, пачками по 10 человек.

⚠️ Все задержки в процессе важны! Убирать их не стоит!

Схема пути пользователя

Работа с доп полями пользователя

В доп полях пользователя добавлены новые поля

Описание полей:

UserID_Telegram — ID пользователя в телеграме. Это поле автоматически заполняется при запуске процесса "Выдать доступ к телеграм-каналу".

Base64_email — зашифрованный эмейл пользователя (техническое поле). Это поле должно заполняться обязательно. Заполняется процессом.

У каждого канала/чата есть 2 доп поля пользователя:

Status_TG-1001234567890 — статус пользователя в ТГ канале/чате.

Status_date_TG-1001234567890 — дата изменения статуса пользователя в ТГ канале/чате.

Возможные значения статуса:

Вступил — пользователь подписался на канал.

Забанен — пользователь забанен ботом или админом (при удалении пользователя админом, тоже считается, что он забанен).

Покинул — обычно, когда пользователь сам отписался от канала.

Ограничен — у пользователя изменили права, например право писать (в каналах этот статус не встречается).

Значения этих доп полей можно использовать для выборки пользователей. Например, чтобы отправлять напоминалки тем, кто не дошёл до канала или чата.

Тексты сообщений

Сообщение № 1 — обычное приветственное сообщение геткурсовского чат бота, которое можно отредактировать в настройках основного бота школы на этой странице:
https://ВАШ_ДОМЕН/pl/notifications/settings/telegram-settings

Сообщение № 2 — содержит ссылку на вступление. Текст сообщения можно отредактировать в процессе «Выдать доступ к телеграм-каналу», в блоке «Отправить ссылку для вступления».

Чтобы система работала корректно, у пользователей не должно быть никаких ссылок на вступления в каналы и чаты, кроме тех, которые им скидывает бот.

По всем вопросам можете обращаться ко мне в телеграм  — @DmitrySpace