Задачи руководителя рождаются на ходу: в машине, на встрече, в коридоре. Если записать их некуда, половина теряется к вечеру. Сделаем так, чтобы задачу можно было отправить ассистенту одним сообщением, а утром он сам напомнил, что открыто.
Чему научитесь в этом уроке:
• добавить в ассистента ветку «задача:», которая записывает задачу в таблицу;
• сохранить обычные разговоры с ассистентом: всё, что не начинается со слова «задача:», по-прежнему уходит модели;
• показывать открытые задачи в утреннем брифинге.
Почему таблица 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 подключите к прежней цепочке с моделью: обычные вопросы ассистент по-прежнему понимает.

Проверьте: нажмите 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 на том же боте и опубликовал оба. Что произойдёт?
Подсказка: Вспомните урок 2.4: сколько адресов у бота.
На курсе задания проверяются автоматически. Подобрать курс
Задание. Добавьте в ассистента ветку «задача:» и покажите задачи в брифинге. Приложите: (1) скриншот сценария ассистента с развилкой; (2) скриншот переписки с ботом: задача, подтверждение, обычный вопрос и ответ на него; (3) скриншот таблицы «Задачи»; (4) скриншот брифинга с разделом задач. Принято, если: ветка срабатывает на «задача:» с любой буквы; в таблицу пишется задача без слова «задача:»; обычные вопросы по-прежнему получают ответ модели; брифинг показывает открытые задачи.
Подсказка: Задание со звёздочкой: сделайте ветку «готово: часть названия», которая находит задачу в таблице и ставит done = true. Подсказка: узел Data table → Update row(s) с условием «task contains …».
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
На курсе задания проверяются автоматически. Подобрать курс
Что дальше
Ассистент собирает встречи, почту и задачи. Пока всё работает, но однажды брифинг не придёт: кончится лимит, упадёт шлюз, Яндекс попросит новый пароль. В следующем уроке научимся узнавать о сбое раньше, чем заметим тишину.
Итог:
• задачи записываются сообщением «задача: …» в таблицу n8n;
• у бота одна точка входа, поэтому задачи — ветка ассистента, а не отдельный сценарий;
• открытые задачи каждое утро приходят в брифинге.
