January 16

Модерация заявок в мини-апп

Привет! Меня зовут Женя и я разработчик чат-ботов и мини-приложений в telegram хлоп-хлоп.

Почитать обо мне, посмотреть кейсы и подход к работе можно в моем Telegram-канале «Чат-боты и заботы», приглашаю подписаться!

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

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

Работаю я на прекрасном конструкторе PuzzleBot, соответственно, все статьи будут посвящены сборке именно на нем. Кстати, при регистрации по моей партнерской ссылке вас ждут бонусные 7 дней платного тарифа.


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

Итак, модерация заявок (и чего угодно) с помощью мини-приложения

Мы потренируемся на примере проверки домашнего задания.

Что уже должно быть готово для прохождения этого урока:

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 | «Чат-боты и заботы»