Emdesell

Telegram воронка в Bothelp


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


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


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

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

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

Подготовка и подключение

  1. 0:15 Бот в BotHelp получает от ученика имя, e-mail и телефон.
  2. 0:25 По этим данным бот создаёт в Emdesell аккаунт ученика, присваивает ему доступ и передаёт Telegram ID из BotHelp.
  3. 1:19 Ученик сразу попадает в нужный урок без ввода логина и пароля.
  4. 2:46 Подключите BotHelp к школе. Видеоинструкция по подключению доступна в подсказке и отдельно в справочном видео.
  5. 2:53 Перейдите в раздел API, скопируйте существующий API-ключ или выпустите новый. Сохраните ключ, он понадобится дальше.

Настраиваемые поля в BotHelp

  1. 3:14 Перейдите в Настройки и откройте Настраиваемые поля.
  2. 3:29 Добавьте поле ID аккаунта с типом «Число». Сохраните.
  3. 3:43 Добавьте поле Код авторизации с типом «Текст». Сохраните.

Создание бота

  1. 4:19 Перейдите в Боты, нажмите создание бота и выберите Telegram. Задайте название, например «бот МДСЛ».
  2. 4:49 Настройте первое сообщение, например «Давай знакомиться». Для запроса данных используйте действие Вопрос.
  3. 5:17 Первый вопрос: «Напиши свое имя». Ответ сохраните в поле Name.
  4. 5:29 Второй вопрос: «Напиши свой e-mail». Ответ сохраните в поле email.
  5. 5:43 Третий вопрос: «Напиши свой телефон». Запрос телефона можно не добавлять, если он не нужен.
  6. 6:11 Нажмите Сохранить, затем Закрыть.

Действие «Регистрация аккаунта»

  1. 6:24 Добавьте действие Запрос и создайте внешний запрос через Добавить действие.
  2. 6:39 Выберите метод POST.
  3. 6:54 В адресе укажите адрес вашей школы (скопируйте его из школы), а не демо-адрес. Допишите окончание для создания аккаунта. Окончания берите из справочника, ссылка на который приложена к видео.
  4. 7:27 Добавьте заголовок с параметром X-API-KEY и вставьте API-ключ.
  5. 7:44 В разделе Тело вставьте тело запроса из справочника.
  6. 7:59 Нажмите Сохранить, затем Сохранить и закрыть. Проверьте, что все введённые параметры сохранились.
  7. 8:32 Назовите действие «Регистрация аккаунта» и сохраните его.

Действие «Получение ID аккаунта»

  1. 8:41 Дублируйте действие «Регистрация аккаунта».
  2. 8:48 Во второй копии выберите метод GET. Окончание адреса для поиска аккаунта по e-mail берите из справочника (в видео назван Account.FindEmail). Настройки метода оставьте без изменений.
  3. 9:06 Откройте раздел Сопоставление, добавьте сопоставление и выберите параметр JSON.
  4. 9:17 Выберите поле ID аккаунта, созданное ранее, и сохраните изменения.
  5. 9:33 Переименуйте действие в «Получение ID аккаунта».

Действие «Обновление данных аккаунта»

  1. 9:55 Дублируйте действие «Получение ID аккаунта» и назовите его «Обновление данных аккаунта». Этот шаблон можно использовать в следующих воронках.
  2. 10:12 Измените метод на POST, окончание адреса на Account Edit. Настройки оставьте без изменений.
  3. 10:20 В разделе Тело вставьте тело запроса для обновления данных. Сохраните.

Действие «Создание кода авторизации»

  1. 10:53 Дублируйте предыдущее действие и назовите его «Создание кода авторизации».
  2. 11:09 Измените окончание адреса на Логин create и замените тело запроса.
  3. 11:21 В разделе Сопоставление укажите поле код авторизации и сохраните.

Действие «Присвоение доступа»

  1. 11:53 Дублируйте действие и назовите его «Присвоение доступа». Измените настройки и тело запроса.
  2. 11:53 В теле запроса задайте два параметра: номер доступа и время его присвоения.
  3. 12:09 Номер доступа посмотрите в разделе Доступы. В видео для примера используется доступ с номером 63.
  4. 12:26 Время присвоения задаётся в днях. В примере указано 10 дней. Чтобы присваивать доступ без ограничения, укажите 0.
  5. 12:26 В сопоставлении ответов поле логин-код (код авторизации) оставьте без изменений.
  6. 12:36 Сохраните и закройте действие.

Выдача урока

  1. 12:51 Создайте сообщение и подключите его к цепочке. Например, текст: «Заходи, урок».
  2. 13:03 Скопируйте ссылку на урок. Ссылки на уроки выдаются через курс в настройках V2.
  3. 13:17 Первый урок можно открывать сразу после покупки доступа. Следующие уроки можно открывать по расписанию, например в 18:00 по Москве.
  4. 13:54 Вставьте ссылку на урок в настройки сообщения и добавьте к ней параметры: вопрос, логин, код и код авторизации.
  5. 14:22 Значение кода авторизации можно посмотреть в карточке кода авторизации. Его вставляют в ссылку, чтобы система сразу открыла нужный урок для этого ученика.
  6. 14:39 Нажмите Сохранить и закрыть.

Запуск бота и тестирование

  1. 14:53 Создайте страницу запуска бота: в Боты добавьте страницу, выберите Telegram и нужного бота, затем сохраните.
  2. 15:30 Страница запуска выглядит как лендинг. Её ссылку можно вынести на кнопку на сайте школы.
  3. 16:05 Для проверки откройте приложение, нажмите Запустить и ответьте на вопросы бота: имя, e-mail, телефон.
  4. 16:30 Бот отправит ссылку на урок. По ней ученик попадает в домашнее задание, аккаунт при этом уже зарегистрирован.
  5. 17:04 В школе откройте Аккаунты и проверьте данные ученика: имя, e-mail, телефон, дату регистрации, IP и привязанный аккаунт Telegram.

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

  1. 17:39 В разделе Боты создайте триггер. Например, событие «Домашнее задание к уроку одобрено» для первого урока.
  2. 18:07 Номер урока возьмите из раздела уроков курса V2. В примере это урок с номером 139.
  3. 18:19 Укажите номер урока в триггере и добавьте метку, например «урок 1». Сохраните шаблон.
  4. 18:43 Для проверки сбросьте просмотры урока, выйдите из системы и отправьте домашнее задание.
  5. 19:11 В Домашних заданиях одобрите задание. Метка «урок 1» появится у пользователя.

Отправка уроков по расписанию

  1. 19:58 Без условий урок можно отправлять по времени. Добавьте Задержку и укажите, когда должен уйти урок, например в 18:00.
  2. 20:26 Выберите «завтра» и 18:00, чтобы отправка прошла в правильный день.
  3. 20:49 Дублируйте сообщение с уроком для следующего урока и укажите номер урока в ссылке. В примере это урок 140.

Условие: переход к следующему уроку только после ДЗ

  1. 21:32 Чтобы ученик не получал следующий урок без домашнего задания, уберите связку задержки с сообщением и добавьте Условие.
  2. 21:56 Для условия выберите метку, соответствующую уроку 1, и сохраните. Появятся две ветки: «да» и «нет».
  3. 22:11 Ветка «да»: ученик получает следующий урок.
  4. 22:26 Ветка «нет»: отправьте сообщение с текстом вроде «Вижу, что ты не сдал домашнее задание. Следующий урок ты получишь после одобрения домашки», и верните ученика к предыдущему уроку.
  5. 23:07 Для повторной проверки добавьте после ветки «нет» задержку, например на один час, и проверьте условие ещё раз.
  6. 23:49 Если условие выполнено, отправьте следующий урок. Если нет, можно повторить напоминание или прекратить цепочку.
  7. 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

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

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

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

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

Внимание

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