Как настроить поиск данных по запросу пользователя в Google Sheets и NocoDB в боте на PuzzleBot

В этой инструкции разберём, как настроить механику для поиска данных в таблице по значению, введённому пользователем вручную (например, название, email или ID), и вывода результата.

Такая механика может использоваться для:
  • поиска товаров по названию модели (с проверкой наличия и выводом информации)
  • проверки заказов (например, по номеру или email)
  • работы с базой знаний
  • просмотра статусов (заказ сформирован, передан в доставку, доставлен и т.д.)
Как это будет работать
Пользователь вводит значение (например, название модели, email или ID).
Введённое значение используется для поиска в таблице по соответствующему столбцу.

  • если совпадение найдено — бот выводит данные
  • если совпадение не найдено — бот сообщает об этом
Таблица с товарами
на этом примере разберём настройку
В таблице возьмём следующие поля:
• Model - название модели
• Description - описание
• Price - цена
• Availability - наличие
• Quantity - количество

Запрашиваем у пользователя название модели — поиск выполняется по столбцу Model.
Подготовка источника данных
Рассмотрим настройку поиска данных на примере работы с Google Sheets и NocoDB.

Логика в обоих вариантах одинакова: выполняется поиск по введённому значению и выводится результат.

Выберите инструмент, с которым вам удобнее работать.
Интеграция Google Sheets с PuzzleBot
В PuzzleBot перейдите в раздел Настройки Интеграции Google Sheets и нажмите кнопку «SIGN IN WITH GOOGLE» — откроется страница на которой нужно выбрать аккаунт.

Для интеграции необходимо принять условия и предоставить запрашиваемые разрешения.

После успешного подключения вы увидите добавленный Google-аккаунт в списке интеграций.
Интеграция NocoDB с PuzzleBot
В PuzzleBot перейдите в раздел Настройки Интеграции NocoDB и нажмите кнопку «Открыть» — откроется страница регистрации.

Зарегистрируйтесь → перейдите в Настройки аккаунтаTokens, создайте API-токен и скопируйте его.

Вернитесь в PuzzleBot, вставьте токен в разделе интеграции, сохраните изменения и активируйте галочку быстрого доступа «Добавить вкладку NocoDB в меню» — в меню конструктора появится быстрый доступ к таблицам.

Подготовка таблицы

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

Настройка логики

В PuzzleBot перейдите в раздел Конструктор и поэтапно выполните настройку:

1. Создание команды «Запрос пользователя»

Создайте обычную команду - это будет точка входа, где пользователь вводит значение.

Добавьте блок Форма ввода и настройте его:
  • Текст: Какой товар вы хотите заказать?
  • Тип ввода: Отправка сообщения
  • Маска ввода: Текст

Дополнительно (по желанию) настройте реакцию на ответ пользователя:
  • Реакция: Ищу информацию…
  • Автоудаление сообщения: через 2 секунды

Сохраните команду.

2. Создание команды «Вывод из Google Sheets»

Создайте новую обычную команду - она будет отвечать за вывод данных, подходящих под запрос пользователя.

Добавьте блок Слайдер и настройте его:
  • Тип: Google Sheets
  • Вставьте ссылку на таблицу
  • Укажите нужный лист (если их несколько)

Настройка поиска:
  • Столбец для поиска: Model
  • Формат значения: текст
  • Тип условия: Сообщение содержит - позволит находить даже неполные совпадения (например, если пользователь ввёл не полное название товара).
  • Фразы: Model (переменная, которая хранит запрос пользователя)

Дополнительные настройки:
  • Сортировка по столбцу: можно оставить Не задано или выбрать нужный столбец
  • Сортировка ответов: По возрастанию или По убыванию - установите по необходимости
  • Вариант поиска:
• Все - выводит все совпадения
• Первый найденный - выводит только одно значение
• Задать количество - выводит указанное количество записей (можно использовать для вывода топа продаж)

Подстановка:
  • Выберите тип блока, в котором будет формироваться ответ (в примере используется Текст).
  • Заполните шаблон ответа, используя переменные из таблицы:

📱 Модель: [[A]]
📝 Описание: [[B]]

💰 Цена: [[C]]
📦 Наличие: [[D]]
🔢 Количество: [[E]]

Сохраните команду.

3. Создание команды «Нет данных»

Создайте новую Обычную команду - она будет отправляться, если бот не найдёт совпадений в таблице.

Добавьте блок Текст и укажите сообщение, например:
К сожалению, такой модели нет.

Дополнительно можно предложить пользователю ознакомиться с доступными товарами.

Для этого добавьте блок Слайдер.

Настройка блока выполняется аналогично пункту «Создание команды “Вывод из Google Sheets”», но вместо поиска по введённому значению используйте фильтрацию по наличию:

  • Столбец: Availability
  • Условие: Полное совпадение
  • Значение: в наличии

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

4. Создание команды условия «Проверка наличия»

Создайте новую команду Условие - она будет проверять наличие данных в таблице:
  • Если совпадения найдены - будет отправляться команда «Вывод из Google Sheets»
  • Если совпадений нет - будет отправляться команда «Нет данных»

Настройка правила:
  • Тип проверки: раздел Google Spreadsheets -> Проверить строку
  • Вставьте ссылку на таблицу
  • Укажите нужный лист

Настройка поиска:
  • Столбец для поиска: Model
  • Формат значения: текст
  • Тип условия: Сообщение содержит
  • Фразы: Model (переменная, которая хранит запрос пользователя)

Тип действия: Отправить команду или условие -> «Вывод из Google Sheets»

В исключающем правиле настройте отправку команды «Нет данных»

Сохраните команду.

Важно
Обязательно используйте блок условия перед выводом данных.
Если сразу направить пользователя в блок Google Sheets без проверки: при отсутствии совпадений бот не вернёт ответ
Проверка позволяет корректно обработать оба сценария: и успешный поиск, и отсутствие результата.


* Настройка для NocoDB выполняется аналогично: меняется только источник данных, логика остаётся той же.
Используйте эту инструкцию как основу для настройки механики поиска данных в своём боте на платформе PuzzleBot, адаптируя её под свои задачи.