Шпаргалка по формулам в конструкторе PuzzleBot и базе данных NocoDB. Это тест переноса старой HTML-страницы в WordPress так, чтобы основа статьи осталась редактируемыми Gutenberg-блоками.
Формулы для дат
Вносим дату из бота в базу NocoDB
Мы можем вносить дату в базу в текстовом формате, но тогда нам будет недоступна сортировка строк по дате. Поэтому нам нужен формат именно даты.
Чтобы внести дату из бота, записывать ее нужно в таком формате.
{{YEAR}}+"-"+{{MONTH}}+"-"+{{DAY}}
Вносим дату из блока календарь в базу NocoDB
Чтобы дата из блока календаря встала правильно в базу, нужно добавить форматирование для переменной даты календаря.
DATE_FORMAT({{data_diary}}, "Y-m-d")
Выдача даты в слайдере бота
По умолчанию дата выводится в бот формате yyyy-mm-dd. Визуально это плохо читается, поэтому меняем порядок цифр.
В примере вывод даты в слайдер.
{{= DATE_FORMAT("[[date]]", "d.m.Y") =}}
Отчет на дату прошлого дня
По умолчанию все переменные в боте со статистикой обнуляются в 3 ночи по Мск. Поэтому для простоты учета я привязываю данные к этому времени.
Чтобы внести в базу NocoDB дату правильно, нужно сначала отминусовать один день, потом отформатировать.
ADD_DAYS({{CURRENT_DATE}}, -1)
DATE_FORMAT({{DAY_BEFORE}}, "Y-m-d")
Недели и дни в боте
Номер недели
Для некоторых механик нужно вытаскивать номер недели. Можно считать номер недели от текущей даты или от даты, внесенной через календарь.
DATE_FORMAT({{CURRENT_DATE}}, "W")
DATE_FORMAT({{data_diary}}, "W")
Число дней в боте
Есть два способа считать дни в боте: через сценарий на старте или через формулу в таблице.
Где {date} — это столбец с датой входа.
(DATETIME_DIFF(NOW(), {date}, "days") + 1)
Формулы для анализа финансов в NocoDB
Средний чек
Формула берет данные из столбца с суммой всех оплат подписчика и делит на их число.
ROUND(({payments_all} / {payments_count}))
Жизненный цикл
Формула считает разницу в днях между первой и последней покупкой: сколько дней подписчик активен с точки зрения продаж.
DATETIME_DIFF({date_last_pay}, {date_1_pay}, "days")
Статус подписчика
Формула помогает увидеть общий срез по покупкам. Со статусом «Неактивный» можно настраивать отдельные механики.
IF((DATETIME_DIFF(NOW(), {date_last_pay}, "days") <= 30), "Активный", IF((DATETIME_DIFF(NOW(), {date_last_pay}, "days") > 60), "Неактивный"))
Позже
Позже сюда можно добавить еще варианты для полноценного анализа.
Плюсы NocoDB
Российские серверы
База находится на российских серверах. По закону персональные данные теперь нельзя хранить в Google таблицах.
Лимиты
Лимиты больше, чем у Google таблиц. В новых таблицах 600 запросов в минуту на проект.
Привязка к столбцам
Можно спокойно двигать столбцы в таблице, на выдачу в боте это никак не повлияет.
Интеграция
Связать таблицу с ботом стало гораздо проще и нет риска блокировки аккаунта.
Важно знать
Обновление информации
Чтобы увидеть новую информацию в таблице, нужно ее обновить. В Google можно наблюдать изменения в реальном времени, в этой базе это пока не реализовано.
Меньше формул
Привычные Google-формулы здесь не работают, но есть свой набор встроенных решений. Их можно получить у нейросети.
25 строк на развороте
На одном развороте видим только 25 строк. Чтобы увидеть больше информации, нужно листать базу.
История изменений
Если удалить таблицу, ее не получится восстановить. Можно делать ручные бэкапы или настроить автоматические через n8n.
Изменение типа переменной
Если изменить тип данных в столбце, например с текстового на дату, данные могут слететь. Лучше сохранять таблицу перед такими действиями.
Названия столбцов
Названия столбцов должны быть на английском, иначе бот может неверно обрабатывать информацию.
Это тестовая WordPress-версия старой HTML-страницы. Если визуал подойдет, CSS нужно вынести из статьи в отдельный служебный плагин EduDig Blocks.





