Вправа з RSS-стрічкою в n8n: створіть дайджест, стійкий до повторних запусків
Редакційна вправа з RSS у n8n: постійне зберігання стану записів, повторні спроби надсилання, послідовні тести та відповідальні за підтримку.

Перевірено за наведеними джерелами .
Редакційна вправа: визначте свій дайджест RSS-стрічки в n8n
Створіть робочий процес для RSS-стрічки в n8n, який знаходить записи, зберігає дайджест перед надсиланням і пам’ятає стан доставки між послідовними запусками. Це редакційна вправа, що спирається на задокументовані можливості; запропонований робочий процес не запускався й не перевірявся.
Вам потрібні середовище n8n із описаними нижче вузлами, доступна публічна стрічка, доступ до Data Table проєкту, налаштовані відповідно до вимог провайдера облікові дані SMTP та тестовий одержувач. Документація n8n описує RSS Read для читання URL публікації та Send Email для надсилання через SMTP. Деякі провайдери потребують додаткового налаштування SMTP або пароля застосунку.
Перед початком перевірте доступність вузлів: надана документація здебільшого не вказує версію, редакцію чи тарифний план. Обмежте вправу однією стрічкою та послідовними запусками; паралельна обробка, атомарне забезпечення унікальності, транзакційна доставка й робота в промислових масштабах не входять до її меж.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/credentials/send-email/README.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/rows.md at main · n8n-io/n8n-docs · GitHub
Підготуйте стабільні ключі та розділіть стан

Документація n8n описує Data Tables як постійне сховище проєкту з підтримкою умовного отримання, вставлення та оновлення рядків. Вони підходять для невеликих і помірних обсягів даних; учасники проєкту за замовчуванням мають доступ до його таблиць, а прямий доступ із вузла Code не підтримується. Наведені нижче схеми й тестові дані — редакційні пропозиції.
Створіть таблицю entries з полями feedKey, entryKey, title, link і digestId. Використовуйте поєднання feedKey та entryKey як ідентифікатор, забезпечуючи унікальність послідовним пошуком і вставленням. Створіть таблицю deliveries з полями digestId, entryKeys, renderedBody, status і lastError. На нашу думку, розділення виявлення записів і доставки полегшує перевірку рішення про повторну спробу.
Виберіть стабільний ідентифікатор, доступний у вашій стрічці, та явно визначте правило вибору запасного варіанта; відхиляйте записи без прийнятного ключа. Не використовуйте лише позицію в масиві або час публікації. Скористайтеся цими вигаданими тестовими даними, де кожна літера зберігає ті самі заголовок і посилання між запусками.
| feedKey | entryKey | title | link |
|---|---|---|---|
| practice-feed | A | Оновлення Альфа | Стабільне посилання на статтю A |
| practice-feed | B | Оновлення Бета | Стабільне посилання на статтю B |
| practice-feed | C | Оновлення Гамма | Стабільне посилання на статтю C |
Sources: n8n-docs/docs/build/work-with-data/data-tables.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub
Запропоноване рішення: заплануйте, збережіть і надішліть
Для запуску за розкладом посібник постачальника FlowKit за 2026 рік описує послідовність Schedule Trigger → RSS Read і застерігає, що поля, які повертає стрічка, можуть відрізнятися. Ця схема використовує такий запуск за розкладом замість вузла n8n RSS Feed Trigger. Точне налаштування розкладу, часового поясу та керування публікацією виходять за межі вправи.
Дотримуйтеся запропонованої послідовності. Операції Data Table підтримують переходи стану, Aggregate може зібрати дані елементів в один список, а Send Email забезпечує надсилання через SMTP. Саме агрегування не форматує й не надсилає повідомлення.
Для цієї вправи з RSS-стрічкою в n8n ми пропонуємо окремі робочі процеси виявлення записів і доставки за розкладом, які виконуються послідовно, без перекриття. Запускайте процес доставки безпосередньо з його власного Schedule Trigger і вибирайте доставки в стані pending, не проходячи через RSS Read і не залежачи від результатів виявлення записів. Це редакційне рішення зберігає доступ до збережених доставок, коли отримання стрічки завершується помилкою або нових записів немає.
- З’єднайте Schedule Trigger з RSS Read і зіставте доступні поля стрічки зі структурою тестових даних.
- Знайдіть кожен складений ключ запису. Увімкніть Always Output Data для пошуку Get, який може повернути порожній результат, явно налаштуйте розгалуження та вставляйте лише ще не виявлені записи; зберігайте узгоджену структуру вихідних даних гілок.
- Отримайте записи без digestId. Використайте параметр All Item Data вузла Aggregate, щоб зберегти feedKey, entryKey, title і link разом у кожному елементі списку, а потім сформуйте текст листа у звичайному текстовому форматі.
- Збережіть доставку в стані pending разом із digestId, ключами записів і renderedBody; перед надсиланням пов’яжіть ці записи з відповідним digestId.
- В окремому робочому процесі доставки за розкладом виберіть доставки зі status, що дорівнює pending. Якщо їх немає, завершіть виконання без надсилання; інакше використовуйте збережені дані кожної доставки.
- Налаштуйте Send Email: виберіть облікові дані SMTP, операцію Send, дозволену адресу відправника, тестового одержувача, тему на кшталт «Навчальний RSS-дайджест» і формат Text. Зіставте тіло повідомлення зі збереженим renderedBody доставки в стані pending.
- Після успішного завершення Send Email змініть стан доставки з відповідним digestId на sent. Спрямовуйте помилки надсилання через вихід помилок, зберігаючи стан pending і записуючи lastError.
Sources: n8n RSS Read & RSS Feed Trigger node documentation | FlowKit, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/rows.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.aggregate.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub
Перевірте послідовні повторні запуски та дослідіть помилки

Виконайте запропоновані нижче перевірки та запишіть фактичні результати. Тут sent означає успішне завершення вузла Send Email, а не підтверджене отримання листа у вхідних. Збережені дані доставки в стані pending мають залишатися доступними, навіть якщо відповідні записи зникнуть зі стрічки.
| Тестові вхідні дані | Очікуване спостереження |
|---|---|
| Перший запуск: A/B | Один дайджест із A та B |
| Наступний запуск: B/A | Жодної додаткової доставки |
| Наступний запуск: B/C/A | Наступний дайджест містить лише C |
| Тестовий запис без прийнятного ключа ідентифікації | Відхилено без вставлення запису та його надсилання |
| Новий запис; навмисно спричинена помилка SMTP | Доставка в стані pending доступна для запиту, помилку записано |
| Відновіть облікові дані; приберіть запис зі стрічки | Подальша спроба використовує збережені дані |
| Навмисно спричиніть помилку RSS Read за наявності доставки в стані pending | Перевірте маршрут помилки отримання стрічки; наявний стан залишається незмінним |
| Після невдалого отримання стрічки запустіть процес доставки незалежно | Наявну доставку в стані pending можна повторити зі збережених даних |
Якщо записи губляться, перевірте порожній результат Get, структуру даних гілок і збережені ключі. Тут Always Output Data слід увімкнути саме для пошуку; n8n попереджає, що його використання на вузлах IF може створювати нескінченні цикли. Для явного спрямування помилок використовуйте Continue using error output; натомість Continue передає останні коректні дані.
Призначте робочий процес обробки помилок для збоїв, які не обробляються іншим способом. За настановами n8n, оброблені помилки вузлів не запускають його автоматично. Програмне призначення робочого процесу обробки помилок задокументоване для n8n 2.29.0+; у старіших інстансах використовуйте налаштування робочого процесу.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-error-handling-official/references/ERROR_WORKFLOWS.md at main · n8n-io/skills · GitHub
Обміркуйте невизначений результат доставки та призначте відповідальних
Запитання для роздумів: SMTP приймає повідомлення, але оновлення стану на sent завершується помилкою. Поясніть, чому повторна спроба може призвести до дублювання листа, а потім задокументуйте, хто вирішує, чи надсилати його повторно, чи узгоджувати збережений запис із фактичним результатом. Надані джерела не підтверджують ані доставку через SMTP рівно один раз, ані атомарну координацію надсилання та оновлення стану.
На нашу думку, до запуску без нагляду потрібно призначити людину, яка ухвалюватиме рішення за невизначеного результату надсилання. Заповніть цей редакційний контрольний список передачі відповідальності разом із записаними результатами тестів.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub


