n8n×Claude APIで毎朝ニュースを自動要約するワークフローを作る

この記事でわかること

  • 完成形のワークフロー全体像
  • 必要なノードと役割
  • RSS取得からClaude要約、配信までの設定手順
  • 実際につまずきやすいポイントと対処法
  • 運用コストの目安

はじめに:情報収集の負担をゼロにする

AI関連のニュースは毎日大量に流れてきます。X・RSS・各メディアを毎朝チェックしていると、それだけで30分以上かかってしまうという人も多いはずです。

この記事では、n8nとClaude APIを組み合わせて、指定したRSSフィード※から最新ニュースを自動取得し、Claudeが要約して毎朝メール(またはSlack・Discord)に届けるワークフローを、誰でも再現できる手順で解説します。

※RSSフィード: ウェブサイトの更新情報を自動で配信するための仕組みのこと


完成形のワークフロー全体像

最終的に作るワークフローの構成はこちらです。

① Schedule Trigger(毎朝指定時刻に実行)
 ↓
② RSS Feed Reader(複数サイトのRSSを取得)
 ↓
③ Code/Setノード(データを整える)
 ↓
④ Claude(AIエージェント・要約生成)
 ↓
⑤ Gmail / Slack / Discord(配信)

様々な構成パターンがありますが、こちらが最も一般的で再現性の高いパターンかと思います!


事前に準備するもの

✅ n8nアカウント(クラウド版 or セルフホスト版)
✅ Claude APIキー
✅ チェックしたいニュースサイトのRSSフィードURL
✅ 配信先のアカウント(Gmail・Slack・Discordいずれか)

RSSフィードURLの探し方

多くのニュースサイトは サイトURL/rssサイトURL/feed でRSSを公開しています。たとえば以下のような形式です。

例:
https://news.yahoo.co.jp/rss/topics/it.xml
https://www.theverge.com/rss/index.xml

サイトに直接RSSの記載がない場合は「サイト名 RSS」で検索すると見つかることが多いです。


Step 1:Schedule Triggerを設定する

① n8nで新規ワークフローを作成する
② 「Schedule Trigger」ノードを追加する
③ 実行間隔を「Days」に設定
④ 実行時刻を「8:00」など好きな時間に設定

これでワークフロー全体が指定時刻に自動実行されるようになります。

注意点: Schedule Triggerはn8nインスタンスのタイムゾーン設定に依存します。日本時間で動かしたい場合は、n8nの設定でタイムゾーンが正しく設定されているか確認してください。


Step 2:RSSフィードを取得する

① 「RSS Feed Read」ノードを追加する
② Schedule Triggerに接続する
③ URLフィールドに取得したいRSSのURLを入力する

n8nのRSS Feed Readノードは、RSSのXML形式を自動でJSON形式に変換してくれます。各記事(item)が個別のデータとして後続のノードに渡されます。

複数のサイトをまとめて取得したい場合

1つのRSSだけでなく複数サイトをまとめてチェックしたい場合は、URLのリストを作ってループ処理する方法が使われています。

方法:
① Googleスプレッドシート or Setノードに
  RSSのURLリストを用意する
② Split In Batchesノードでリストを1件ずつ処理する
③ 各URLに対してRSS Feed Readを実行する
④ Execute Workflowノードでサブワークフロー化する

ハマりやすいポイント: n8nのループ処理(Split In Batches)はネストできない制約があります。RSS取得のループと記事処理のループを両方使う場合は、片方をサブワークフローに切り出すことでこの制約を回避できます。


Step 3:データを整える(重複・形式の統一)

サイトによってRSSの構造(フィールド名や形式)が異なるため、Claudeに渡す前にデータを整える工程が重要です。

① 「Set」ノードまたは「Code」ノードを追加する
② 各記事から必要な情報だけを抽出する
 (タイトル・リンク・公開日・概要)
③ 構造をすべて統一する

重複記事を防ぐ

毎朝実行するワークフローでは、前回すでに紹介した記事を再度取得してしまう問題が起こります。

これを避けるには、n8nの「Static Data」という仕組みを使って既出記事のリンクを記録し、重複を判定する方法が有効です。

return $input.all().map((a) => {
  const nodeStaticData = $getWorkflowStaticData('node')
  let items = nodeStaticData.items
  if (!items) { items = [] }
  let hit = true
  if (!items.some((item) => item === a.json.link)) {
    items.push(a.json.link)
    nodeStaticData.items = items
    hit = false
  }
  return { json: { hit, item: a.json } }
})

このコードは「すでに紹介済みのリンクか」を判定し、新しい記事だけを後続に渡す仕組みです。


Step 4:Claudeで要約を生成する

① 「Anthropic Chat Model」または
  「AI Agent」ノードを追加する
② n8nの認証情報(Credentials)にClaude APIキーを登録する
③ プロンプトを設定する

プロンプトの設計例

あなたはAIニュースのキュレーターです。
以下の記事リストから、AI関連のニュースとして
重要度が高い上位5件を選び、それぞれ150〜300字で要約してください。

【出力形式】
記事タイトル:
要約:
リンク:

【記事リスト】
{{ 取得した記事データ }}

重要なポイント: Claudeに自由なテキストで出力させると、後続の配信処理でエラーが起きやすくなります。Structured Output(構造化出力)の機能を使って、JSON形式で出力を強制することで、後工程の処理が安定します。


Step 5:配信先に送信する

最後に要約結果を配信します。配信先によってノードが変わります。

Gmailで配信する場合

① 「Gmail」ノードを追加する
② OAuth2認証でGmailアカウントを連携する
③ Claudeの出力結果を本文に挿入する
④ 送信先メールアドレスを指定する

Slackで配信する場合

① 「Slack」ノードを追加する
② Slack認証情報を登録する
③ 投稿先チャンネルを指定する
④ Claudeの出力結果をメッセージ本文に挿入する

Discordで配信する場合

DiscordはWebhook URLを使えば認証設定なしで簡単に投稿できます。Discord側でWebhookを発行し、n8nのHTTP RequestノードでそのURLにPOSTするだけで配信できます。


運用コストの目安

実際の運用コストを試算すると、月500件程度のメール要約をHaiku 4.5で行い、n8n Starterプランを使った場合、合計で月3,500〜4,000円程度かかる想定です。(2026年6月現在の料金体系で)

個人のニュース要約用途(毎朝1回・記事5〜10本)であれば:
 Claude API(Haiku 4.5):月数百円程度
 n8n(セルフホストなら無料、クラウド版なら月20ユーロ程度)

合計:月0〜3,000円程度

毎朝のニュースチェックに30分かけていたとすると、月20時間以上の時間が浮く計算になります。コストパフォーマンスは非常に高いと思います!


つまずきやすいポイントと対処法

① RSSフィードが一時的にダウンしている

RSSフィードが取得できないタイミングがあると、AIエージェントにデータが渡らずエラーになります。RSS取得後にIFノードを入れて、記事が0件の場合は通知してスキップする処理を追加すると安定します。

② モデルの使い分け

すべての処理に高性能なモデルを使うとコストが膨らみます。分類・要約などの軽量タスクはHaiku、複雑な文章生成が必要な場合のみSonnetを使うという使い分けが推奨されています。

③ 段階的に検証する

設定が完了したらすぐに本番運用するのではなく、まずテストデータ(記事1〜5件)で動作確認し、少量の本番データで検証してから全量展開するという段階を踏むことが推奨されています。


応用:WordPressへの自動投稿に拡張する

このワークフローは、配信先をメールではなくWordPressに変えることで、ブログの自動生成にも応用できます。

拡張版の構成:
① Schedule Trigger
② RSS Feed Read
③ Claude(要約+HTML生成)
④ Structured Output Parser(JSON形式を強制)
⑤ Codeノード(WordPress投稿用データを整形)
⑥ HTTP Request(WordPress REST APIへPOST)

注意点: 毎日同じ形式のタイトルでスラッグ(URL)を生成すると重複エラーが起きます。スラッグにタイムスタンプを付与して一意性を保証する処理を入れてください。

const slug = $input.item.json.output.slug + "-" + Date.now();

まとめ

完成するワークフロー:
 RSS取得→データ整形→Claude要約→配信

必要なノード:
 Schedule Trigger・RSS Feed Read・Set/Code・
 Anthropic(Claude)・配信先(Gmail/Slack/Discord)

運用コスト:
 月0〜3,000円程度(個人利用の範囲)

つまずきやすいポイント:
 RSS取得エラー時の処理
 モデルの使い分け(Haiku/Sonnet)
 段階的な検証(テスト→少量→全量)

毎朝の情報収集を自動化できれば、その時間をブログ記事の執筆や本業に充てられます。

まずはRSS取得とClaude要約だけのシンプルな構成で動かしてみて、慣れてきたら配信先や記事化まで拡張していくのがおすすめです。

コメント

タイトルとURLをコピーしました