Создаем корпоративную библиотеку с использованием no-code инструментов

Мы в Appbooster начали собирать корпоративную библиотеку четыре года назад. Тогда все книги помещались на одной полке, и мы справлялись без библиотекаря. Росла компания, росла библиотека, и сложностей становилось все больше: хочешь взять книгу, а её нет на полке, и у кого она — непонятно.

В итоге мы начали искать решение, которое позволило бы автоматизировать библиотеку, а точнее дало бы возможность:

  • Просматривать весь список книг с актуальными статусами
  • Просматривать страницу книги с основной информацией
  • Брать или сдавать книгу
  • Ставить оценки
  • Писать отзывы
  • Если книга занята, вставать в очередь и получать уведомления об освобождении книги
  • Просматривать, что на руках у тебя
  • Получать уведомления о том, что книгу нужно вернуть

И самое главное — чтобы такое решение всегда было под рукой. Так как мы работаем в сфере мобильного маркетинга, приложение казалось идеальным вариантом. В один из внутренних хакатонов эта идея даже начала прорабатываться, но до готового приложения дело так и не дошло. Мы оценили затраты: потребовалось бы два мобильных клиента + бэкенд, что не очень дешево для внутреннего инструмента.

Телеграм-бот

Идея создания бота в Telegram для библиотеки пришла мне еще года два назад. Я честно пыталась настроить и заставить его работать с помощью Botfather, но построить нормальный бэкенд для бота у меня не вышло. Идея затухла.

Новый интерес к ботам родился после прочтения статьи моего коллеги Саши Субботина о том, как создать бота с использованием Webhooks и сервиса автоматизации Integromat.

На разработку ушло несколько часов и спустя пару итераций получился бот, который смог закрыть часть поставленных задач, а именно:

✅ Брать или сдавать книгу

✅ Если книга занята, узнать у кого она

✅ Смотреть, какие книги у тебя на руках

Дополнительно бот мог:

✅ Уведомлять других людей об активности с книгами в корпоративный Slack

✅ Присылать книги с определенным тэгом (например, #продажи )

Связка работала таким образом: пользователь отправляет боту сообщение, которое через webhook попадает в Integromat. Там, в зависимости от наличия ключевых слов в тексте, срабатывает один из сценариев.

Очень важно учесть, что бот не может вести диалог, то есть все команды должны быть «одноразовыми» и очень четкими, ведь переспросить бот также не может.

В качестве бэкенда выступила таблица Google Sheet со списком всей имеющейся у нас литературы.

В результате получилось вот такое дерево с разными сценариями в зависимости от команды боту.

Дерево сценариев взаимодействия с ботом
Дерево сценариев взаимодействия с ботом

Базовые задачи бот закрывал — решение точно было лучше, чем то, что мы использовали. Но больше половины задач (просмотр всего списка, оценки, отзывы, уведомления), к сожалению, оставались не решёнными.

Диалог с ботом
Диалог с ботом

Glide

Мода на no-code инструменты уже довольно давно гуляет по отрасли, но про Glide (сервис создания PWA-приложений на основе Google Sheets) я узнала только этим летом. Так как PWA кроссплатформенны, а Google Sheets заменяет базу данных, которая является основой библиотеки, сервис подошел как нельзя лучше для тех задач, которые не мог закрыть бот в Telegram.

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

Общий список книг и страница отдельной книги
Общий список книг и страница отдельной книги

Также «из коробки» в Glide имеются комментарии: включаем эту опцию и получаем возможность оставить отзыв на книгу. Сейчас я отказалась от такого решения, так как оно не позволяет понять, положительный отзыв или нет, и заменила его на форму сбора отзыва как в App Store. Все отзывы записываются на отдельный лист таблицы, связываются с книгой по названию (благодаря функции Relation) и отображаются на странице книги. На основе оставленных оценок можно рассчитать рейтинг книги среди коллег и также выводить его в любом удобном виде.

Оставляем отзыв на книгу (пример)

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

Glide & Zapier

У Glide есть возможность завести на кнопку любой «зап» сервиса автоматизации Zapier, который по сути является аналогом ранее используемого Integromat. На этом этапе бесплатный функционал уже не помогал — чтобы получить возможность делать многоступенчатые цепочки запов, нужно было оформить подписку, зато мы получили заветные кнопки "Беру книгу" и "Сдаю книгу" прямо в приложении.

Так как в Zapier есть интеграция со Slack, мы смогли решить задачу напоминаний. При срабатывании сценария «Беру книгу» зап не просто выполняет действия бота (заносит информацию в таблицу), но также ждет месяц, а затем отправляет в личные сообщения в Slack напоминание о том, что книгу пора вернуть на полку.

Сообщения от бота в корпоративном Slack
Сообщения от бота в корпоративном Slack

Подытожим, что умеет приложение Glide в связке с Zapier:

✅ Посмотреть весь список книг с актуальными статусами

✅ Просмотреть страницу книги с основной информацией

✅ Взять или сдать книгу

✅ Поставить оценку

✅ Написать отзыв

✅ Если книга занята, узнать у кого она

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

✅ Получать уведомление о том, что книгу нужно вернуть

Дополнительно:

✅ Отзывы отправляются в общий канал в Slack для обсуждения

✅ Поиск, сортировка и фильтрация

✅ Раздел «Избранное»

✅ Вход через корпоративный Gmail аккаунт

Пример использования приложения

Как видно, всё, что планировалось, удалось реализовать. Но самое главное — наши базовые потребности не предел, и есть большие возможности для дальнейшего развития такого небольшого, но важного внутреннего продукта. А что из no-code инструментов вы используете в своей компании?

Если вам будет интересно внедрить такое решение у себя в компании и у вас возникнут вопросы по реализации, пожалуйста, пишите мне на почту: irina@appbooster.com, буду рада помочь.

88
4 комментария

А как вы комплектуете библиотеку, добавляете новые книги?

1

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

1