Почта — главный пожиратель утра. Из двадцати новых писем ответа сегодня требуют два, остальное — рассылки и реклама. Ассистент может сделать первую сортировку за вас. На прогоне этого урока первым тестовым письмом оказалось предложение «вывести сайт в ТОП», и модель сразу назвала его спамом.
Чему научитесь в этом уроке:
• подключить почту Яндекса к n8n по паролю приложения;
• складывать новые письма в таблицу n8n, чтобы брифинг читал их по расписанию;
• добавить в брифинг письма, на которые нужно ответить сегодня.
Почему письма сначала копятся в таблице
Хочется сделать просто: в 8:00 сценарий заходит в почту и забирает новое. Но почтовый узел n8n так не умеет. Он работает как дверной звонок: срабатывает, когда в папке появляется письмо, и не умеет «сходить и посмотреть» по расписанию. Поэтому сделаем два сценария:
- «Почта в таблицу» слушает папку и каждое новое письмо записывает строкой в таблицу n8n.
- Брифинг в 8:00 читает из таблицы письма, которых ещё не было в сводке, а после отправки отмечает их.
Таблица здесь как лоток для входящих бумаг на столе секретаря: письма падают в лоток в течение дня, а утром секретарь разбирает лоток целиком.
Шаг 1. Таблица для писем
В n8n откройте Overview → Data tables → Create data table. Назовите таблицу «Письма для брифинга» и добавьте колонки:
sender, тип String: отправитель;subject, String: тема;excerpt, String: начало письма;received, Date: когда пришло;in_briefing, Boolean: было ли уже в брифинге.
Шаг 2. Сценарий «Почта в таблицу»
Создайте новый сценарий и добавьте узел Email Trigger (IMAP). В Credential to connect with выберите Create new credential и заполните:
- User: ваш адрес Яндекса целиком;
- Password: пароль приложения из урока 3.1;
- Host:
imap.yandex.ru, Port:993, SSL/TLS: включено.
Нажмите Save. Надпись «Connection tested successfully» означает, что n8n вошёл в почту.

В самом узле:
- Mailbox Name:
Тест-ассистент, папка по-русски работает; - Action: Nothing, чтобы ассистент не отмечал письма прочитанными и ничего в почте не менял;
- Format: Resolved. В режиме Simple n8n не отдаёт тему письма, а у писем с оформлением пропадает текст. Мы наткнулись на это на прогоне.
После почтового узла добавьте Data table → Insert row, выберите таблицу «Письма для брифинга» и заполните колонки выражениями:
sender: {{ $json.from.text }}
subject: {{ $json.subject }}
excerpt: {{ ($json.text || ($json.html || '').replace(/<[^>]+>/g, ' ')).replace(/\s+/g, ' ').trim().slice(0, 500) }}
received: {{ $json.date }}
in_briefing: false
Выражение в excerpt берёт первые 500 знаков письма, а если в письме только оформленный текст, убирает из него служебную разметку. Модели этого хватает, чтобы понять, о чём письмо, а за лишний текст вы бы платили.
Шаг 3. Проверка: письмо должно «прийти»
Нажмите Execute workflow: узел начнёт ждать письмо. Если за пару минут письмо не поймано, не ждите: опубликуйте сценарий и проверьте в нём. Ожидание в редакторе у нас на прогоне однажды зависло. Теперь важная деталь, которую мы выяснили на прогоне: узел срабатывает, когда письмо появляется в папке. Пометка «непрочитанное» его не будит. Поэтому для проверки перенесите письмо из папки во «Входящие» и обратно или отправьте себе новое письмо и перенесите его в папку.
Не пересылайте тестовые письма себе. У пересланного письма отправителем становитесь вы. На прогоне модель назвала руководителя автором спама, потому что он переслал себе рекламу. Переносите письма, а не пересылайте.
Когда в таблице появилась строка с темой и текстом, нажмите Publish. Теперь сценарий слушает папку постоянно и записывает каждое новое письмо.

Шаг 4. Письма в брифинге
Откройте сценарий брифинга из урока 3.2. Между узлами «Встречи на сегодня» и «Собрать данные» вставьте узел Data table → Get row(s) и назовите его «Новые письма»:
- таблица «Письма для брифинга», условие
in_briefingравноfalse, Return All включено; - в Settings узла включите Always Output Data, иначе в день без писем сценарий остановится на этом узле и брифинг не придёт;
- там же включите Execute Once, чтобы узел сработал один раз, а не по разу на каждую встречу.
Замените код в «Собрать данные» на версию с письмами. Она уже ждёт и задачи из следующего урока: пока задач нет, в данных будет «открытых задач нет».
// Собираем встречи, письма и задачи в один текст для модели
const events = $('Встречи на сегодня').all().map(i => i.json).filter(e => e.title !== 'Встреч нет');
const letters = $('Новые письма').all().map(i => i.json).filter(l => l.subject !== undefined);
const tasks = []; // задачи подключим в уроке 3.4
const ev = events.length
? events.map(e => '- ' + e.time + ' ' + e.title + (e.place ? ' (' + e.place + ')' : '')).join('\n')
: 'встреч нет';
const ml = letters.length
? letters.map(l => '- от ' + l.sender + ': ' + l.subject + '. ' + l.excerpt).join('\n')
: 'новых писем нет';
const tk = tasks.length ? tasks.map(t => '- ' + t.task).join('\n') : 'открытых задач нет';
return [{ json: { data: 'Встречи на сегодня:\n' + ev + '\n\nНовые письма:\n' + ml + '\n\nОткрытые задачи:\n' + tk } }];
После отправки в Telegram добавьте Data table → Update row(s): условие in_briefing равно false, новое значение in_briefing = true. Так завтрашний брифинг не повторит сегодняшние письма.
Запустите брифинг вручную. На прогоне сводка выглядела так: встречи по времени, «писем, требующих ответа сегодня, нет», а пять рассылок и одно предложение о раскрутке названы рекламой и спамом одной строкой. Ничего не выдумано.

Что ассистент не делает с почтой
- не отвечает и не пересылает письма: он только предлагает, что сделать, а решаете вы;
- не удаляет и не переносит письма: в узле стоит Action: Nothing;
- не читает другие папки: только ту, что указана в Mailbox Name.
Когда проверите ассистента на тестовой папке, поменяйте Mailbox Name на INBOX (это «Входящие») и опубликуйте сценарий снова. С этого момента письма из «Входящих» уходят модели через шлюз. Не включайте это для ящика, куда приходят пароли, банковские уведомления и персональные данные клиентов, пока не обсудите это с тем, кто отвечает у вас за данные.
Если не получилось
- Authentication failed. Пароль приложения ещё не начал работать, подождите 2–3 часа. Если не помогло, проверьте в почте: Настройки → Почтовые программы, должен быть включён доступ по IMAP.
- Тема пустая. В почтовом узле стоит Format: Simple. Переключите на Resolved.
- Письмо в папке есть, а сценарий молчит. Письмо лежало там до запуска или вы только поменяли пометку. Перенесите письмо из папки и обратно.
- Брифинг остановился на «Новые письма». Не включено Always Output Data, а новых писем нет.
- Одни и те же письма приходят каждый день. Нет узла Update row(s) после отправки или в нём не то условие.
Контрольный вопрос. Почему письма сначала записываются в таблицу, а не забираются брифингом в 8:00?
Подсказка: Вспомните сравнение с дверным звонком.
На курсе задания проверяются автоматически. Подобрать курс
Контрольный вопрос. Руководитель отметил письмо в тестовой папке непрочитанным, а сценарий «Почта в таблицу» не сработал. Что сделать?
Подсказка: Узел реагирует на появление письма. А пересланное письмо исказит отправителя.
На курсе задания проверяются автоматически. Подобрать курс
Задание. МИССИЯ «Разбор почты». Подключите почту, соберите сценарий «Почта в таблицу» и добавьте письма в брифинг. Приложите: (1) скриншот успешной проверки подключения (адрес закройте); (2) скриншот таблицы «Письма для брифинга» с 3–5 письмами; (3) скриншот брифинга в Telegram со встречами и письмами; (4) одной-двумя фразами: какое письмо модель отнесла к «ответить сегодня» и согласны ли вы с ней. Принято, если: в узле почты Action: Nothing и Format: Resolved; в таблице заполнены тема и начало письма; брифинг содержит встречи и письма; после брифинга письма отмечены in_briefing = true; на скриншотах закрыты адреса и нет персональных данных клиентов.
Подсказка: Если модель всё относит к «ответить сегодня», добавьте в системное сообщение одну-две строки о том, какие письма для вас действительно срочные: от каких клиентов, с какими словами в теме.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
На курсе задания проверяются автоматически. Подобрать курс
Что дальше
Брифинг знает про встречи и почту. Осталось научить ассистента принимать задачи прямо из Telegram и напоминать о них по утрам.
Итог:
• почта подключена по паролю приложения, только чтение, только одна папка;
• новые письма копятся в таблице и попадают в брифинг один раз;
• проверять сценарий нужно переносом письма, а не пометкой «непрочитанное».
