Telegram воронка в Bothelp
В этой инструкции рассмотрим настройку бота в Телеграм через сервис BotHelp и используем опцию API в кабинете школы для того, чтобы пользователь после подписки в бота смог сразу попасть в урок школы из сообщения Телеграм, т.е. без авторизации в школе.
Это возможно реализовать только на тарифе Эксперт в кабинете школы.
Видео инструкция
Текстовая версия видео
Видео показывает, как настроить бесшовный марафон в Telegram на связке сервиса Bothelp и школы Emdesell: бот собирает данные ученика, сам создает ему аккаунт, выдает доступ и присылает ссылку на урок. В результате ученик переходит по ссылке из Telegram сразу в урок, без входа по логину и паролю, а уроки открываются по расписанию и по условию сдачи домашних заданий.
Как устроена схема
0:15Когда ученик запускает бота, Bothelp получает от него имя, email и телефон.0:25Bothelp передает эти данные в Emdesell и сам создает аккаунт ученика, поэтому регистрироваться самостоятельно ему не нужно. Затем бот присваивает доступ и отправляет ссылку на нужный урок.1:00Ученик переходит по ссылке в Telegram и сразу попадает в урок, без ввода логина и пароля. Система уже знает его аккаунт и связала его с Telegram-ID из Bothelp.1:19Бот отправляет ученику метки за его действия, например за просмотр урока или сдачу домашнего задания.1:33Через заданное время бот проверяет метки. Если нужной метки нет, включается режим дожима: ученику отправляется напоминание о домашнем задании и ссылка на урок.2:01Потом ученик получает ссылку на следующий урок с домашним заданием. Такие схемы удобны для бесплатных марафонов, которые длятся 3–5 дней, но их можно построить и для платной программы или двухмесячного марафона.
Подключение и настройка Bothelp
2:40Сначала подключите Bothelp к школе. Видео с настройкой доступно в подсказке в сервисе.2:53В настройках школы найдите блок Ключи API. Используйте существующий ключ или нажмите Выпустить новый ключ, затем скопируйте ключ и сохраните его: он понадобится дальше.3:14В Bothelp откройте Настройки, раздел Настраиваемые поля и нажмите Добавить новое поле.3:29Создайте поле ID аккаунта школы с типом Число.3:43Создайте поле Код авторизации с типом Текст и сохраните. После этого появятся два параметра.
Сценарий бота
3:58Бот строится по порядку: сначала запрос имени, email и телефона, затем регистрация аккаунта и присвоение доступа, затем выдача урока.4:19В разделе Боты создайте нового бота и выберите Telegram. Задайте название, например «бот Emdesell». Если Telegram еще не подключен, сначала подключите его.4:49Добавьте первое сообщение, например «Давай знакомиться». Затем добавьте блоки с вопросами.5:17Добавьте блок Вопрос с текстом «Напиши свое имя» и в поле Сохранить в поле выберите name.5:29Добавьте второй вопрос «Отлично, напиши свой email» и сохраните ответ в поле Email.5:55Добавьте третий вопрос «Напиши свой телефон» и сохраните ответ в поле Телефон. Запрос телефона можно не добавлять, если он не нужен.6:11Нажмите Сохранить и закрыть.
Регистрация аккаунта и присвоение доступа
6:24Нажмите Добавить действие, выберите Внешний запрос и укажите тип запроса POST.6:54В поле URL адрес вставьте адрес вашей школы и добавьте окончание/api/accounts/create.7:03Окончания адресов и текст тела запроса возьмите из справочника, ссылка на который приводится к этому видео.7:27На вкладке Заголовки добавьте заголовок: в поле Key укажитеX-Api-Key, в поле Value вставьте скопированный ранее ключ API.7:44На вкладке Тело добавьте текст тела запроса из справочника.7:59Нажмите Сохранить в окне запроса и Сохранить и закрыть в шаге.8:06Откройте шаг еще раз и проверьте, что все параметры сохранились. Если перейти без сохранения, часть настроек может не примениться.8:20Назовите действие Регистрация аккаунта и сохраните его.8:41Продублируйте это действие: копия будет основой для следующих запросов.
Получение ID аккаунта и обновление данных
8:48В копии выберите тип запроса GET и укажите окончание/api/accounts/findEmail.9:06Заголовки оставьте без изменений. На вкладке Сопоставление ответов добавьте сопоставление: в поле JSON Path укажите$.result.account.idи выберите поле ID аккаунта школы.9:33Назовите действие Получение ID аккаунта и сохраните его.9:55Сделайте копию действия и назовите ее Обновление данных аккаунта. Такой шаблон можно будет использовать и в других воронках.10:12В копии выберите тип запроса POST и окончание/api/accounts/edit. В теле запроса укажите данные из справочника и сохраните.
Код авторизации и доступ к уроку
10:53Сделайте копию и назовите ее Создание кода авторизации.11:09Измените окончание адреса на/api/login_links/createи обновите тело запроса. Проверьте сопоставление ответов на вкладке Сопоставление ответов и сохраните изменения.11:53Сделайте копию, назовите ее Присвоение доступа и выберите тип запроса POST с окончанием/api/accounts/assignAccess. В теле запроса полеaccount_idзаполняется переменной ID аккаунта школы, полеaccess_id— номером доступа, а полеduration— сроком доступа.12:09Номер доступа смотрите в разделе Доступы, в карточке нужного доступа. В примере это номер 63. Срок задается в днях: например, 10 означает 10 дней, а 0 означает без ограничения.12:36Нажмите Сохранить и закрыть.
Выдача урока по ссылке
12:51Создайте сообщение, например с текстом «Заходи в урок», и добавьте в него ссылку на урок.13:03Чтобы уроки открывались по времени и по условиям, откройте настройки курса V2.13:17Для первого урока выберите условие Доступ приобретен впервые и Доступ V2. Урок откроется сразу после покупки доступа.13:29Для следующих уроков выберите Наступило время, Ближайшее, время 18:00 МСК и условие Открылся урок с предыдущим уроком. Так каждый следующий урок будет открываться в 18:00 по Москве после предыдущего.13:54Откройте сам урок и скопируйте его ссылку.14:07В сообщении в Bothelp вставьте ссылку и добавьте в конец?login_code={%Код авторизации%}.14:39Так ссылка привязывается к коду авторизации конкретного ученика, и система открывает ему нужный урок. Нажмите Сохранить и закрыть.
Запуск бота
14:53Чтобы ученики могли запустить бота, откройте в Bothelp раздел Инструменты роста и нажмите Новый инструмент.15:11Задайте название, выберите канал Telegram и бота, который вы только что настроили, и сохраните.15:30Получится страница запуска с кнопкой Telegram. Ссылку с этой кнопки можно скопировать и поставить на кнопку на вашем сайте.
Проверка
15:53Чтобы проверить бота как новый ученик, выйдите из школы, откройте страницу запуска и нажмите Telegram. В приложении нажмите Запустить.16:05Бот задаст вопросы: имя, email и телефон. Ответьте на каждый вопрос по очереди.16:30Бот отправит ссылку на урок. Перейдите по ней: аккаунт уже создан, вы попадаете в урок и видите домашнее задание без входа по логину и паролю.17:04Чтобы проверить результат в школе, откройте в админке раздел Аккаунты и найдите созданный аккаунт. Там видны имя, email, телефон, дата регистрации, IP-адрес и привязанный аккаунт Telegram.
Метки и домашние задания
17:39В админке откройте раздел Боты и нажмите Создать новый триггер BotHelp.17:48Укажите название, например «Сдал домашку 1 урока». В блоке Событие триггера выберите Домашнее задание к уроку одобрено и введите ID урока. ID урока можно найти в адресе страницы редактирования урока, в примере это 139.18:19В блоке Действие отметьте Добавить метки, укажите метку, например «урок1», и нажмите Сохранить шаблон.18:33Чтобы проверить триггер, сбросьте просмотры уроков у тестового ученика.18:56Ученик сдает домашнее задание в кабинете. В админке откройте раздел Домашние задания, найдите работу и нажмите Одобрить и отправить.19:18После одобрения в карточке ученика в Bothelp появится метка урок1.
Задержки и условия
20:06Чтобы отправлять сообщения по расписанию без условий, добавьте блок Задержка с типом Отправить в, временем 18:00 и нужным днем. Например, сообщение уйдет завтра в 18:00.20:49Продублируйте сообщение с ссылкой, замените номер урока (например, 139 на 140) и поставьте задержку на следующий день. Так уроки будут выходить по расписанию один за другим.21:32Чтобы следующий урок выдавался только после сдачи домашнего задания, уберите связку задержки с сообщением и добавьте блок Условие.21:56В блоке Условие добавьте проверку: Метка соответствует урок1. Сохраните.22:11Ветка Да ведет к сообщению со ссылкой на следующий урок. Ветка Нет ведет к сообщению: «Вижу, что ты не сдал домашнее задание, а по условиям следующий урок получишь после одобрения ДЗ» со ссылкой на предыдущий урок.23:07Для повторной проверки добавьте еще одну задержку, например на 1 час, и условие с той же меткой.23:49Если метка есть, ученик получает следующий урок. Если нет, проверку можно повторить через другое время, например через 5 или 12 часов. Несколько таких проверок помогают напоминать ученику о домашнем задании.24:28Главная особенность схемы: ученик переходит по ссылке из Telegram и сразу попадает в урок, без авторизации.
Инструкция
Настройка API
Переходим в кабинет школы в раздел Настройки

Далее, переходим в подразел - API

И нажимаем кнопку - Выпустить новый ключ

Копируем этот ключ

И сохраняем в блокнот

Настройки в BotHelp
Переходим в сервис BotHelp в раздел Настройки

Далее, переходим в подраздел - Настраиваемые поля

Нажимаем кнопку Добавить новое поле

В новом окне прописываем имя поля - ID аккаунта школы и выбираем тип поля - Число и нажимаем кнопку - Сохранить

ВАЖНО: Убедитесь, что слово - ID, написано заглавными буквами.
Добавляем еще одно новое поле с именем Код авторизации и выбираем тип поля Текст

ВАЖНО: Убедитесь, что слово - Код, написано с заглавной буквы.
Далее, нужно будет создать нового бота в сервисе BotHelp.
Новый бот
Переходим в раздел - Боты

И нажимаем кнопку - Новый бот

Далее, выбираем мессенджер - Телеграм

Вводим название бота, выбираем необходимый канал Телеграм и нажимаем кнопку - Создать бота

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

Далее, в новом окне справа, вводим текст сообщения

Далее, в разделе - Карточка, нажимаем на кнопку - Вопрос

В новом окне - Вопрос, пишем текст - Напиши свое Имя

Далее, переходим к опции - Сохранить поле, кликаем по нему

Из полученного списка выбираем значение - name

В результате получится такая настройка первого вопроса

Далее, создаем новый вопрос по кнопке - Вопрос

Вводим текст вопроса и указываем значение поля - Email

Аналогичным способом добавляем еще один вопрос с текстом про телефон и значением поля - Телефон

Далее, нажимаем кнопку - Сохранить и закрыть

В результате получили первый шаг в воронке бота

Можно изменить название этого шага.
Нужно нажать на этот блок еще раз

Далее, нужно нажать на название шага в верхнем углу

И изменить текущее название на необходимое название шага

Еще раз нажать на кнопку - Сохранить и закрыть

Далее, нужно создать новый блок - Действие.
Для этого нужно нажать на кнопку плюс в правом нижнем углу

И выбрать блок - Действия

Добавили новый блок

Соединим полученные блоки

Далее, нажимаем на блок - Действия

В окне справа нажимаем кнопку - Добавить действие

Выбираем из списка - Внешний запрос

Далее, нажимаем на редактирование этого запроса

Выбираем тип запроса - POST

Далее, переходим в кабинет свой школы и копируем URL-адрес из строки браузера

И делаем вставку этого адреса в настройки создаваемого запроса в BotHelp

Далее, нужно подставить следующее окончание в эту строку api/accounts/create

Далее, нажимаем кнопку - Добавить заголовок

В поле Key нужно прописать параметр X-Api-Key

В поле Value нужно прописать Api ключ, который создавали в кабинете школы

Далее, переходим во вкладку Тело

И добавляем текст запроса
{
"email": "{%email%}",
"password": "2332r234234243",
"first_name": "{%first_name%}",
"last_name": "",
"patronymic": "",
"phone": "{%phone%}",
"role": "student",
"email_confirmed": 1,
"send_email": 0,
"interface_language": "system",
"bothelp_cuid": "{%cuid%}",
"telegram_id": "{%messenger_username%}"
}

Далее, нажимаем кнопку Сохранить

И также нажимаем кнопку Сохранить и закрыть

Также, можем переименовать этот шаг в необходимое название

Таким образом, создали сообщение с запросом о регистрации аккаунта

Далее, создадим еще одно Действие для получения ID аккаунта.
Получение ID аккаунта
Делаем дубликат созданного действия

Соединяем блоки

И переходим в настройки скопированного действия, нажимая по этому блоку

Далее, переходим в редактирование

В параметре Тип запроса выбираем GET

В строке URL-адрес меняем окончание адреса на другое значение accounts/find?email={%email%}

Далее, переходим во вкладку Сопоставление ответов

Далее, нужно нажать кнопку - Добавить сопоставление

Далее, нужно прописать параметр JSON Path в значении $.result.account.id

Далее, поле Пользовательское поле выбрать созданный параметр ID аккаунта школы

И нажимаем кнопку Сохранить

Меняем название шага на новое название - Получение ID аккаунта

И нажимаем кнопку - Сохранить и закрыть

Далее, переходим к созданию и настройке следующего блока Действия в этом сервисе.
Обновление данных аккаунта
Делаем копирование последнего шага действия

Соединяем блоки

Нажимаем по последнему блоку Действия и меняем название на новое

Далее, переходим в редактирование блока

Тип запроса ставим POST

Далее, меняем хвост url-адреса на accounts/edit

Далее, переходим во вкладку Тело

И нужно прописать параметры
{
"id": "{%ID аккаунта школы%}",
"bothelp_cuid": "{%cuid%}"
}

Далее, нажимаем кнопку Сохранить

И нажимаем кнопку Сохранить и закрыть

Далее, нужно создать новое Действие.
Код авторизации
Делаем снова дубль (копирование) последнего блока Действия

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

Далее, переходим в редактирование блока

Далее, меняем хвост URL-адреса на login_links/create

Далее, переходим во вкладку Тело

И меняем текст запроса на новый :
{
"account_id": "{%ID аккаунта школы%}"
}
Примечание: Если вы хотите ограничить кол-во переходов по ссылке, например, для предотвращения ее распространения, укажите доп. параметр uses_limit с нужным числом авторизаций по ссылке (оптимально 3-5). Таким образом, полное тело запроса будет выглядеть следующим образом:
{
"account_id": "{%ID аккаунта школы%}",
"uses_limit": 5
}

Далее, переходим во вкладку Сопоставление ответов

В поле JSON Path меняем на новое значение $.result.login_link.code

В поле Пользовательское поле выбрать созданный ранее параметр Код авторизации

Нажимаем кнопку Сохранить

И нажимаем кнопку Сохранить и закрыть

Далее, осталось создать еще один запрос - Присвоение доступа.
Запрос на присвоение доступа
Делаем снова копирование последнего блока Действия

Нажимаем по последнему блоку и меняем название

Далее, переходим в редактирование блока

Далее, меняем окончание URL-адреса на новое accounts/assign_access

И меняем тело запроса во вкладке Тело на новый запрос
{
"account_id": "{%ID аккаунта школы%}",
"access_id": 63,
"duration": 10
}

ВАЖНО
Здесь нужно указать параметр ID Доступа школы.
Этот параметр нужно взять из раздела Доступы в кабинете школы.
Переходим в раздел Доступы

Далее, нужно перейти в раздел редактирования необходимого Доступа

И в строке браузера можно будет увидеть цифру, эта цифра и будет означать номер ID Доступа школы

Это число нужно прописать в Теле запроса

И второй параметр, параметр времени. В этом примере мы указали число 10, это означает, что Доступ будет выдан на 10 дней.

Остальные настройки оставляем такими же и нажимаем кнопку Сохранить

И переходим к созданию следующего блока.
Сообщение с выдачей ссылки
Нажимаем кнопку плюса в правом нижнем углу

И выбираем блок Сообщение

Нажимаем по новому блоку и пишем текст сообщения

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

Далее, перейти в необходимый урок для просмотра

И скопировать ссылку из строки браузера

Далее, переходим обратно в настройку блока Сообщение и вставляем скопированную ссылку

Теперь необходимо добавить окончание ссылки в ссылку на урок в значение
login_code={%Код авторизации%}

Далее, нажимаем кнопку - Сохранить и закрыть

Далее, нажимаем кнопку - Активировать

И далее нажимаем кнопку - Настрою самостоятельно

Таким образом, создали нового бота для регистрации нового аккаунта ученика и автоматического получения доступа в урок школы.
Мини-лендинг (страница подписки)
Создадим страницу (мини-лендинг) при переходе по которой пользователь будет попадать в бота и дальше идти по нашей созданной воронке в Телеграм.
Переходим в раздел Инструменты роста

Далее, нажимаем кнопку Новый инструмент

Выбираем параметр Мини-лендинг

Далее, прописываем название и заголовок бота

Далее, выбираем кнопку - Telegram

После этого нужно будет выбрать своего бота в Telegram

Прописываем необходимый текст сообщения бота

И нажимаем кнопку Сохранить

Таким образом, создали мини-лендинг (страницу подписки) в нашего бота Telegram

Далее, вам необходимо будет обязательно проверить как работает бот и как выполняется выдача доступа в настроенный урок школы.
ВАЖНО: Проверку работы бота необходимо выполнять на аккаунте ученика. На аккаунте Администратора это работать не будет.
Т.е. вы должны скопировать ссылку на свой мини-лендниг

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