Модерация заявок в мини-апп
Привет! Меня зовут Женя и я разработчик чат-ботов и мини-приложений в telegram хлоп-хлоп.
Почитать обо мне, посмотреть кейсы и подход к работе можно в моем Telegram-канале «Чат-боты и заботы», приглашаю подписаться!
В последнее время основной поток заказов идет именно на мини-аппы, и это ожидаемо. Потому что они красивые, офигенно функциональные и позволяют клиентам фактически заиметь сложный сайт, но еще и не выходя из привычного мессенджера. В общем, я в любви, клиенты тоже, результат — потрясающий!
А поскольку опыта создания мини-приложений накопилось уже порядочно, я решила, что пора бы этим поделиться.
Работаю я на прекрасном конструкторе PuzzleBot, соответственно, все статьи будут посвящены сборке именно на нем. Кстати, при регистрации по моей партнерской ссылке вас ждут бонусные 7 дней платного тарифа.
Сегодня мы поговорим о функционале, который до сих пор вызывает у меня тихую радость (а все потому, что до того, как мне подсказали этот способ, я перепробовала кучу других, и они были какими-то очень сложными).
Итак, модерация заявок (и чего угодно) с помощью мини-приложения
Мы потренируемся на примере проверки домашнего задания.
Что уже должно быть готово для прохождения этого урока:
- создан бот в Telegram, подключен к сервису PuzzleBot;
- подключена прямая интеграция с NocoDB (с GoogleSheets тоже можно, принцип будет аналогичный, однако нужно будет выбрать соответствующие команды в конструкторе)
1. Подготовим NocoDB
Создаем базу данных с любым удобным для вас названием, в ней таблицу. У меня будет БД «Уроки», таблица «Домашние задания».
- userid - id пользователя в telegram
- username - username пользователя в telegram
- date - дата сдачи домашнего задания
- homework - файл с домашним заданием
- comment - комментарий проверяющего
- status - статус проверки домашнего задания
2. Подготовим переменные
Создадим несколько переменных, которые нам понадобятся далее:
- персональные обычные текстовые переменные {{id_check}} и {{homework}} (на примере только одна, но не забудьте создать и вторую)
- глобальная обычная текстовая переменная {{comment}}
- персональная интегрированная текстовая переменная {{homework_chek}}. Она будет выводить карточку с домашним заданием. Обратите внимание, что я установила фильтр также и по статусу, поэтому выводиться будут только непроверенные задания.
3. Создаем флоу в конструкторе
Для начала создадим форму для отправки домашнего задания и условие для его выгрузки в NocoDB и отправки уведомления администратору.
- Создаем мини-приложение «Домашняя работа». Оформляйте его, как вам нравится, самое главное — нам нужно создать форму ввода для домашнего задания с дублированием ответа в переменную {{homework}}
- В примере попробуем с вводом текста, по факту можно использовать разные форматы, в том числе и загрузку файлов
- Рекомендую добавить поп-ап о принятии домашнего задания или отдельную страничку с «успехом», чтобы пользователи не думали, что ничего не произошло :)
- Создаем обычную команду «Уведомление админу»
- Создаем условие «Выгрузка домашнего задания». Здесь наша задача совершить два действия: создать новую строку в NocoDB с домашним заданием и уведомить админа (здесь можно отправить уведомление не админу, а, например, в организационный чат)
Ура, переходим к вкусненькому! :) Настроим непосредственно модерацию домашнего задания.
- Создаем мини-приложения «Проверка дз 1». Его задача — выбрать ученика, чье домашнее задание мы будем проверять из списка в NocoDB и записать его telegram-id в переменную {{id_chek}}.
- Для этого создаем форму ввода типа «Список»
- Создаем мини-приложение «Проверка дз 2». Здесь мы уже выводим карточку с домашним заданием на проверку.
- Для этого добавляем текстовый блок с переменной {{homework_chek}}
- Далее добавим проверяющему возможность добавить комментарий к домашнему заданию, для этого добавляем форму ввода типа «Текст» и настраиваем дублирование в переменную {{comment}}
- Добавляем на фиксированной клавиатуре кнопки «Принять» и «Отклонить» (пока оставим их без действий, вернемся чуть позже). Опять же, не забудьте добавить поп-ап об успехе.
- Создаем обычные команды «Принято» и «Отклонено». В них пишем уведомление для пользователя с результатом проверки задания и комментарием проверяющего.
- Создаем условия «Принять» и «Отклонить»: они будут идентичными, за исключением выгрузки строки status в таблицу. И, как вы уже поняли, они отвечают за смену статуса в строке NocoDB и отправку уведомления пользователю и результате проверки. Плюс я добавила на них переход на стартовую страницу проверки, для удобства.
А теперь пройдемся по всем мини-приложениям и добавим финальные штрихи.
- В приложении «Проверка дз 1» добавим действие, которое будет очищать переменную {{comment}} (она у нас на всех — одна, поэтому во избежании ошибок лучше чистить ее каждый раз). В дополнительных настройках обязательно выбери «До»
- Также в приложении «Проверка дз 1» добавим кнопке действие: переход к мини-приложению «Проверка дз 2»
- В «Проверка дз 2» установим для кнопок «Принять» и «Отклонить» соответствующие действия, с помощью «Перехода к команде или условию»
- А в «Уведомление админу» можно добавить кнопку «Проверить домашние задания», чтобы было удобно переходить к проверке.
- Публикуем изменения и готово!
Итого у вас должна получиться похожая структура:
Разработка чат-ботов и мини-приложений в telegram @pro_eugenia | «Чат-боты и заботы»