Emdesell

Telegram воронка в Bothelp


В этой инструкции рассмотрим настройку бота в Телеграм через сервис BotHelp и используем опцию API в кабинете школы для того, чтобы пользователь после подписки в бота смог сразу попасть в урок школы из сообщения Телеграм, т.е. без авторизации в школе.


Это возможно реализовать только на тарифе Эксперт в кабинете школы.


Видео инструкция

Текстовая версия видео

Видео показывает, как настроить бесшовный марафон в Telegram на связке сервиса Bothelp и школы Emdesell: бот собирает данные ученика, сам создает ему аккаунт, выдает доступ и присылает ссылку на урок. В результате ученик переходит по ссылке из Telegram сразу в урок, без входа по логину и паролю, а уроки открываются по расписанию и по условию сдачи домашних заданий.

Как устроена схема

  1. 0:15 Когда ученик запускает бота, Bothelp получает от него имя, email и телефон.
  2. 0:25 Bothelp передает эти данные в Emdesell и сам создает аккаунт ученика, поэтому регистрироваться самостоятельно ему не нужно. Затем бот присваивает доступ и отправляет ссылку на нужный урок.
  3. 1:00 Ученик переходит по ссылке в Telegram и сразу попадает в урок, без ввода логина и пароля. Система уже знает его аккаунт и связала его с Telegram-ID из Bothelp.
  4. 1:19 Бот отправляет ученику метки за его действия, например за просмотр урока или сдачу домашнего задания.
  5. 1:33 Через заданное время бот проверяет метки. Если нужной метки нет, включается режим дожима: ученику отправляется напоминание о домашнем задании и ссылка на урок.
  6. 2:01 Потом ученик получает ссылку на следующий урок с домашним заданием. Такие схемы удобны для бесплатных марафонов, которые длятся 3–5 дней, но их можно построить и для платной программы или двухмесячного марафона.

Подключение и настройка Bothelp

  1. 2:40 Сначала подключите Bothelp к школе. Видео с настройкой доступно в подсказке в сервисе.
  2. 2:53 В настройках школы найдите блок Ключи API. Используйте существующий ключ или нажмите Выпустить новый ключ, затем скопируйте ключ и сохраните его: он понадобится дальше.
  3. 3:14 В Bothelp откройте Настройки, раздел Настраиваемые поля и нажмите Добавить новое поле.
  4. 3:29 Создайте поле ID аккаунта школы с типом Число.
  5. 3:43 Создайте поле Код авторизации с типом Текст и сохраните. После этого появятся два параметра.

Сценарий бота

  1. 3:58 Бот строится по порядку: сначала запрос имени, email и телефона, затем регистрация аккаунта и присвоение доступа, затем выдача урока.
  2. 4:19 В разделе Боты создайте нового бота и выберите Telegram. Задайте название, например «бот Emdesell». Если Telegram еще не подключен, сначала подключите его.
  3. 4:49 Добавьте первое сообщение, например «Давай знакомиться». Затем добавьте блоки с вопросами.
  4. 5:17 Добавьте блок Вопрос с текстом «Напиши свое имя» и в поле Сохранить в поле выберите name.
  5. 5:29 Добавьте второй вопрос «Отлично, напиши свой email» и сохраните ответ в поле Email.
  6. 5:55 Добавьте третий вопрос «Напиши свой телефон» и сохраните ответ в поле Телефон. Запрос телефона можно не добавлять, если он не нужен.
  7. 6:11 Нажмите Сохранить и закрыть.

Регистрация аккаунта и присвоение доступа

  1. 6:24 Нажмите Добавить действие, выберите Внешний запрос и укажите тип запроса POST.
  2. 6:54 В поле URL адрес вставьте адрес вашей школы и добавьте окончание /api/accounts/create.
  3. 7:03 Окончания адресов и текст тела запроса возьмите из справочника, ссылка на который приводится к этому видео.
  4. 7:27 На вкладке Заголовки добавьте заголовок: в поле Key укажите X-Api-Key, в поле Value вставьте скопированный ранее ключ API.
  5. 7:44 На вкладке Тело добавьте текст тела запроса из справочника.
  6. 7:59 Нажмите Сохранить в окне запроса и Сохранить и закрыть в шаге.
  7. 8:06 Откройте шаг еще раз и проверьте, что все параметры сохранились. Если перейти без сохранения, часть настроек может не примениться.
  8. 8:20 Назовите действие Регистрация аккаунта и сохраните его.
  9. 8:41 Продублируйте это действие: копия будет основой для следующих запросов.

Получение ID аккаунта и обновление данных

  1. 8:48 В копии выберите тип запроса GET и укажите окончание /api/accounts/findEmail.
  2. 9:06 Заголовки оставьте без изменений. На вкладке Сопоставление ответов добавьте сопоставление: в поле JSON Path укажите $.result.account.id и выберите поле ID аккаунта школы.
  3. 9:33 Назовите действие Получение ID аккаунта и сохраните его.
  4. 9:55 Сделайте копию действия и назовите ее Обновление данных аккаунта. Такой шаблон можно будет использовать и в других воронках.
  5. 10:12 В копии выберите тип запроса POST и окончание /api/accounts/edit. В теле запроса укажите данные из справочника и сохраните.

Код авторизации и доступ к уроку

  1. 10:53 Сделайте копию и назовите ее Создание кода авторизации.
  2. 11:09 Измените окончание адреса на /api/login_links/create и обновите тело запроса. Проверьте сопоставление ответов на вкладке Сопоставление ответов и сохраните изменения.
  3. 11:53 Сделайте копию, назовите ее Присвоение доступа и выберите тип запроса POST с окончанием /api/accounts/assignAccess. В теле запроса поле account_id заполняется переменной ID аккаунта школы, поле access_id — номером доступа, а поле duration — сроком доступа.
  4. 12:09 Номер доступа смотрите в разделе Доступы, в карточке нужного доступа. В примере это номер 63. Срок задается в днях: например, 10 означает 10 дней, а 0 означает без ограничения.
  5. 12:36 Нажмите Сохранить и закрыть.

Выдача урока по ссылке

  1. 12:51 Создайте сообщение, например с текстом «Заходи в урок», и добавьте в него ссылку на урок.
  2. 13:03 Чтобы уроки открывались по времени и по условиям, откройте настройки курса V2.
  3. 13:17 Для первого урока выберите условие Доступ приобретен впервые и Доступ V2. Урок откроется сразу после покупки доступа.
  4. 13:29 Для следующих уроков выберите Наступило время, Ближайшее, время 18:00 МСК и условие Открылся урок с предыдущим уроком. Так каждый следующий урок будет открываться в 18:00 по Москве после предыдущего.
  5. 13:54 Откройте сам урок и скопируйте его ссылку.
  6. 14:07 В сообщении в Bothelp вставьте ссылку и добавьте в конец ?login_code={%Код авторизации%}.
  7. 14:39 Так ссылка привязывается к коду авторизации конкретного ученика, и система открывает ему нужный урок. Нажмите Сохранить и закрыть.

Запуск бота

  1. 14:53 Чтобы ученики могли запустить бота, откройте в Bothelp раздел Инструменты роста и нажмите Новый инструмент.
  2. 15:11 Задайте название, выберите канал Telegram и бота, который вы только что настроили, и сохраните.
  3. 15:30 Получится страница запуска с кнопкой Telegram. Ссылку с этой кнопки можно скопировать и поставить на кнопку на вашем сайте.

Проверка

  1. 15:53 Чтобы проверить бота как новый ученик, выйдите из школы, откройте страницу запуска и нажмите Telegram. В приложении нажмите Запустить.
  2. 16:05 Бот задаст вопросы: имя, email и телефон. Ответьте на каждый вопрос по очереди.
  3. 16:30 Бот отправит ссылку на урок. Перейдите по ней: аккаунт уже создан, вы попадаете в урок и видите домашнее задание без входа по логину и паролю.
  4. 17:04 Чтобы проверить результат в школе, откройте в админке раздел Аккаунты и найдите созданный аккаунт. Там видны имя, email, телефон, дата регистрации, IP-адрес и привязанный аккаунт Telegram.

Метки и домашние задания

  1. 17:39 В админке откройте раздел Боты и нажмите Создать новый триггер BotHelp.
  2. 17:48 Укажите название, например «Сдал домашку 1 урока». В блоке Событие триггера выберите Домашнее задание к уроку одобрено и введите ID урока. ID урока можно найти в адресе страницы редактирования урока, в примере это 139.
  3. 18:19 В блоке Действие отметьте Добавить метки, укажите метку, например «урок1», и нажмите Сохранить шаблон.
  4. 18:33 Чтобы проверить триггер, сбросьте просмотры уроков у тестового ученика.
  5. 18:56 Ученик сдает домашнее задание в кабинете. В админке откройте раздел Домашние задания, найдите работу и нажмите Одобрить и отправить.
  6. 19:18 После одобрения в карточке ученика в Bothelp появится метка урок1.

Задержки и условия

  1. 20:06 Чтобы отправлять сообщения по расписанию без условий, добавьте блок Задержка с типом Отправить в, временем 18:00 и нужным днем. Например, сообщение уйдет завтра в 18:00.
  2. 20:49 Продублируйте сообщение с ссылкой, замените номер урока (например, 139 на 140) и поставьте задержку на следующий день. Так уроки будут выходить по расписанию один за другим.
  3. 21:32 Чтобы следующий урок выдавался только после сдачи домашнего задания, уберите связку задержки с сообщением и добавьте блок Условие.
  4. 21:56 В блоке Условие добавьте проверку: Метка соответствует урок1. Сохраните.
  5. 22:11 Ветка Да ведет к сообщению со ссылкой на следующий урок. Ветка Нет ведет к сообщению: «Вижу, что ты не сдал домашнее задание, а по условиям следующий урок получишь после одобрения ДЗ» со ссылкой на предыдущий урок.
  6. 23:07 Для повторной проверки добавьте еще одну задержку, например на 1 час, и условие с той же меткой.
  7. 23:49 Если метка есть, ученик получает следующий урок. Если нет, проверку можно повторить через другое время, например через 5 или 12 часов. Несколько таких проверок помогают напоминать ученику о домашнем задании.
  8. 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

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

ВАЖНО: Проверку работы бота необходимо выполнять на аккаунте ученика. На аккаунте Администратора это работать не будет.

Т.е. вы должны скопировать ссылку на свой мини-лендниг

Перейти по этой ссылке и пройти регистрацию как новый аккаунт ученика, чтобы проверить работу воронки созданного бота.

Внимание

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