Портфолио-проект: личный таск-трекер в ВКонтакте с диалоговым добавлением задач, дедлайнами, напоминаниями и синхронизацией с Kaiten. Собран на n8n без отдельного backend-сервера.
Меню бота, список задач с дедлайнами и кнопки завершения:
Список задач и автоматическое напоминание за 30 минут до дедлайна:
- Инлайн-меню в VK: добавить задачу, список, редактирование, завершение, помощь
- Диалоговые сценарии — пошаговый ввод текста задачи и выбора
TASK-{id}при редактировании - Извлечение дедлайна из свободного текста через GigaChat (Information Extractor)
- Хранение в n8n Data Tables (
tasks,vk_state,vk_edit_state) - Интеграция с Kaiten — создание карточки, срок, перенос в «Готово» при завершении
- Отдельный workflow напоминаний — раз в N минут ищет задачи с дедлайном в ближайшие 30 минут и шлёт сообщение в VK
| Компонент | Назначение |
|---|---|
| n8n | Оркестрация, webhook, расписание |
| VK Callback API | Входящие сообщения сообщества |
| GigaChat | Парсинг текста задачи и дедлайна |
| n8n Data Tables | Персистентность без внешней БД |
| Kaiten API | Канбан-доска (опционально) |
flowchart LR
subgraph vk [VK]
User[Пользователь]
VKApi[VK API]
end
subgraph n8n [n8n]
WH[Webhook VK]
Bot[task-tracker-vk-bot]
Rem[vk-reminders]
DT[(Data Tables)]
GC[GigaChat]
KT[Kaiten API]
end
User --> VKApi
VKApi --> WH
WH --> Bot
Bot --> GC
Bot --> DT
Bot --> KT
Bot --> VKApi
Rem --> DT
Rem --> VKApi
.
├── README.md
├── LICENSE
├── docs/ # скриншоты для README
├── workflows/
│ ├── task-tracker-vk-bot.json # основной бот (VK + задачи + Kaiten)
│ └── vk-reminders.json # cron-напоминания за 30 мин до дедлайна
└── .gitignore # локальные экспорты с секретами не коммитятся
- Webhook VK — приём
confirmationиmessage_new - Switch — роутинг по команде (кнопки payload / текст)
- Состояние диалога — таблицы
vk_state,vk_edit_state - GigaChat + Extract task —
task_content,deadline_at(ISO, Europe/Moscow) - Data Table
tasks— CRUD задач пользователя - Build reply — текст ответа и динамическая клавиатура (до 5 кнопок «✅ TASK-id»)
- Kaiten — POST карточки, PATCH срока, перенос колонки при
done/ edit - VK messages.send — ответ пользователю
Команды (кнопки и текст): new_task, list, edit, finish/done, help, cancel, /start.
- Schedule Trigger — интервал в минутах (настройте под себя)
- Выборка из
tasks:finished = false,notified = false, дедлайн между сейчас и +30 мин - VK messages.send с текстом напоминания
- Update —
notified = true
Оба workflow должны ссылаться на одну и ту же Data Table
tasks.
| Поле | Тип | Описание |
|---|---|---|
vk_uer_id |
number | VK from_id (опечатка в экспорте сохранена для совместимости) |
task_content |
string | Текст задачи |
deadline_at |
dateTime | Срок |
finished |
boolean | Выполнена |
notified |
boolean | Напоминание уже отправлено |
kaiten_card_id |
string | ID карточки Kaiten |
| Поле | Тип | Описание |
|---|---|---|
vk_uer_id |
number | Пользователь VK |
mode |
string | Напр. awaiting_task_text |
| Поле | Тип | Описание |
|---|---|---|
vk_user_id |
number | Пользователь VK |
mode |
string | Режим редактирования |
task_id |
number | Выбранная задача |
- Self-hosted или n8n Cloud с поддержкой Data Tables и community-ноды GigaChat
- Импорт: Workflows → Import from File — оба JSON из
workflows/
Создайте три таблицы по схеме выше. В каждом узле Data Table выберите свои таблицы (ID в экспорте — заглушки YOUR_*_DATATABLE_ID).
- Сообщество → Работа с API → Callback API
- URL webhook — Production URL узла Webhook VK (после активации workflow)
- Строка подтверждения — в узле
Respond confirmationзаменитеYOUR_VK_CONFIRMATION_STRING - Токен сообщества → в узлах
VK messages.sendвместоYOUR_VK_GROUP_ACCESS_TOKEN
Рекомендуется: n8n Credentials + expression, а не query-параметр в JSON
- Установите ноду GigaChat, создайте credential GigaChat account
- Привяжите к узлам
GigaChat Model/GigaChat Model1
- Замените
YOUR_DOMAIN.kaiten.ru,Bearer YOUR_KAITEN_API_TOKEN - В узлах
Kaiten: create card/move to doneукажите своиboard_idиcolumn_id(в экспорте стоят0— замените на реальные)
- Импортируйте
vk-reminders.json, настройте интервал Schedule Trigger, активируйте workflow
В публичный репозиторий попадают только обезличенные workflow из папки workflows/.
Если вы раньше экспортировали JSON с токенами в открытый доступ:
- Отзовите токен VK и выпустите новый в настройках сообщества
- Перевыпустите API-токен Kaiten
- Не храните секреты в теле workflow — используйте Credentials n8n
Локальные файлы Task_treker Version 2.0.json и VK Reminders.json в корне добавлены в .gitignore.
- n8n 1.x+ (Data Tables, Webhook, Schedule, Code node)
- Аккаунт VK (сообщество с Callback API)
- GigaChat API (для парсинга дедлайнов)
- Kaiten (опционально)
MIT — можно использовать в портфолио и учебных целях с указанием авторства.
Баженов Максим
- GitHub: @bazhen82
- Телефон: +7 967 918-25-61
- Email: bazhenov.maxim@gmail.com

