В статье приведены возможности связи Integromat и Google Sheets, а также инструкция подключения.
Google Sheets — таблица данных, она же БД (база данных). Очень полезный инструмент позволяющий собирать/хранить/обрабатывать данные любого типа с возможностью дальнейшего взаимодействия с этими данными. Google Sheets относится к многопользовательской системе — т.е. это система в которых к базе данных могут получить доступ сразу несколько пользователей.
Для чего вам точно понадобится БД?
- Сбор пользовательской информации (ФИО, user_id, ответы, статистика, отчетность);
- Взаимодействие с другими системами (например, функцию Регистрации сделать без БД не удастся, потому что нужно где-то фиксировать зарегистрированных пользователей и, время от времени, обращаться к таблице авторизованных пользователей для дальнейшей обработки: удаление, редактирование и т.д.);
Стоит отметить, что кроме базовой функции хранить, таблицы способны производить различные действия внутри своей платформы. Например, в таблицу месячной отчетности (готовая структура) достаточно добавить ответ пользователя (из бота), тем самым автоматизировав какой-то процесс работы или задействовать необходимые плагины (расширения). Иными словами — БД способна существовать как самостоятельная инстанция и как часть сложной системы.
У нас, в Базе знаний, уже существует статья о том как Интегрировать формы ввода с таблицей Google Sheets через Integromat. Возьмем пример посложнее и реализуем систему регистрации/авторизации в боте.

Способ выполнения:
- Привязываем вебхук;
- Предварительный запуск;
- Получаем наши данные из формы (маленький круг - индикатор с цифрой 1);
- Добавляем в связку модули Google Sheets и Telegram Bot (заранее создайте таблицу для работы с заголовками: USER_ID, USERNAME, NAME, CATEGORY, SOURCE и другие нужные вам поля);
- В конструкторе Puzzlebot:
- Создаем форму соглашения, чтобы мы получили первичную информацию для занесения в БД (user_id, Имя пользователя и т.д.). В связке с Инлайн командами переходы выглядят куда привлекательней;
- Две обычные команды: Регистрация и Авторизация
- Регистрация. Этой командой мы, посредством Форм, собираем все необходимые данные от пользователя: ФИО, откуда узнали о нас и т.д.
- Авторизация. Нужна лишь для того, чтобы пользователь, который повторно запустит бота (/start), будуче зарегистрированным, не проходил повторно процедуру регистрации. Т.е., кнопка авторизации производит проверку в БД и направляет к основному контенту: например, Меню бота.
- Переходим в Integromat (у вас уже должен быть привязан вебхук):
- Добавляем модуль Google Sheets, триггер Search Rows (ниже есть описание этого триггера);
- Подключаемся к таблице Spreadsheet и Sheet;
- В Column range (диапазон колонн) задаем A-Z (в каком конкретно диапазоне искать);
- В первом выподающем списке блока Filter выбираем USER_ID (А) — производим поиск по id пользователя, т.к. это значение уникально; во вторую графу перетаскиваем полученную от бота переменную— user.id (бордовый кубик). Между графами выставляем параметр Equal to (равный к.../такой же как...). Данный фильтр сверяет ID в БД и пользователя, который обратился к боту.
- Добавляем 1 модуль Router (кликаем 1 раз). С этого момента у нас начинается проверка условий. В фильтре, между Google Sheets и Router указываем: {{1.command_name}} — Equal to — Регистрация (название команды в конструкторе) + (Add OR rule) + {{1.command_name}} — Equal to — Регистрация.
- Регистрация:
- Пользователя нет в БД. Добавляем модуль Telegram Bot с содержанием (в Text) "Регистрация успешно пройдена ✅". Внизу окна настроек поставьте птичку напротив Show advanced settings, а в пункте Enter/Assemble the Reply Markup Field выбираем вторую строку. Далее, Keyboard — Add item x2 — Меню (в графе Text - так мы добавили кнопку на команду Меню). Не забудьте выбрать Yes в Flag if to Resize Keyboard Vertically for Optimal Fit. Остался еще один модуль (сразу после Telegram Bot) Google Sheets - Add a Row, где мы перетаскиваем все переменные от пользователя в колонны БД. В фильте (между Router и Telegram Bot) указываем: USER_ID (A) (зеленый кубик) — Does not exist (не существует) + (Add AND rule) + {{1.command_name}} — Equal to — Регистрация.
- Пользователя есть в БД. Добавляем модуль Telegram Bot с содержанием (в Text) "Эй, ты уже проходил регистрацию.". Внизу окна настроек поставьте птичку напротив Show advanced settings, а в пункте Enter/Assemble the Reply Markup Field выбираем вторую строку. Далее, Keyboard — Add item x2 — Меню (в графе Text - так мы добавили кнопку на команду Меню). Не забудьте выбрать Yes в Flag if to Resize Keyboard Vertically for Optimal Fit. В фильте (между Router и Telegram Bot) указываем: USER_ID (A) (зеленый кубик) — Exists (существует) + (Add AND rule) + {{1.command_name}} — Equal to — Регистрация.
- Авторизация. Добавляем 1 модуль Router (кликаем 1 раз). В фильтре, между Router и Router указываем: {{1.forms[].variable}} — Equal to — authForm (название переменной формы в конструкторе).
- Пользователя нет в БД. Добавляем модуль Telegram Bot с содержанием (в Text) "Сначала пройди Регистрацию 👉🏻". Внизу окна настроек поставьте птичку напротив Show advanced settings, а в пункте Enter/Assemble the Reply Markup Field выбираем вторую строку. Далее, Keyboard — Add item x2 — Регистрация (в графе Text - так мы добавили кнопку на команду Регистрации). Не забудьте выбрать Yes в Flag if to Resize Keyboard Vertically for Optimal Fit. В фильте (между Router и Telegram Bot) указываем: USER_ID (A) (зеленый кубик) — Does not exist (не существует).
- Пользователя есть в БД. Добавляем модуль Telegram Bot с содержанием (в Text) "Привет, друг, проходи!". Внизу окна настроек поставьте птичку напротив Show advanced settings, а в пункте Enter/Assemble the Reply Markup Field выбираем вторую строку. Далее, Keyboard — Add item x2 — Меню (в графе Text - так мы добавили кнопку на команду Меню). Не забудьте выбрать Yes в Flag if to Resize Keyboard Vertically for Optimal Fit. В фильте (между Router и Telegram Bot) указываем: USER_ID (A) (зеленый кубик) — Exists (существует).
Описание триггеров Google Sheets
Триггеры в Integromat — это некий модульный функционал, например: создание таблицы или удаление листа.
Чтобы не повторяться, перечислим основные настройки:
- Connection: Важно! Перед дальнейшей работой подключитесь к своему аккаунту Gooogle (нужно дать согласие на интеграцию)
- Mode: режим выбора таблицы (сопоставление или ручной ввод)
- Ручной ввод полезен, например, когда создается новая электронная таблица в сценарии, и вы хотите добавить данные в эту таблицу из сценария.
- Spreadsheet: выбор электронной таблицы
- Sheet: выбор определенного листа в таблице
Действия:
- Add a Row — добавить новую строку в нижнюю часть таблицы.
- Update a Row — обновить строку.
- Clear a Row — очистить значение из определенной строки.
- Delete a Row — удалить определенною строку.
- Get a Cell — получить конкретную ячейку.
- Update a Cell — обновить конкретную ячейку.
- Clear a Cell — очистить конкретную ячейку.
- Add a Sheet — добавить новый лист.
- Create a Spreadsheet — создать новую таблицу.
- Perform a Functional - Responder — возвращает обработанные данные в результате работы расширения Integromat в Google Sheets.
- Delete a Sheet — удалить определенный лист.
- Make an API Call — выполняет произвольный авторизованный вызов API.
Поиск:
- Search Rows — возврат результата в соответствии заданным критериям.
- Search Rows (Advanced) — возврат результата в соответствии заданным критериям (этот модуль не возвращает номер строки).
- Get Range Value — возврат содержимого в диапазоне.
- List Sheets — получить список всех листов из таблицы.