Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

В данной статье мы разбираем и разрабатываем удобный интерфейс для обработки заявок от пользователей с прямой интеграцией PuzzleBot - NocoDB.

Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

Поиграться можно тут - https://t.me/infoazizbot?start=applic

Пример работы

Если вы не предпочитаете NocoDB, то их можно спокойно заменить на Google таблицы. Структура будет та же.

Разработка

Разработка происходит непосредственно в рамках сервиса PuzzleBot.
Получить бесплатный бонус +7 дней к Креативному тарифу можно по ссылке https://puzzlebot.top/?r=Fmo8Tuss

Структура бота максимально проста
Структура бота максимально проста

NocoDB

Настраиваем интеграцию с NocoDB в настройках вашего бота. Откройте Настройки > Интеграции > NocoDB и введите токен от вашего аккаунта. Подробнее.

Создаём новую базу данных с произвольным названием. У меня она будет называться "Статьи". В ней создаём таблицу с произвольным названием. У меня она будет называться "Заявки".

Открываем таблицу "Заявки" и создаём в ней следующие столбцы:

  • user_id – число
  • name – текст
  • about – длинный текст
Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

PuzzleBot

Переменные

  • Создаём текстовую переменную about.
  • Создаём три интегрированные переменные NocoDB с почти одинаковой структурой:

1. Создаём переменную get_id с типом “Интегрированная”. В качестве интеграции выбираем "NocoDB".
Выбираем свой аккаунт, базу данных и таблицу.
В качестве столбца для вывода выбираем user_id.
2. Создаём переменные get_name и get_about аналогичным образом, меняя только столбец для вывода на name и about соответственно.

Переменные get_id, get_name, get_about
Переменные get_id, get_name, get_about

Конструктор

1. Создаём мини-приложение с названием "Оставить заявку" (название произвольное). В нём создаём форму ввода с запросом любой дополнительной информации, например портфолио обратившегося.
В дополнительных настройках формы ввода включаем галочку "Дублировать в переменную" и указываем переменную about.
Можно собирать любую информацию на ваше усмотрение.

Действия:

  • В действиях мини-приложения добавляем “Создать строку NocoDB”. Выбираем тот же аккаунт, базу данных и таблицу. В поля user_id, name, about вводим переменные {{USER_ID_TEXT}}, {{FIRST_NAME_AND_LAST_NAME_TEXT}} и {{about}} соответственно.
  • Добавляем действие “Отправить команду или условие” и вводим название той команды, которая будет отправляться вам при поступлении новой заявки. В дополнительных настройках ставим галочку “Выполнить другому пользователю” и указываем свой @username.
Пример действий
Пример действий

2. Создаём мини-приложение “Просмотр заявки” (название произвольное).В мини-приложении добавляем произвольные блоки, которые будут отображать значения переменных {{get_id}}, {{get_name}} и {{get_about}}.Создаём блок “Клавиатура” и выбираем тип “Фиксированная”. Создаём две кнопки: “Принять” и “Отклонить” — разных цветов, и пока ничего больше не меняем.

Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

3. Создаём два условия "Принять заявку" и "Отклонить заявку"В обоих условиях в качестве проверки указываем "Без проверки"В действиях создаём "Отправить команду или условие", где вводим название команды "Заявка принята" и "Заявка отклонена" для двух условий соответственно.В доп настройках действия ставим галочку на "Выполнить другому пользователю", а в появившееся поле вводим переменную {{get_id}}

В обоих условиях добавляем действие "Удалить строку NocoDB", в качестве фильтров используем соответствие user_id = {{get_id}}

В обоих условиях добавляем действие "Отправить команду или условие" и вводим "Следующая заявка" (это условие мы создадим позже)

Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

4. Создаём условие "Следующая заявка"
В проверке добавляем правило "Проверка переменной", где мы проверяем наличие значения у переменной {{get_id}}
В действиях указываем "Переход к мини-приложению" и вводим мини-приложение "Просмотр заявки"
Для случая, если правило выполнено не будет, можем добавить переход к мини-приложению в котором говорится, что все заявки просмотрены.

Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

5. Возвращаемся к мини-приложению "Просмотр заявки" > "Клавиатура". В кнопках "Принять" и "Отклонить" выбираем действие "Переход к команде или условию" и вводим условие "Принять заявку" и "Отклонить заявку" соответственно.

Кейс: Обработка и принятие группы заявок в Mini-App с базой данных в NocoDB

Публикуем изменения и наслаждаемся результатом! 💙

Автор: @RDGlessons

33