Telegram воронка в Bothelp
В этой инструкции рассмотрим настройку бота в Телеграм через сервис BotHelp и используем опцию API в кабинете школы для того, чтобы пользователь после подписки в бота смог сразу попасть в урок школы из сообщения Телеграм, т.е. без авторизации в школе.
Это возможно реализовать только на тарифе Эксперт в кабинете школы.
Видео инструкция
Текстовая версия видео
Как настроить бесшовный марафон в Telegram: бот в BotHelp регистрирует ученика в Emdesell, выдаёт доступ и открывает уроки по ссылке без повторного входа.
Подготовка и подключение
0:15Бот в BotHelp получает от ученика имя, e-mail и телефон.0:25По этим данным бот создаёт в Emdesell аккаунт ученика, присваивает ему доступ и передаёт Telegram ID из BotHelp.1:19Ученик сразу попадает в нужный урок без ввода логина и пароля.2:46Подключите BotHelp к школе. Видеоинструкция по подключению доступна в подсказке и отдельно в справочном видео.2:53Перейдите в раздел API, скопируйте существующий API-ключ или выпустите новый. Сохраните ключ, он понадобится дальше.
Настраиваемые поля в BotHelp
3:14Перейдите в Настройки и откройте Настраиваемые поля.3:29Добавьте поле ID аккаунта с типом «Число». Сохраните.3:43Добавьте поле Код авторизации с типом «Текст». Сохраните.
Создание бота
4:19Перейдите в Боты, нажмите создание бота и выберите Telegram. Задайте название, например «бот МДСЛ».4:49Настройте первое сообщение, например «Давай знакомиться». Для запроса данных используйте действие Вопрос.5:17Первый вопрос: «Напиши свое имя». Ответ сохраните в поле Name.5:29Второй вопрос: «Напиши свой e-mail». Ответ сохраните в поле email.5:43Третий вопрос: «Напиши свой телефон». Запрос телефона можно не добавлять, если он не нужен.6:11Нажмите Сохранить, затем Закрыть.
Действие «Регистрация аккаунта»
6:24Добавьте действие Запрос и создайте внешний запрос через Добавить действие.6:39Выберите метод POST.6:54В адресе укажите адрес вашей школы (скопируйте его из школы), а не демо-адрес. Допишите окончание для создания аккаунта. Окончания берите из справочника, ссылка на который приложена к видео.7:27Добавьте заголовок с параметром X-API-KEY и вставьте API-ключ.7:44В разделе Тело вставьте тело запроса из справочника.7:59Нажмите Сохранить, затем Сохранить и закрыть. Проверьте, что все введённые параметры сохранились.8:32Назовите действие «Регистрация аккаунта» и сохраните его.
Действие «Получение ID аккаунта»
8:41Дублируйте действие «Регистрация аккаунта».8:48Во второй копии выберите метод GET. Окончание адреса для поиска аккаунта по e-mail берите из справочника (в видео названAccount.FindEmail). Настройки метода оставьте без изменений.9:06Откройте раздел Сопоставление, добавьте сопоставление и выберите параметр JSON.9:17Выберите поле ID аккаунта, созданное ранее, и сохраните изменения.9:33Переименуйте действие в «Получение ID аккаунта».
Действие «Обновление данных аккаунта»
9:55Дублируйте действие «Получение ID аккаунта» и назовите его «Обновление данных аккаунта». Этот шаблон можно использовать в следующих воронках.10:12Измените метод на POST, окончание адреса наAccount Edit. Настройки оставьте без изменений.10:20В разделе Тело вставьте тело запроса для обновления данных. Сохраните.
Действие «Создание кода авторизации»
10:53Дублируйте предыдущее действие и назовите его «Создание кода авторизации».11:09Измените окончание адреса наЛогин createи замените тело запроса.11:21В разделе Сопоставление укажите поле код авторизации и сохраните.
Действие «Присвоение доступа»
11:53Дублируйте действие и назовите его «Присвоение доступа». Измените настройки и тело запроса.11:53В теле запроса задайте два параметра: номер доступа и время его присвоения.12:09Номер доступа посмотрите в разделе Доступы. В видео для примера используется доступ с номером 63.12:26Время присвоения задаётся в днях. В примере указано 10 дней. Чтобы присваивать доступ без ограничения, укажите0.12:26В сопоставлении ответов поле логин-код (код авторизации) оставьте без изменений.12:36Сохраните и закройте действие.
Выдача урока
12:51Создайте сообщение и подключите его к цепочке. Например, текст: «Заходи, урок».13:03Скопируйте ссылку на урок. Ссылки на уроки выдаются через курс в настройках V2.13:17Первый урок можно открывать сразу после покупки доступа. Следующие уроки можно открывать по расписанию, например в 18:00 по Москве.13:54Вставьте ссылку на урок в настройки сообщения и добавьте к ней параметры: вопрос, логин, код и код авторизации.14:22Значение кода авторизации можно посмотреть в карточке кода авторизации. Его вставляют в ссылку, чтобы система сразу открыла нужный урок для этого ученика.14:39Нажмите Сохранить и закрыть.
Запуск бота и тестирование
14:53Создайте страницу запуска бота: в Боты добавьте страницу, выберите Telegram и нужного бота, затем сохраните.15:30Страница запуска выглядит как лендинг. Её ссылку можно вынести на кнопку на сайте школы.16:05Для проверки откройте приложение, нажмите Запустить и ответьте на вопросы бота: имя, e-mail, телефон.16:30Бот отправит ссылку на урок. По ней ученик попадает в домашнее задание, аккаунт при этом уже зарегистрирован.17:04В школе откройте Аккаунты и проверьте данные ученика: имя, e-mail, телефон, дату регистрации, IP и привязанный аккаунт Telegram.
Метки по домашним заданиям
17:39В разделе Боты создайте триггер. Например, событие «Домашнее задание к уроку одобрено» для первого урока.18:07Номер урока возьмите из раздела уроков курса V2. В примере это урок с номером 139.18:19Укажите номер урока в триггере и добавьте метку, например «урок 1». Сохраните шаблон.18:43Для проверки сбросьте просмотры урока, выйдите из системы и отправьте домашнее задание.19:11В Домашних заданиях одобрите задание. Метка «урок 1» появится у пользователя.
Отправка уроков по расписанию
19:58Без условий урок можно отправлять по времени. Добавьте Задержку и укажите, когда должен уйти урок, например в 18:00.20:26Выберите «завтра» и 18:00, чтобы отправка прошла в правильный день.20:49Дублируйте сообщение с уроком для следующего урока и укажите номер урока в ссылке. В примере это урок 140.
Условие: переход к следующему уроку только после ДЗ
21:32Чтобы ученик не получал следующий урок без домашнего задания, уберите связку задержки с сообщением и добавьте Условие.21:56Для условия выберите метку, соответствующую уроку 1, и сохраните. Появятся две ветки: «да» и «нет».22:11Ветка «да»: ученик получает следующий урок.22:26Ветка «нет»: отправьте сообщение с текстом вроде «Вижу, что ты не сдал домашнее задание. Следующий урок ты получишь после одобрения домашки», и верните ученика к предыдущему уроку.23:07Для повторной проверки добавьте после ветки «нет» задержку, например на один час, и проверьте условие ещё раз.23:49Если условие выполнено, отправьте следующий урок. Если нет, можно повторить напоминание или прекратить цепочку.24:14Таких проверок можно сделать несколько, например через 1, 5 и 12 часов. Либо построить простую линейную цепочку без условий.
Инструкция
Настройка 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

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

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