Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskTreker — VK-бот задач на n8n

Портфолио-проект: личный таск-трекер в ВКонтакте с диалоговым добавлением задач, дедлайнами, напоминаниями и синхронизацией с Kaiten. Собран на n8n без отдельного backend-сервера.

Демо

Меню бота, список задач с дедлайнами и кнопки завершения:

Меню и список задач в VK

Список задач и автоматическое напоминание за 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
Loading

Структура репозитория

.
├── README.md
├── LICENSE
├── docs/                          # скриншоты для README
├── workflows/
│   ├── task-tracker-vk-bot.json   # основной бот (VK + задачи + Kaiten)
│   └── vk-reminders.json          # cron-напоминания за 30 мин до дедлайна
└── .gitignore                     # локальные экспорты с секретами не коммитятся

Workflow 1: task-tracker-vk-bot

  1. Webhook VK — приём confirmation и message_new
  2. Switch — роутинг по команде (кнопки payload / текст)
  3. Состояние диалога — таблицы vk_state, vk_edit_state
  4. GigaChat + Extract task — task_content, deadline_at (ISO, Europe/Moscow)
  5. Data Table tasks — CRUD задач пользователя
  6. Build reply — текст ответа и динамическая клавиатура (до 5 кнопок «✅ TASK-id»)
  7. Kaiten — POST карточки, PATCH срока, перенос колонки при done / edit
  8. VK messages.send — ответ пользователю

Команды (кнопки и текст): new_task, list, edit, finish/done, help, cancel, /start.

Workflow 2: vk-reminders

  1. Schedule Trigger — интервал в минутах (настройте под себя)
  2. Выборка из tasks: finished = false, notified = false, дедлайн между сейчас и +30 мин
  3. VK messages.send с текстом напоминания
  4. Update — notified = true

Оба workflow должны ссылаться на одну и ту же Data Table tasks.

Схема Data Tables

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_state

Поле Тип Описание
vk_uer_id number Пользователь VK
mode string Напр. awaiting_task_text

vk_edit_state

Поле Тип Описание
vk_user_id number Пользователь VK
mode string Режим редактирования
task_id number Выбранная задача

Быстрый старт

1. n8n

  • Self-hosted или n8n Cloud с поддержкой Data Tables и community-ноды GigaChat
  • Импорт: Workflows → Import from File — оба JSON из workflows/

2. Data Tables

Создайте три таблицы по схеме выше. В каждом узле Data Table выберите свои таблицы (ID в экспорте — заглушки YOUR_*_DATATABLE_ID).

3. VK

  1. Сообщество → Работа с API → Callback API
  2. URL webhook — Production URL узла Webhook VK (после активации workflow)
  3. Строка подтверждения — в узле Respond confirmation замените YOUR_VK_CONFIRMATION_STRING
  4. Токен сообщества → в узлах VK messages.send вместо YOUR_VK_GROUP_ACCESS_TOKEN
    Рекомендуется: n8n Credentials + expression, а не query-параметр в JSON

4. GigaChat

  • Установите ноду GigaChat, создайте credential GigaChat account
  • Привяжите к узлам GigaChat Model / GigaChat Model1

5. Kaiten (опционально)

  • Замените YOUR_DOMAIN.kaiten.ru, Bearer YOUR_KAITEN_API_TOKEN
  • В узлах Kaiten: create card / move to done укажите свои board_id и column_id (в экспорте стоят 0 — замените на реальные)

6. Напоминания

  • Импортируйте vk-reminders.json, настройте интервал Schedule Trigger, активируйте workflow

Безопасность

В публичный репозиторий попадают только обезличенные workflow из папки workflows/.

Если вы раньше экспортировали JSON с токенами в открытый доступ:

  1. Отзовите токен VK и выпустите новый в настройках сообщества
  2. Перевыпустите API-токен Kaiten
  3. Не храните секреты в теле 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 — можно использовать в портфолио и учебных целях с указанием авторства.

Автор

Баженов Максим

About

VK task tracker bot on n8n — GigaChat deadlines, Data Tables, Kaiten sync, reminders

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors