Чат-боты — это программы, которые автоматически генерируют сообщения по определенным сценариям. Последние зависят и от целевой аудитории, и от поведения пользователей: их реакции и ответов на сообщения.
Обработка входящих обращений ботами эффективно разгружает отдел продаж, техподдержку или колл-центр. С помощью программ также можно рассылать полезные материалы и информировать о новых предложениях, продавать несложные товары и услуги, запускать учебные онлайн-курсы.
Чат-бота обычно разрабатывают на Python. Но если у Вас нет нужных навыков, времени или бюджета, можно сделать его самостоятельно, не написав ни строчки кода. О том, как создать чат-бота с помощью конструктора и какие возможности предлагают популярные сервисы, — расскажу в статье.
Лучшие конструкторы чат-ботов в Telegram
Если Вы сталкивались с nocode-платформами вроде Тильды или Unisender, то работа в конструкторе чат-бота не вызовет затруднений. Конструктор — это сервис, построенный по принципу визуального проектирования из элементов, блоков и модулей. В нем также можно редактировать под свои задачи существующие шаблоны.
Телеграм бот на Python / #2 – Базовые концепции создания бота
Я протестировала 8 разных программ и заметила один важный момент. Хотя их основной функционал схож, почти все конструкторы специализированы под определенные задачи и даже бизнес-нишу. Поэтому при выборе варианта из таблицы ниже всегда отталкивайтесь от нужд компании.
Бот умеет отправлять не только текстовые сообщения, но и прикреплять файлы, изображения, аудио, видео, кнопки и перенаправлять по ссылкам. Еще можно задать время задержки следующего сообщения или указать боту, чтобы он подождал, пока пользователь ответит. Построив логику диалога в конструкторе, тестируем, что получилось.
Отзыв пользователя попадает в CRM сервиса. Рассмотрим эту возможность подробнее.
2. Сбор данных и CRM
Одна из важных задач чат-программы — собирать и бережно хранить данные о пользователе, полученные в ходе диалога. Боты умеют запрашивать и записывать во внутреннюю CRM конструктора любые текстовые и контактные данные пользователя, его обращения, ответы на вопросы и заявки.
Например, если в нашу схему в Bot Kits добавить блок сохранения данных, отзыв пользователя попадает в CRM-систему, которая в конструкторе представлена таблицей с настраиваемыми полями.
3. Продажа несложных товаров
Научим бота продавать три вида шариков и отправлять оптовый прайс на email клиента. В админ-панеле BotTap перейдем во вкладку «Диалоги», создадим приветственное сообщение и добавим кнопки меню. В этом конструкторе Вы проектируете по принципу drag and drop: перетаскиваете мышью подходящий блок из палитры справа в нужное место и редактируете.
Пишем TELEGRAM бота с БАЗОЙ ДАННЫХ на Python
Приветствие создаем с помощью блока «Текст», разделы меню — с помощью одноименного блока. Можно выставить задержку сообщений бота.
Чтобы создать товары, переходим на вкладку справа — «CRM интернет-магазина», а затем — в «Товары». Сервис дает возможность заполнить описание продукта, загрузить его изображение и назначить цену.
Вернемся на страницу «Диалоги», выделим в нашем блоке с меню «Каталог» и добавим из правой палитры блок «Интернет-магазин».
Перейдем в чат и потестируем, что получилось. После приветствия бота выберем «Каталог» и добавим в корзину красный шар.
Можно научить бота запрашивать адрес и телефон покупателя при оформлении заказа — данные попадут в CRM интернет-магазина. В настройках платформы есть опции заказа с оплатой или без. Для теста выбираем последнюю.
Протестируем в чате оформление заказа: введем адрес и телефон. Затем проверим, появился ли заказ в CRM конструктора.
4. Прием платежей и интеграция по API
В конструкторах обычно есть возможность интеграции по крайней мере с одним платежным сервисом. Вернемся нашему боту и рассмотрим функцию оплаты на примере того же BotTap.
Заходим в настройки блока «Интернет-магазин» и включаем опцию приема оплаты. Система предлагает выбрать платежный шлюз, который подключается на одноименной вкладке.
Кроме платежных платформ, некоторые конструкторы чат-ботов позволяют подключиться к другим внешним сервисам по API (например, к Битрикс24, Google Analytics, MailChimp и пр.).
5. Отправка файлов на email пользователя
Также можно научить обота отправлять любые документы (книги, чек-листы и т.д.) на email клиента. В BotTap это можно сделать с помощью блока «Электронная почта». Добавим его в наш конструктор диалога.
Протестируем в чате:
6. Рассылки
Бот может не только отправлять сообщения, письма и файлы по запросу пользователя, но и делать автоматизированные рассылки. При этом можно построить довольно глубокую логику, сегментировать и фильтровать аудиторию по поведению.
Вернемся к нашему боту и научим его спрашивать покупателя, не осталось ли у того каких-нибудь вопросов, через 20 минут после последнего действия пользователя.
Воспользуемся для примера платформой Bot Kits. Выберем в админ-панели вкладку «Рассылка» → «Реакция на сообщение».
В настройках зададим правило — посылать сообщение после последнего действия клиента — и укажем время отправки. Пусть наш бот не только вежливо интересуется, не осталось ли вопросов у покупателя, но и передает ответ менеджеру. Отметим это в настройках рассылки: в Bot Kits для этого нужно указать переменную, в которую будут записываться сообщения пользователей.
Протестируем рассылку в чате нашего бота: сообщение пришло ровно через 20 минут после взаимодействия.
А что, если пользователь не хочет общаться с искусственным интеллектом и настойчиво требует, чтобы в чате ему ответил живой человек?
Кстати. Ищите лучшие сервисы для рассылки в телеграм и отзывы о них на нашем агрегаторе.
7. Переключение диалога на оператора
Функцию приглашать в чат сотрудника поддерживают не все конструкторы, поэтому узнавайте об этой возможности заранее.
Как создать бота для Telegram | Бот отправляющий изображения котов
Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.
ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:
Подготовка
Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.
pip install python-telegram-bot —upgrade
pip install requests
Не забудем и про добавление команды
Пишем код
В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.
Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.
По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.
Остальные хендлеры трогать не будем, а поменяем лишь вызываемые ими функции.
Так например по умолчанию функция echo отправляет пользователю тот же самый текст что он и прислал.
Изменим отправляемый текст на сообщение об ошибке
Также изменим отправляемый текст на /start и /help
Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.
Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .
Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.
Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())
Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:
В итоге получается
Исходный код
import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()
F.A.Q
- Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
- A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
- Q: А как сделать ребут, админку, оформить тексты т.д ?
- A: Здесь есть отличные сниппеты
- Q: Как осуществить . ?
- A: Документация Telegram bot api, Вики библиотеки
Источник: liberbear.com