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

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

Перед созданием Чат-бота для онлайн-курса изучите раздел "Основы ботостроения на Salebot.pro".

В этой статье рассмотрен пример создания простой схемы чат-бота.

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

Перед тем, как работать с Чат-ботом в онлайн-курсах через мессенджеры, необходимо их подключение в разделе Каналы, где можно увидеть список всех доступных для подключения к Salebot:

Обратите внимание, что требования подключения каждого мессенджера различны: для Telegram вам понадобится токен, для Вконтакте и Facebook - подключение к платформе Salebot аккаунта социальной сети и пр.

Подробнее про подключение каждого мессенджера рассказано в разделе "Мессенджеры и чаты (каналы)". Если у вас еще нет подключенных каналов к проекту, просим подробнее ознакомиться с особенностями требований необходимого мессенджера.

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

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

Для того, чтобы получить почту у клиента, на которую необходимо зарегистрировать ученика на платформе Salebot.Course или выдать доступ к курсу, создаем блок с вопросом и от него протягиваем стрелку со сбором данных.

Подробно про создании стрелки со сбором данных рассказано в этой статье.

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

В схеме могут быть следующие блоки (шаги): 1. стартовый блок для запуска бота:

Стартовый блок для создании схемы чат-бота стандартен: может начинаться как с типа "Первостепенной проверки условия", так и с "Состояние диалога".

В условии для чат-бота в Telegram указывается "/start", для других мессенджеров можно прописать приветственные слова "привет;здравствуйте" и т.п. при выборе соответствия "игнорируя ошибки и неточности". Так стартовый блок схемы будет воспринимать первое сообщение пользователя с возможными ошибками или опечатками (например, првет, превет, привт и др.). Стартовый блок может также запрашивать у клиента email для регистрации на платформе БЕЗ выдачи доступа к курсу, как показано в примере выше.

В настройках стрелки в УСЛОВИИ необходимо прописать регулярное выражение для проверки почтового адреса пользователя на общепринятый стандарт почты такого типа, как, например, ivanovivan@gmail.com: ^[-\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. Можно создавать блоки оплаты с формированием ссылок:

Для этого подключите в блоке вложения, тип ссылка, в поле с названием URL вставьте ссылку на оплату:

  1. Либо с помощью формирования кнопок оплаты:

Для того чтобы создать кнопку оплаты, перейдите в настройки созданного блока и подключите функцию "кнопки" и добавьте кнопку:

Откроется окно, где обязательно необходимо прописать Название кнопки и выбрать ее назначение "Оплата"

Для некоторых платежных систем подключение функции оплаты кнопки недоступно, например, для Юмани.

Как создавать кнопки оплаты в блоках схемы Чат-бота для Юмани читайте здесь.

Выберите необходимую платежную систему, которая доступна в окне добавления кнопки оплаты.

  1. функцию в Калькуляторе для формирования ссылки.

В этом случае переменной присваиваете функцию для формирования ссылки на оплату. Далее эту переменную можно указать в настройках кнопки в поле 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'.

Для создания такой связи просто нужно записать на курс через бота.

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

Для этого укажите в Калькуляторе блока функцию

register_customer_on_course(tariff_id, email, email_notification, period)

Для того чтобы клиенты получали письма необходимо передать 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)

После выполнения функция возвращает True или False.

Возможные ответы функции при ошибках:

wrong tariff_id - передано неверное значение tariff_id

customer not found - пользователь не зарегистрирован как ученик.

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

Для этого укажите в Калькуляторе блока функцию register_customer(email)

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

Функции рекомендуется присвоить переменную, так вы увидите результат работы функции и сможете работать с ним. Пример в скриншоте ниже: до знака равенства задано имя переменной, после функция и параметр в круглых скобках.

После успешного выполнения функции в переменной будет записан ответ: customer created

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

Для этого укажите в Калькуляторе блока функцию has_customer_tariff_with_date(tariff_id, email), чтобы проверить наличие доступа к курсу по 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)

Идентификатор находится на карточке тарифа:

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

Доступ к курсу должен быть выдан в боте.

Для это есть функция register_customer_on_course() и access_course_from_webapp()

Чтобы проверить был ученик на вебинаре или нет, укажите в Калькуляторе блока функцию customer_was_on_translation(translation_guid, email, after_start_time)

Пример: answer2 = customer_was_on_translation('ad654f52be33d55008e31ba9792140ab', 'test@mail.ru', '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()

Last updated