Задачи: записываем из Telegram, видим в брифинге

Задачи руководителя рождаются на ходу: в машине, на встрече, в коридоре. Если записать их некуда, половина теряется к вечеру. Сделаем так, чтобы задачу можно было отправить ассистенту одним сообщением, а утром он сам напомнил, что открыто.

Чему научитесь в этом уроке:
• добавить в ассистента ветку «задача:», которая записывает задачу в таблицу;
• сохранить обычные разговоры с ассистентом: всё, что не начинается со слова «задача:», по-прежнему уходит модели;
• показывать открытые задачи в утреннем брифинге.

Почему таблица n8n, а не CRM

Задачи можно хранить в CRM (системе учёта клиентов и сделок), например в Битрикс24. Мы проверили этот путь при подготовке курса: в Битрикс24 подключение внешних программ через вебхук (адрес, на который программа отправляет данные) доступно только с платной подпиской «BitrixGPT + Маркетплейс», от 500 ₽ в месяц по акции на 2026 год (справка Битрикс24). У Яндекс Таблиц открытого доступа для программ мы не нашли. Поэтому в курсе задачи живут во встроенной таблице n8n: она бесплатная и уже знакома вам по письмам.

Если у вас уже есть платный Битрикс24 или amoCRM, принцип тот же: вместо узла Data table поставьте узел HTTP Request, который отправляет задачу на адрес вебхука вашей CRM. Мы этот путь руками не проходили, поэтому начните с таблицы n8n, а CRM подключите самостоятельно по документации своей CRM, когда сценарий с таблицей заработает.

Шаг 1. Таблица задач

Overview → Data tables → Create data table, название «Задачи», четыре колонки: task (String), done (Boolean), created (Date) и closed_at (Date). Даты понадобятся для отчёта за неделю в уроке 4.4.

Шаг 2. Ветка «задача:» в ассистенте

Вспомните урок 2.4: у бота один адрес, и сообщения получает только один сценарий. Поэтому задачи мы не делаем отдельным ботом, а добавляем развилку в ассистента из урока 2.5. Откройте его сценарий и после Telegram Trigger вставьте узел If:

  • в условие слева впишите {{ ($json.message.text || '').toLowerCase() }}. Запись || '' нужна для голосовых, стикеров и фото: у них нет текста, и без неё узел упадёт;
  • оператор String → starts with, справа задача:.

К выходу true подключите Data table → Insert row в таблицу «Задачи»:

task:    {{ $json.message.text.slice(7).trim() }}
done:    false
created: {{ $now }}

slice(7) отрезает первые 7 знаков, то есть слово «задача:», и оставляет саму задачу. После записи добавьте Telegram → Send a text message: Chat ID {{ $('Telegram Trigger').item.json.message.chat.id }}, текст Записал задачу: {{ $json.task }}.

Выход false подключите к прежней цепочке с моделью: обычные вопросы ассистент по-прежнему понимает.

Сценарий ассистента в n8n: Telegram Trigger, развилка «Это задача?», ветка true — «Записать задачу» и «Подтвердить», ветка false — Basic LLM Chain с моделью и отправка ответа в Telegram.

Проверьте: нажмите Execute workflow и напишите боту задача: позвонить поставщику до пятницы. Должен прийти ответ «Записал задачу: позвонить поставщику до пятницы», а в таблице появиться строка.

Шаг 3. Задачи в брифинге

В сценарии брифинга после узла «Новые письма» добавьте Data table → Get row(s) с именем «Открытые задачи»: таблица «Задачи», условие done равно false, Return All, а в Settings Always Output Data и Execute Once, как у писем. В коде «Собрать данные» замените строку const tasks = []; на:

const tasks = $('Открытые задачи').all().map(i => i.json).filter(t => t.task);

Запустите брифинг. На прогоне в конце сводки появился раздел «Открытые задачи» с записанной задачей.

Отметить задачу сделанной пока можно только в самой таблице: откройте её в n8n и поставьте галочку в колонке done и дату в колонке closed_at. Команду «готово: …» прямо из Telegram вы сможете сделать сами по образцу ветки «задача:», это задание со звёздочкой.

Если не получилось

  • Ассистент на «Задача: …» отвечает как на вопрос. Проверьте, что в условии стоит toLowerCase(): без него «Задача» с большой буквы не совпадёт с «задача».
  • В таблицу пишется «задача: позвонить…» целиком. Не добавлено slice(7).
  • Задачи не попадают в брифинг. Узел называется не «Открытые задачи», а код ищет именно это имя.
  • Бот перестал отвечать на обычные вопросы. Выход false у If не подключён к цепочке с моделью.

Контрольный вопрос. Руководитель сделал для задач второй сценарий со своим Telegram Trigger на том же боте и опубликовал оба. Что произойдёт?

АОба сценария будут получать все сообщения
БСообщения будет получать только один сценарий, второй замолчит
ВTelegram создаст второго бота
ГЗадачи будут записываться дважды

Подсказка: Вспомните урок 2.4: сколько адресов у бота.

На курсе задания проверяются автоматически. Подобрать курс

Задание. Добавьте в ассистента ветку «задача:» и покажите задачи в брифинге. Приложите: (1) скриншот сценария ассистента с развилкой; (2) скриншот переписки с ботом: задача, подтверждение, обычный вопрос и ответ на него; (3) скриншот таблицы «Задачи»; (4) скриншот брифинга с разделом задач. Принято, если: ветка срабатывает на «задача:» с любой буквы; в таблицу пишется задача без слова «задача:»; обычные вопросы по-прежнему получают ответ модели; брифинг показывает открытые задачи.

Подсказка: Задание со звёздочкой: сделайте ветку «готово: часть названия», которая находит задачу в таблице и ставит done = true. Подсказка: узел Data table → Update row(s) с условием «task contains …».

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Подобрать курс

Что дальше

Ассистент собирает встречи, почту и задачи. Пока всё работает, но однажды брифинг не придёт: кончится лимит, упадёт шлюз, Яндекс попросит новый пароль. В следующем уроке научимся узнавать о сбое раньше, чем заметим тишину.

Итог:
• задачи записываются сообщением «задача: …» в таблицу n8n;
• у бота одна точка входа, поэтому задачи — ветка ассистента, а не отдельный сценарий;
• открытые задачи каждое утро приходят в брифинге.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева