こんにちは!合同会社ジセダイ代表の佐藤です。
前回の記事では、Dockerを使用してn8nの環境構築を行いました。今回は、いよいよn8nを使用して、実際にChatGPT APIと連携し、AIニュースを自動で収集・分析・通知するアプリの構築を行いたいと思います。このアプリを使えば、毎日の重要なAIニュースを効率的に把握することができます。
前提
本記事は以下の準備が完了していることを前提としています。詳細の手順は、こちらの記事に従い設定してください。
- n8nの環境構築が完了していること
- ChatGPT APIキーを取得済みであること
- NEWS APIキーを取得済みであること
- SlackのBot Tokenが取得済みであること
n8nのフロー概要
今回構築するアプリの処理フローは以下の通りです:
- トリガー:毎日AM8時に自動実行
- フロー:NEWS APIを実行して記事を20件取得
- コード:APIのレスポンスを加工し、最低限の項目にして1件にまとめ、次の処理で全データを一括で実行できるようにする
- ChatGPT:20件のうち、重要ニュースを3件抽出。その後JSON形式で、タイトルの原文、タイトルの和訳、ニュースの要約文、URL、公開日を返却
- コード:結果をテキスト形式に加工し、次の処理で送信する準備を行う
- Slack:Slackで結果を通知する
それでは、各ステップの詳細な設定方法を見ていきましょう。
n8nのフロー詳細設定
1. スケジュールトリガーの設定
スケジュールトリガーとは: このノードは、指定した時間やタイミングで自動的にワークフローを起動する役割を持っています。定期的なタスクを実行したい場合に最適で、分単位、時間単位、日単位、週単位、月単位など様々な間隔で設定できます。
今回は、毎日決まった時間(AM8時)に自動でニュース取得を行うために使用します。
- n8nのダッシュボードを開き、「+」ボタンをクリックして新しいワークフローを作成します
- 左側のノード一覧から「Schedule Trigger」を選択
- トリガー設定で以下のように設定します:
- Trigger Interval: Days
- Days Between Triggers: 1
- Trigger at Hour: 8am
- Trigger at Minute: 0
- 完了したら、ページ左上の「Back to canvas」をクリックし、閉じます。(自動的に閉じられます)

2. HTTP Request ノードでNews APIに接続
HTTP Requestノードとは: このノードは、外部のRESTful APIやWebサービスにHTTPリクエストを送信し、データを取得するための機能を提供します。GETやPOSTなどの各種HTTPメソッドをサポートし、ヘッダー、クエリパラメータ、認証情報などを設定できます。
今回は、このノードを使ってNews APIのエンドポイントに接続し、AIに関連する最新のニュース記事を取得します。
- 「+」ボタンをクリックして新しいノードを追加
- 「HTTP Request」を検索して選択
- 以下のように設定します:
- Method: GET
- URL: https://newsapi.org/v2/everything
- Authentication: Generic Credential Type
- Generic Auth Type: Header Auth
- Header Auth: 新規作成。以下の形式で登録
- Name: X-Api-Key
- Value: 前回作成したNEWS APIキー
- Send Query Parametersをオンにし、以下のQuery Parametersを追加:
- q: Artificial Intelligence
- sortBy: publishedAt
- pageSize: 20
- 「Test step」をクリックしてテストし、正しく記事が取得できることを確認します



「HTTP Request」の作成が完了したら、最初に作成した「Schedule Trigger」と、「HTTP Request」を繋げるようにしてください。
※今後も、Nodeを作成した場合は、前後のNodeを繋げるようにしてください。以後、この説明は割愛します。

3. データ整形用コードノードの追加
コードノードとは: このノードは、JavaScriptコードを実行してデータの加工や変換を行うツールです。APIから取得したデータの形式変更、フィルタリング、計算処理、条件分岐など、複雑なデータ操作が可能です。
今回は、NEWS APIから取得した複数の記事データを、ChatGPT APIへの入力に適した形式に整形するために使用します。
※そのままChatGPTのNodeに渡すと、次のChatGPT APIに、不要な要素も含め、かなり大量のデータを渡すことになるため、それを避けるために、必要な要素のみに加工しています。
- 「+」ボタンをクリックして新しいノードを追加
- 「Code」を検索して選択
- 以下のコードを入力します:
// 記事一覧から、title, description, url, publishedAtを抽出する
const article = $input.all()[0]
const articles = article.json.articles.map(function(a){
return {
title: a.title,
description:a.description,
url: a.url,
publishedAt: a.publishedAt
}
})
// 20件の配列で返却すると、次のNodeが20回返却されてしまうので、articlesというjson要素に記事一覧を含めて返却する
return {
articles: articles
}
- 「Execute Node」をクリックしてテストし、データが正しく整形されていることを確認します。
4. OpenAIノードの設定
OpenAIノードとは: このノードは、OpenAIのChatGPT APIに接続して、自然言語処理タスクを実行するためのインターフェースです。テキスト生成、要約、翻訳、感情分析、質問応答など、高度な言語処理が可能です。
今回は、収集したニュース記事の中から重要度の高いものを選別し、日本語に翻訳・要約するために使用します。
- 「+」ボタンをクリックして新しいノードを追加
- 「OpenAI」を検索して選択
- 「Message an Assistant」を選択
- 「Credential to connect with」より、新しいCredentialを作成します。その後、Api Keyの項目で、前の記事の作業で発行した、OpenAI APIキーを入力します
- その他、以下のように設定します:
- Resource: Text(テキストを送信します。その他、ImageやAudioなども選択可能なようです)
- Model: gpt-4o-mini (または利用可能な最新モデル。今回は費用を重視しminiとしていますが、自由に選択してください)
- Simplify Output: オン
- Output Content as JSON: オン
- Prompt: 以下のプロンプトを入力します:
以下はAIに関するニュース記事のリストです:
{{$json.articles}}
これらの記事の中から、重要度とお気に入り度が高い順に上位3件を選び出してください。
選んだ各記事について、以下の情報を含むJSONを返してください:
1. original_title: 原文のタイトル
2. translated_title: 日本語に翻訳したタイトル
3. summary: 記事の内容を日本語で100~150文字程度に要約
4. url: 記事のURL
5. publishedAt: 公開日時
レスポンスは以下のJSON形式のみで返してください:
{
"news": [
{
"original_title": "",
"translated_title": "",
"summary": "",
"url": "",
"publishedAt": ""
},
...
]
}
- 「Execute Node」をクリックしてテストし、APIが期待通りの形式でレスポンスを返すことを確認します。
5. Slack通知用のデータ整形
コードノード(結果整形)とは: 前述のコードノードと同様の機能を持ちますが、ここではChatGPTから返されたJSON形式のデータを、人間が読みやすいSlackメッセージ形式に変換する役割を果たします。日付の追加やメッセージのフォーマット調整など、通知に適した形に整えるための処理を行います。
- 「+」ボタンをクリックして新しいノードを追加
- 「Code」を検索して選択
- 以下のコードを入力します:
// 実行日の設定
const today = new Date().toLocaleDateString('ja-JP');
let slackMessage = `*${today} AIニュース トップ3*\n\n`;
// ニュース一覧のjsonをテキスト化し、後述のSlack通知で送信しやすくする
for (const item of $input.all()) {
const texts = item.json.message.content.news.map(item => {
return `タイトル(原文):${item.original_title}\nタイトル:${item.translated_title}\n要約:${item.summary}\nURL:${item.url}\n公開日:${item.publishedAt}`
})
return [{"send_text" : slackMessage + texts.join("\n\n")}];
}
- 「Execute Node」をクリックしてテストし、メッセージが正しくフォーマットされることを確認します
6. Slack通知の設定
Slackノードとは: このノードは、Slackのワークスペースやチャンネルにメッセージやファイルを送信するための機能を提供します。テキストメッセージ、リッチメディア投稿、ファイル添付などが可能で、自動通知システムの構築に最適です。
今回は、抽出・分析されたAIニュースを特定のSlackチャンネルに定期的に通知するために使用します。
n8nでのSlackノード設定
- 「+」ボタンをクリックして新しいノードを追加
- 「Slack」を検索して選択
- 「Actions」で、「Send a message」を選択
- 「Select Credential」をクリックして新しいCredentialを作成
- 「Connect using」で「Access Token」を選択
- 「Access Token」で、前の記事で作成したSlackのAccess Tokenを貼り付け
- Saveをクリックする
- それ以外の項目を、以下のように設定します:
- Resource: Message
- Operation: Send
- Send Message To: Channel
- Channel: メッセージを送信するChannelを選択(ここで、仮にトークン誤りや認証設定誤りがあった場合、エラーになります。その場合は設定を見直してください)
- Message Type: Simple Text Message
- Message Text: Expressionを選択した上で以下を記入
{{ $json.send_text }}
- 「Test Step」をクリックしてテストし、Slackに通知が送信されることを確認します


7. ワークフローの保存と有効化
- ワークフロー名を「Daily AI News Digest」などわかりやすい名前に設定(ならびに、各ノードの名称を変更し、分かりやすくすることを推奨します)
- 「Test workflow」をクリックし、全機能が正常に実行完了することを確認
- 右上の「Save」ボタンをクリックしてワークフローを保存
- 「Active」トグルをONにしてワークフローを有効化
これで、毎日AM8時に自動的にAIニュースが収集・分析され、Slackに通知されるようになりました。
実行結果イメージ
n8n設定

NEWS APIレスポンス例
HTTP Request ノードを使ってNews APIにアクセスすると、以下のような形式でデータが返されます(以下の結果はすべて架空のものです):
[
{
"status": "ok",
"totalResults": 20,
"articles": [
{
"source": {
"id": "ai-weekly",
"name": "AI Weekly"
},
"author": "Emi Tanaka",
"title": "Japanese Startup Unveils AI That Predicts Emotional Trends in Social Media",
"description": "Tokyo-based startup FuturePulse has launched an AI model that predicts the emotional trajectory of social media users, aiming to help brands better align with consumer sentiment.",
"url": "https://www.aiweekly.jp/news/futurepulse-emotion-ai-release-20250505",
"urlToImage": "https://www.aiweekly.jp/assets/images/futurepulse-ai-demo.jpg",
"publishedAt": "2025-05-05T05:15:42Z",
"content": "FuturePulse Inc., a rapidly growing AI startup in Japan, announced the release of its new AI model, 'EmoTrack'. The model analyzes real-time social media posts to forecast emotional trends over the coming weeks. According to CEO Emi Tanaka, the system will help brands adjust campaigns to match public mood swings."
},
{
"source": {
"id": "deeptech-insider",
"name": "DeepTech Insider"
},
"author": "Carlos Mendes",
"title": "OpenCore Labs Introduces Energy-Efficient LLM for IoT Devices",
"description": "OpenCore Labs, a Portuguese AI company, has released a new lightweight LLM optimized for embedded systems and IoT networks, drastically reducing power consumption.",
"url": "https://www.deeptechinsider.eu/articles/opencore-iot-llm-launch-2025",
"urlToImage": "https://www.deeptechinsider.eu/assets/img/opencore_iot_ai.jpg",
"publishedAt": "2025-05-05T05:06:49Z",
"content": "Lisbon-based OpenCore Labs announced the debut of its 'EdgeMind LLM', a compact AI model tailored for edge computing. Unlike traditional LLMs, EdgeMind requires just 1.2W of power and runs on devices with less than 1GB RAM. It supports over 20 languages and can perform intent detection and summarization tasks locally, without cloud access."
},
{
"source": {
"id": "genai-today",
"name": "GenAI Today"
},
"author": "Lina Schwartz",
"title": "New AI Tool Helps Writers Create Realistic Dialogue for Novels",
"description": "A new AI tool named 'DialogCraft' is gaining popularity among fiction writers for its ability to generate natural and contextually rich conversations between characters.",
"url": "https://www.genaitoday.com/features/dialogcraft-ai-fiction-tool-20250505",
"urlToImage": "https://www.genaitoday.com/assets/img/dialogcraft-demo.jpg",
"publishedAt": "2025-05-05T04:45:00Z",
"content": "DialogCraft, developed by Berlin-based creative tech company StorySage, uses fine-tuned language models to simulate conversations in various tones and settings. Writers say it significantly reduces time spent crafting dialogue while maintaining narrative coherence."
},
....
]
}
]
Slack通知結果例
ChatGPTがニュースを分析した後、以下のようなメッセージがSlackに送信されます:
タイトル(原文):Japanese Startup Unveils AI That Predicts Emotional Trends in Social Media
タイトル:日本のスタートアップ、SNSの感情トレンドを予測するAIを発表
要約:東京発のスタートアップ「FuturePulse」は、SNS投稿から数週間先の感情の変化を予測するAI「EmoTrack」を公開。企業のマーケティング施策における感情の波を可視化するツールとして注目されている。
URL:https://www.aiweekly.jp/news/futurepulse-emotion-ai-release-20250505
公開日:2025-05-05T05:15:42Z
タイトル(原文):OpenCore Labs Introduces Energy-Efficient LLM for IoT Devices
タイトル:OpenCore Labs、IoT向け省電力型LLM「EdgeMind」を発表
要約:ポルトガルのAI企業OpenCore Labsは、わずか1.2Wの電力で動作する軽量言語モデル「EdgeMind」を発表。クラウドに依存せず、IoT機器で直接動作可能なこのモデルは、スマートシティや遠隔監視への応用が期待されている。
URL:https://www.deeptechinsider.eu/articles/opencore-iot-llm-launch-2025
公開日:2025-05-05T05:06:49Z
タイトル(原文):New AI Tool Helps Writers Create Realistic Dialogue for Novels
タイトル:小説のリアルな会話文をAIが生成:作家向けツール「DialogCraft」登場
要約:ベルリンのStorySage社が開発した「DialogCraft」は、小説家がキャラクター同士の自然な会話を素早く作成できるAIツール。トーンや文脈に応じた表現力が高く、創作活動の時短に貢献している。
URL:https://www.genaitoday.com/features/dialogcraft-ai-fiction-tool-20250505
公開日:2025-05-05T04:45:00Z
このように、重要なAIニュースのタイトル(日本語訳)、簡潔な要約、原文タイトル、参照URLが一目でわかるフォーマットで通知されます。
まとめ
今回は、n8nを使ってChatGPT APIとNEWS API、Slackを連携させ、毎日の重要なAIニュースを自動で収集・分析・通知するアプリケーションを構築しました。このようなフローを構築することで、以下のメリットがあります:
- 具体的な手順があると、よりAIを活用した開発方法のイメージが付きやすくなります
- 手軽なn8nを使った開発から、まずは試してみることで、AIを活用したワークフロー自動化の可能性を体感できます
この記事で紹介したような方法は、ニュース収集だけでなく、様々な業務の自動化やデータ収集・分析にも応用できます。ぜひ、自分のニーズに合わせたカスタマイズを行って、AI技術を活用した効率的なワークフローを構築してみてください。
以上です、お時間いただきありがとうございました!