Андрей globall.dev zallord Сбер ID
Telegram-боты, Mini App, SaaS и веб-сервисы под ключ
Рейтинг
1 756
№ 571 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
7 лет
На сайте с
2019 года
Юридический статус
ИП
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Бот напоминаний на Google Таблицах - события из таблицы прямо в Telegram

Используемые навыки API Google Python Telegram API Скрипты Google Apps Чат-бот

Описание

Частный заказчик вёл рабочий график в Google Таблице и просил напоминания из неё в Telegram.
В таблице лежали даты - продления, оплаты, отчёты, звонки. Всё это держалось в голове.
Календарь он пробовал, но данные всё равно жили в таблице, а дублировать одно и то же в двух местах бросил через неделю.
Одна пропущенная дата стоила денег - слетело продление и сервис отключили в неудачный момент.
Условие поставил такое: таблицу не переделываем, колонки остаются как есть, бот подстраивается под то, что уже ведётся.

Решение

Сделал бота на Python и aiogram 3, к таблице подключился через Google Sheets API по сервисному аккаунту - заказчик выдал доступ на его почту.
Колонки не переименовывались, бот читает шапку и сам находит, где дата, где название события, где ответственный.
Опрос таблицы по расписанию через APScheduler, раз в час. Поправил строку - через час бот уже знает новое.
Напоминания за N дней и в день события, N задаётся отдельной колонкой в самой таблице, то-есть у каждой строки свой срок.
Повторяющиеся события - раз в месяц, раз в квартал, раз в год. Следующую дату бот считает сам после отметки.
В сообщении кнопка сделано. Нажатие проставляет дату и отметку обратно в ту же строку, напоминание больше не приходит.
Отложить на день или на неделю тоже кнопкой.
Дубли закрыл отдельно - отправленные напоминания пишутся в локальную базу ключом строка плюс дата, перезапуск бота их повторно не шлёт.
Битая или пустая ячейка с датой бота не роняет, такая строка уходит владельцу в отчёт об ошибках.
Часовой пояс и время утренней сводки задаются в настройках, сводка на день приходит одним сообщением.

Результат

График остался в таблице, а держать даты в голове больше не нужно - бот приходит сам и приносит то, что на сегодня.
Отметка о выполнении возвращается в таблицу, то-есть второго места учёта не появилось.
Периодичность и сроки заказчик правит прямо в ячейках, без обращений ко мне.
Продления и оплаты перестали проскакивать, за первые месяцы ни одной пропущенной даты.
Утренняя сводка заменила ручной просмотр таблицы, день начинается с одного сообщения со всеми датами.
Позже докрутил вторую таблицу под личные даты и дублирование напоминания в общий чат, чтобы его видел не один владелец.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Telegram-игра для канала - короткие раунды, энергия и лидерборд среди друзей
Telegram-игра для канала - короткие раунды, энергия и лидерборд среди друзей
10
Веб-разработка и IT Магазин косметики в Telegram - подбор по типу кожи, состав и повторный заказ
Магазин косметики в Telegram - подбор по типу кожи, состав и повторный заказ
16
Веб-разработка и IT Магазин электроники в Telegram - характеристики, сравнение моделей и рассрочка
Магазин электроники в Telegram - характеристики, сравнение моделей и рассрочка
17
Веб-разработка и IT Mini App для заказа вывоза мусора - объём контейнера, адрес и дата вывоза
Mini App для заказа вывоза мусора - объём контейнера, адрес и дата вывоза
17