はじめに:なぜn8nとAI自動化なのか
この記事では、ノーコードツール「n8n」と「OpenAI(ChatGPT)」を連携させて、あなたの興味に合ったニュースを自動で取得・要約するAIワークフローを構築する方法を解説します。
特に、ノードの接続順序や操作手順で迷わないよう、初心者でも安心して実践できるように構成された完全ガイドです。
🚨 重要な事前知識:OpenAI APIのコストと代替案
- 課金対象: OpenAI APIは従量課金制です。AIに送る入力(ニュース記事の内容)と、AIから返る出力(日本語の要約)のトークン数で費用が発生します。
- コスト削減策: ノード設定で「GPT-3.5-turbo」を選択することで、高性能な「GPT-4」よりも安価に運用できます。
ワークフローの全体像とノード接続順序
構築するワークフローは、以下の6つのステップ(ノード)が一本の線で繋がった構造になります。
Schedule Trigger (起動)>Google Sheets (取得)>IF (絞込)>HTTP Request (ニュース取得)>OpenAI Chat Model (AI処理)>Google Sheets (記録)
ステップ | ノード名 | 選択するOperation | 重要な設定/メソッド | 目的 |
1. 起動 | Schedule Trigger | N/A (操作設定不要) | Trigger Interval (Weekly, Sundayなど)の設定 | 決まった日時にワークフローを自動起動。 |
2. 検索ワード取得 | Google Sheets | Get Rows | シート名「01 検索」の指定 | スプレッドシートからキーワードを取得。 |
3. 絞り込み | IF | N/A (操作設定不要) | 比較条件(検索要否の値)の設定 | 「検索が必要」なキーワードのみを抽出。 |
4. ニュース取得 | HTTP Request | Request | Method: GET, News API URLの指定 | News APIを通じて海外ニュースを取得。 |
5. AI処理 | OpenAI Chat Model | Chat: Send Message to Model | Model (GPT-3.5-turboなど)の選択 | 記事を日本語で要約・翻訳。 |
6. 記録 | Google Sheets | Append Row | シート名「02 一覧」の指定 | AI処理後の結果をニュース一覧シートに追記。 |
【解説】 この表は、構築するワークフロー全体の設計図です。HTTP RequestノードのOperationは「Request」を選択し、Methodに「GET」を設定することでニュースの取得操作を実行します。
ステップ0:事前準備(APIキーとGoogle Sheets)
1. OpenAI APIキーの作成(詳細手順)
AI連携の要となるAPIキーを以下の手順で作成します。
- OpenAIのサイトにアクセス: OpenAIの公式サイト(API Platform)にアクセスし、アカウントを登録またはログインします。
- APIキーの管理画面へ移動: ログイン後、画面右上のプロフィールアイコン等から「View API keys」を選択します。
- 新しいキーを作成: 「Create new secret key」ボタンをクリックします。
- 名前を付けてキーを作成: キーの名前(例: n8nニュース自動化)を入力し、「Create secret key」をクリックします。
- キーをコピー: 表示されたAPIキー(
sk-...
から始まる文字列)を必ずコピーし、安全な場所に控えてください。このキーは、画面を閉じると二度と表示されません。
2. News APIキーの取得(詳細手順)
海外ニュースのデータソースとなるAPIキーを取得します。
- News API公式サイトにアクセス: 公式サイトの「Get API Key」ボタン等からアカウント登録ページへ進みます。
- アカウント登録: 氏名、メールアドレス、パスワードを入力し、個人利用(I am an individualなど)を選択して登録します。(クレジットカードは不要です)
- APIキーの確認: 登録完了後、アカウントページまたはメールアドレスにAPIキー(32文字程度のハッシュ値)が送付されるので、これを控えておきます。
3. Google Sheetsの準備
■ スプレッドシート名(ファイル名)
ニュース自動要約ワークフロー
※この名前は自由に設定して構いません。
■ シート名(タブ名)と項目
シート名 | 項目(A列, B列, C列…) |
---|---|
01 検索 | 検索ID, 検索ワード, 検索要否 |
02 一覧 | 日付, 検索ワード, 記事内容, URL |
【解説】
上記のシート名(「01 検索」「02 一覧」)は、記事内で説明する手順と対応しています。
設定画面でシート名を正しく指定できる場合は、任意の名前でも構いません。
ただし、n8nのノード設定時に実際のシート名を正確に入力する必要がある点に注意してください。
ステップ1:ワークフローの起点とデータ取得
キャンバス上でノードを検索し、以下の順に接続していきます。
ステップ | ノード検索名 | 選択すべきノード名 | 選択するOperation | 詳細な設定のポイント |
1. 起動 | schedule | Schedule Trigger | N/A(操作設定不要) | Trigger Intervalを「Weekly」に、Day of Weekを「Sunday」に設定。 |
2. 検索ワード取得 | google sheets | Google Sheets | Get Rows | 1. CredentialでGoogle連携。2. Sheetで「01 検索」を指定。 |
3. 絞り込み | if | IF | N/A(操作設定不要) | Value 1に検索要否の値をドラッグ。Value 2にスプレッドシートに入力した通り(例:全角の「必要」)と入力。 |
【解説】 ステップ3のValue 2は、スプレッドシートの検索要否列に入力した文字と完全に一致させる必要があります。
ステップ2:ニュースの取得とAIによる要約(OpenAI)
IFノードのTrue Branchから線を引いて、以下の2つのノードを接続します。
1. HTTP Request (News API) の設定
IFノードのTrue Branch側に「HTTP Request」ノードを追加します。
- Methodを「GET」に設定します。
- Operationは標準の「Request」を選択します。
- URLに、News APIの「Everything」エンドポイントのURLを貼り付け、動的な値を埋め込みます。
コード スニペット
[https://newsapi.org/v2/everything?q=](https://newsapi.org/v2/everything?q=){検索ワード}&sortBy=publishedAt&language=en&apiKey={APIキー}
q={検索ワード}
の部分:IFノードの出力から検索ワードの値をドラッグ&ドロップ。apiKey={APIキー}
の部分:取得したご自身のNews APIキーを直接入力。
2. OpenAI Chat Model の設定
ノード検索名 | 選択すべきノード名 | 選択するOperation | 詳細な設定のポイント |
openai | OpenAI Chat Model | Chat: Send Message to Model | 1. CredentialでOpenAI APIキーを連携。2. Modelは「GPT-3.5-turbo」または「GPT-4」を選択。3. Messageにプロンプトと動的なデータを組み込む。 |
【OpenAI Credentialの設定】
OpenAI Chat Modelノードの設定画面で「Credential to connect with」から「Create New Credential」を選択し、ステップ0-1で控えておいたAPIキーを貼り付けます。
【プロンプト設定】
Message欄の「User Message」に、以下のプロンプトとデータを入力します。
以下の文を50文字程度の一文に、日本語で分かりやすくまとめてください。
[タイトル] {HTTP Requestノードの出力から`title`をドラッグ&ドロップ}
[記事内容] {HTTP Requestノードの出力から`description`をドラッグ&ドロップ}
ステップ3:最終結果のGoogle Sheetsへの記録
OpenAIノードから線を引いて、最後のノードを接続します。
ステップ | ノード検索名 | 選択すべきノード名 | 選択するOperation | 詳細な設定のポイント |
6. 記録 | google sheets | Google Sheets | Append Row | 1. Sheetで**「02 一覧」**を指定。2. 下部のMappingで、AIの出力データなどを正確に紐付け。 |
【データマッピングの詳細】
Google SheetsノードのMappingで、シートの列とデータを紐付けます。
02 一覧シートの列 | 取得元ノードとデータ項目 |
日付 | HTTP Requestノードから publishedAt |
検索ワード | Google Sheetsノード(最初のノード)から 検索ワード |
記事内容 | OpenAI Chat Modelノードから content (AIが生成した要約) |
URL | HTTP Requestノードから url |
【解説】 この表は、ワークフローの最終段階で、AIやNews APIから得られたデータを、Google Sheetsのどの列に挿入するかを示す「データマッピング」の詳細です。
💡 代替案:AIモデルをGoogle Geminiに置き換える(詳細手順)
OpenAIの代わりに、GoogleのGemini APIを使用することも可能です。
- Gemini APIキーを取得: Google AI for Developers サイトなどでAPIキーを取得し、n8nにCredentialとして連携します。
- ノードの置き換え: 既存のOpenAI Chat Modelノードを削除し、「Google Gemini」ノードを追加します。
- 選択するOperation: 「Generate Content」を選択します。
- Modelの選択:
gemini-2.5-flash
など、利用したいモデルを選択し、同じプロンプトを入力します。 - データマッピングの修正(重要): 最後のGoogle Sheetsノードに戻り、記事内容に紐付けているデータ参照を、OpenAIの
content
からGeminiノードの出力にあるtext
に修正します。
【解説】 ノード名、操作、そして最終的なデータマッピング(出力データ名がcontent
からtext
に変わる点)がOpenAIとは異なるため、この手順に従って修正してください。
ワークフローの最終実行
すべてのノード接続と設定を確認したら、n8nの画面右上の「Activate (アクティベート)」ボタンをオンにします。まずは「Test Workflow」を実行し、データが正しく流れ、スプレッドシートに記録されることを確認しましょう。
まとめ
本記事では、n8nとChatGPTを組み合わせた海外ニュースの自動取得・要約・スプレッドシート記録ワークフローについて解説しました。ノーコードで構築できるため、プログラミングの知識がなくても、定期的にニュース情報を効率よく整理できます。
さらに、検索ワードをスプレッドシートで管理しておくことで、取得対象を柔軟に変更可能です。これにより、日常の情報収集やレポート作成の負担を大幅に軽減できます。
システムの流れ(全体像)
- 検索ワードの設定
スプレッドシートに取得したいキーワードを一覧で記載。後で簡単に追加・変更できます。 - ニュース取得(n8n)
RSSやニュースAPIから、指定キーワードに関連する海外ニュースを自動取得。 - 要約処理(ChatGPT)
取得したニュースをChatGPTに渡し、自動で重要ポイントを抽出して短く要約。 - スプレッドシートへの記録
タイトル、日付、要約内容、元URLなどをスプレッドシートに整理して自動記録。 - 運用・活用
スプレッドシートを確認するだけで最新情報を把握可能。キーワード更新で取得対象も簡単に調整できます。
レポート作成や情報モニタリングなど、日常業務にそのまま活用可能です。