Salebot.pro
Search
K
Comment on page

Чат-бот для онлайн-курса

Чат-бот - это программа, помогающая Вам автоматизированно в различных мессенджерах общаться с клиентами, выявлять потребности пользователей, собирать полезную информацию и обрабатывать обращения.
еред созданием Чат-бота для онлайн-курса изучите раздел "Основы ботостроения на Salebot.pro".
В этой статье рассмотрен пример создания простой схемы чат-бота.

Как создать схему для работы бота?

Перед тем, как работать с Чат-ботом в онлайн-курсах через мессенджеры, необходимо их подключение в разделе Каналы, где можно увидеть список всех доступных для подключения к Salebot:
Обратите внимание, что требования подключения каждого мессенджера различны: для Telegram вам понадобится токен, для Вконтакте и Facebook - подключение к платформе Salebot аккаунта социальной сети и пр.
Подробнее про подключение каждого мессенджера рассказано в разделе "Мессенджеры и чаты (каналы)". Если у вас еще нет подключенных каналов к проекту, просим подробнее ознакомиться с особенностями требований необходимого мессенджера.

Где указывать функции для работы с курсом через бота?

Все функции для выполнения ботом тех или иных действий указываются в поле Калькулятор в настройках блока либо в Условиях стрелки, ведущей к одному из блоков.
Поле Калькулятор в настройках блока
Для того, чтобы получить почту у клиента, на которую необходимо зарегистрировать ученика на платформе Salebot.Course или выдать доступ к курсу, создаем блок с вопросом и от него протягиваем стрелку со сбором данных.
Подробно про создании стрелки со сбором данных рассказано в этой статье.

Как запросить у клиента email для регистрации на платформе или выдачи доступа к курсу

В схеме могут быть следующие блоки (шаги): 1. стартовый блок для запуска бота:
Стартовый блок для создании схемы чат-бота стандартен: может начинаться как с типа "Первостепенной проверки условия", так и с "Состояние диалога".
В условии для чат-бота в Telegram указывается "/start", для других мессенджеров можно прописать приветственные слова "привет;здравствуйте" и т.п. при выборе соответствия "игнорируя ошибки и неточности". Так стартовый блок схемы будет воспринимать первое сообщение пользователя с возможными ошибками или опечатками (например, првет, превет, привт и др.). Стартовый блок может также запрашивать у клиента email для регистрации на платформе БЕЗ выдачи доступа к курсу, как показано в примере выше.
В настройках стрелки в УСЛОВИИ необходимо прописать регулярное выражение для проверки почтового адреса пользователя на общепринятый стандарт почты такого типа, как, например, [email protected]: ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
Регулярные выражения — это условие, с помощью которого бот может проверять формат введенных данных (например, что человек ввел именно номер телефона, а не что-то иное.
Список всех полезных регулярных выражений можно найти здесь.
В случае несоответствия почтового адреса общепринятому стандарту (например, ваш клиент написал просто свое имя или рандомный набор символов), можно создать блок следующего типа, который будет отправлять клиенту сообщение о необходимости указания реального email-адреса:

Блок регистрации на курс и информации о тарифах

Блок регистрации на курс после отправления клиентом собственного электронного почтового адреса (email) создается с помощью функции register_customer(email) :
На примере выше видно, что функцию register_customer(email) необходимо указывать в калькуляторе!
После направления клиентом email-адреса, с помощью следующего блока отправьте информацию о курсе и о тарифах
В условии if (пример выше) в первой строке используйте стоимость тарифа и его название, соответствующие тарифу в вашем курсе.

Как узнать Id тарифа (tariff_id)?

tariff_id - это параметр, который используется в большей части функций для работы с курсами. Найти его можно, как в браузерной строке в настройках тарифа, так и в разделе "Тарифы" вашего курса. Ниже скриншоты, в которых выделили необходимый для работы параметр.
Обращаем ваше внимание, что идентификатор тарифа в функции указывают без дополнительного выделения синтаксически, то есть без кавычек, решетки и фигурных скобок.
В браузерной строке

Как сохранить в карточке клиента выбранный тариф?

Внутри бота можно создавать сообщения с кнопками. Например, вы хотите предложить на выбор два тарифа. Значит у вас в блоке будет 2 кнопки с названиями тарифов.
Важно! Тарифы должны быть уже созданы в курсе. Дальше нам понадобится ID этих тарифов.
В простом варианте в конструкторе воронок будет собрана следующая схема:
Пользователь получает сообщение с возможностью выбрать тариф, нажимает кнопку и переходит в следующий блок "Ты выбрал тариф". В блоке "Ты выбрал тариф" присвоим значение tariff_id, чтобы в дальнейшем обращаться к переменной в функциях.
Например, у вас id тарифа Базовый #2354 , id тарифа VIP #2363 В Калькуляторе блока "Ты выбрал Базовый тариф" указываем: tariff_id = 2354 В Калькуляторе блока "Ты выбрал VIP тариф": tariff_id = 2363
Чтобы удалить значение в переменной tariff_id в Калькуляторе можно написать: tariff_id = "" (пара двойных кавычек) tariff_id = (пробел после знака равно)

Оплата внутри Чат-бота по тарифам

Также с помощью блоков в схеме Чат-бота клиенту можно направлять сообщение с формированием ссылки на оплату курса внутри бота.
Перед тем, как устанавливать тарифы в онлайн-курс и, соответственно, направлять формы оплаты, необходимо подключить платежные системы в проект.
Как создавать схемы блоков с формами оплаты рассказано в этом разделе.
Чтобы принимать оплату через Чат-бот необходимо установить соответствующий переключатель в настройках курса:
Добавьте возможность выбрать подходящий тариф курса и в зависимости от выбора сохраните в переменную сумму к оплате. Для этого в Калькуляторе блока можно присвоить переменной значение стоимости тарифа. Например, payment_sum = 1999
Для каждой платежной системы свои требования при формировании ссылки на оплату, но принцип работы с ними одинаковый.
  1. 1.
    Можно создавать блоки оплаты с формированием ссылок:
Для этого подключите в блоке вложения, тип ссылка, в поле с названием URL вставьте ссылку на оплату:
  1. 2.
    Либо с помощью формирования кнопок оплаты:
Для того чтобы создать кнопку оплаты, перейдите в настройки созданного блока и подключите функцию "кнопки" и добавьте кнопку:
Откроется окно, где обязательно необходимо прописать Название кнопки и выбрать ее назначение "Оплата"
Для некоторых платежных систем подключение функции оплаты кнопки недоступно, например, для Юмани.
Как создавать кнопки оплаты в блоках схемы Чат-бота для Юмани читайте здесь.
Выберите необходимую платежную систему, которая доступна в окне добавления кнопки оплаты.
  1. 3.
    функцию в Калькуляторе для формирования ссылки.
В этом случае переменной присваиваете функцию для формирования ссылки на оплату. Далее эту переменную можно указать в настройках кнопки в поле URL и/или вывести в текст сообщения.
Название переменной может быть любое удобное и понятное вам
Сформировать ссылку с использованием переменной payment_sum. Также переменную с формированной ссылкой для оплаты можно будет поместить или в кнопку или в текст сообщения.

Как обработать успешную оплату и пропустить ученика дальше по воронке?

При корректном подключении платежной системы в бота приходит уведомление (колбэк, callback) об успешном платеже. Увидеть его можно в диалоге клиента, который оплатил по ссылке, выданной в боте. Для каждой платежной системы он разный. Скопируйте текст колбэка и далее используйте как условие: -в блоке первостепенной проверки условия -в стрелках в поле Условие
В этом случае, сразу как клиент оплатит и в бота вернется колбэк об успешной оплате сработает блок с условием или стрелка, клиент перейдет в следующий блок.
В этом блоке можно настроить автоматическую выдачу доступа к курсу, добавление в список, метки, перемещение этапа воронки в CRM, аналитику шага и выполнить любые другие действия.

Доступ к курсу через Чат-бот

Как выдать доступ к курсу через Web App Телеграмм?

Для этого укажите в Калькуляторе блока функцию
access_course_from_webapp(text, button_label) При использовании функции ученик проходит авторизацию в Telegram и получает доступ к курсу. Для дальнейшего обучения, ученику не надо вводить логин и пароль, так как авторизация уже пройдена.
Параметры функции:
text - текст сообщения, которое получит клиент. Параметр можно указать в переменной, написав его до обращения к функции в поле "Калькулятор" или указать в самой функции в в кавычках.
button_label - текст на кнопке Web App Указать параметр можно, как в переменной, так и в самой функции. Во втором случае запить параметра производится в кавычках.
*Актуально ТОЛЬКО для работы с Telegram-ботом.
В скриншоте ниже показали пример использования функции. На первом шаге регистрируем клиента на курс, затем функцией access_course_from_webapp предоставляем доступ к онлайн-продукту.
Результат выполнения функции:
По этой кнопке открывается страница с курсами/тарифами, которые есть у ученика.
Если клиент не связан с аккаунтом ученика, то функция вернет 'client not attached to customer'.
Для создания такой связи просто нужно записать на курс через бота.
access_course_from_webapp(text, button_label)

Как выдать доступ к курсу через бот register_customer_on_course()?

Для этого укажите в Калькуляторе блока функцию
register_customer_on_course(tariff_id, email, email_notification, period)
Обязательные параметры
Необязательные параметры
! tariff_id - идентификатор id тарифа. Скопировать можно в браузерной строке в настройках тарифа.
email_notification - этот параметр передает ученику на Email сообщение о его регистрации на курс, если он включен.
! email - адрес электронной почты клиента. Можно указать конкретное значение или переменную, в которой записан email клиента
period - ограничение по времени действия тарифа. Форматы даты поддерживаются такие: %d.%m.%Y %H:%M или %d.%m.%Y Пример:
period = '15.08.2023 11:00'
Для того чтобы клиенты получали письма необходимо передать 1 в параметре email_notification.
Если не передать 1, то письма клиента получать не будут!
Присвойте переменной функцию.
После выполнения в переменной будет записан один из ответов:
customer is already on tariff - если тариф есть или доступ вручную закрыт
wrong_tariff_id - неверный id указан
tariff_added - тариф добавлен ученику
функция для выдачи доступа к курсу через бота

Как проверить наличие доступа к курсу has_customer_triff(tariff_id)?

Для этого укажите в Калькуляторе блока функцию has_customer_tariff(tariff_id, email)
Обязательные параметры
Необязательные параметры
! tariff_id - идентификатор id тарифа. Скопировать можно в браузерной строке в настройках тарифа или в разделе Тарифы.
email - необязательный параметр. Передайте этот параметр, чтобы проверить записан ли клиент с указанным email на курс.
После выполнения функция возвращает True или False.
Возможные ответы функции при ошибках:
wrong tariff_id - передано неверное значение tariff_id
customer not found - пользователь не зарегистрирован как ученик.

Как зарегистрировать клиента на платформе БЕЗ выдачи доступа к курсу: register_customer(email)?

Для этого укажите в Калькуляторе блока функцию register_customer(email)
Параметры функции
! email - адрес электронной почты клиента.
Вы можете указать переменную в функции или значений параметра. Для указания переменной напишите ее имя, без кавычек и знаков синтаксиса, решетки и фигурных скобок. Для указания конкретного значения, укажите адрес почты клиента в кавычках.
Функции рекомендуется присвоить переменную, так вы увидите результат работы функции и сможете работать с ним. Пример в скриншоте ниже: до знака равенства задано имя переменной, после функция и параметр в круглых скобках.
После успешного выполнения функции в переменной будет записан ответ: customer created

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

Для этого укажите в Калькуляторе блока функцию has_customer_tariff_with_date(tariff_id, email), чтобы проверить наличие доступа к курсу по email (возвращает подробный ответ о наличии доступа и ограничениях по времени).
Параметры функции:
Обязательный параметр
Необязательный параметр
! tariff_id - идентификатор id тарифа. Скопировать можно в браузерной строке в настройках тарифа или в разделе Тарифы.
email - необязательный параметр.
В ответ придет:
  • ученик записан и есть ограничение по времени доступа: Has access until 2023-09-28 22:00:00
  • ученик записан, ограничений нет: Has access without time limit
  • ученик не записан: No access to this tariff
Возможные ответы функции при ошибках:
wrong tariff_id - передано неверное значение tariff_id
customer not found - пользователь не зарегистрирован как ученик.

Как удалить доступ к курсу для ученика через бот del_customer_course()

Для этого укажите в Калькуляторе блока функцию del_customer_from_course(course_id, email)
Параметры
! course_id - идентификатор курса, значение поля Название в ссылке
! email - адрес электронной почты клиента
Относительно к параметру course_id

Как проверить, был ли ученик на вебинаре customer_was_on_translation()

Доступ к курсу должен быть выдан в боте.
Для это есть функция register_customer_on_course() и access_course_from_webapp()
Чтобы проверить был ученик на вебинаре или нет, укажите в Калькуляторе блока функцию customer_was_on_translation(translation_guid, email, after_start_time)
Обязательные параметры
Необязательный параметр
! translation_guid - идентификатор трансляции. Скопируйте значение поля Название в ссылке в настройках трансляции.
after_start_time - время начала трансляции в формате: '2023-04-18 13:30:00'.
! email - адрес электронной почты Ученика
Пример: answer2 = customer_was_on_translation('ad654f52be33d55008e31ba9792140ab', '[email protected]', '2023-04-18 13:30:00')
В переменную answer2 запишется результат выполнения функции. По значению этой переменной можно настраивать дальнейшую логику работы бота. Пример успешной проверки посещения вебинара:
Важно! Название переменной может быть любое удобное и понятное вам. В случае ошибки в написании параметров функции в переменную запишется сообщение: wrong translation_guid
В этом случае рекомендуем проверить параметры функции и протестировать повторно. Чтобы из переменной получить значение длительности пребывания на вебинаре в Калькуляторе можно использовать функцию работы с массивами и словарями.
Пример настройки в Калькуляторе блока:
time_spent1 = answer2[0]['time_spent']

Как запустить бота, если ученик открыл урок / сдал домашнее задание / закончил курс?

В Основных настройках курса включить Отправлять колбэк.
В этом случае на выбранные действия в диалог ученика в боте будут приходить уведомления (callback). Текст этих уведомлений можно использовать как условие в стрелках и/или в блоках с условием для дальнейшего движения ученика по боту.
Основные знания по работе с конструктором также подробно рассмотрены в бесплатном обучении от Salebot : https://salebot.pro/cs/repetitor_tema1

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

00:00 | Создаем миникурсы с разными тарифами
00:52 | Создаем схему для регистрации нового ученика в Курсах(LMS системе)
07:00 | Функция регистрация БЕЗ выдачи доступа к курсу register_customer()
7:59 | Функция выдачи доступа к курсу через бот register_customer_on_course()
13:31 | Проверка регистрации в Курсах(как ученик) через сравнение переменной
15:23 | Функция проверки доступа к курсу has_customer_tariff()