Tracks
n8n は、エージェント型AIにおいて人気かつ強力なフレームワークとして台頭しています。複雑なコーディングなしで自動化ワークフローを構築できます。
本記事では、この堅牢なプラットフォームを最大限に活用し、次の2つのプロセスを自動化する手順をステップごとに解説します。
- まず、Gmail のメールを自動処理するAIエージェントを構築し、時間の節約と手作業の削減を図ります。
- 次に、任意のドキュメントについてチャットできる知的エージェントを作成し、必要な情報へ素早くアクセスできるようにします。
私たちは毎週金曜に無料ニュースレター「The Median」を配信し、その週のAIの主要トピックをわかりやすく解説しています。購読して、週数分で最新情報をキャッチアップしてください。
n8n とは?
n8n はオープンソースの自動化ツールで、さまざまなアプリやサービスをつないでワークフローを作成できます。デジタルの組立ラインのようなイメージです。各ステップに対応するノードを使って、ワークフローを視覚的に設計できます。
n8n を使えば、広範なプログラミングスキルがなくても、タスクの自動化、データフローの管理、API の統合まで行えます。以下は本チュートリアルで構築する自動化の一例です。

詳細に入る前に、この自動化が何をするかを簡単に説明します。
- Gmail アカウントにアクセスして新着メールを確認します。
- 新着メールは AI 処理のために ChatGPT に送られます。
- AI が関連情報を抽出し、その内容をスプレッドシートに保存します。
n8n の使い方
n8n を利用する方法は2通りあります。
- Web インターフェースを利用するにはこちら。アカウントと有料サブスクリプションが必要ですが、本チュートリアルに沿って操作できる14日間の無料トライアルがあります。
- オープンソースなので、ローカルで実行したり自前でホストしたりも可能です。無料で、ほとんどすべての機能にアクセスできます(一部は有料のクラウドまたはエンタープライズ専用)。
どちらの方法でも、このチュートリアルは無料で進められます。ここではローカル実行を前提にしますが、Web インターフェースの場合でも手順は同じです。
n8n 2.0 の新機能
注記:n8n 2.0 は 2025 年後半にリリースされ、下書き/公開のワークフロー管理、オートセーブ(2026 年 1 月)、キャンバスの文脈を失わずにノード編集できる更新版フォーカスパネル、実行を分離してセキュリティを高める Task Runner が導入されました。
以下のワークフローは 2.x で動作します。1.x をお使いの場合は、進める前にアップグレードをご検討ください。
n8n のローカルセットアップ
n8n の公式リポジトリに、ローカルでのセットアップ方法が記載されています。最も簡単な方法は次のとおりです。
-
公式サイトから Node.js をダウンロード・インストールします。
-
ターミナルを開き、
npx n8nを実行します。
これで完了です。コマンド実行後、ターミナルに次のような表示が出るはずです。

インターフェースを開くには、キーボードで「o」を押すか、ターミナルに表示されているローカルホストの URL(例:http://localhost:5678)を開いてください。
n8n の基本
最初の自動化を作る前に、n8n の仕組みを理解しておきましょう。n8n のワークフローはノードの連なりで構成され、ワークフロー実行の条件を定義するトリガーノードから始まります。

ノードは接続され、データを移動・処理します。この例では、Gmail のトリガーノードが OpenAI ノードにつながっています。つまり、メールの内容が ChatGPT に渡されて処理されるということです。最後に、ChatGPT の出力が Google Sheets ノードへ送られ、Google Drive 上のスプレッドシートに新しい行として書き込まれます。
このワークフローでは、ChatGPT を使って支払いが必要な請求書を特定し、シートに請求書IDと金額の行を割り当てます。

n8n のワークフローは、これよりはるかに複雑にできます。n8n は400以上の公式統合(コアノード)に加えて、600以上のコミュニティ製ノードや HTTP Request ノードによるカスタム接続もサポートしているため、本チュートリアルですべてを網羅することはできません。
その代わり、全体像をつかみ、自力で探索を進めるための基礎を提供することに重点を置きます。日常的に使っているツールがあるなら、n8n がサポートしているか、手動で統合できる可能性が高いでしょう。
例1:メールから請求処理を自動化する
このセクションでは、先ほどのワークフローを構築する方法を学びます。
これは私が実際に家賃関連の請求書管理に使っているユースケースです。複数の部屋を賃貸に出しており、光熱費などの請求は入居者全員で均等に按分します。請求書を受け取るたびに、合計金額を入居者と共有しているスプレッドシートに追加する必要があります。
家関連の請求書が転送される専用のメールアドレスを用意しています。これにより、そのメールボックスのメールはすべて請求書だとわかります。メール本文を ChatGPT に送り、請求書IDと支払総額を抽出します。その後、この情報を共有スプレッドシートの新しい行に追加します。
メールトリガーの設定
新しいワークフローを開始するには、「Add first step...」ボタンをクリックします。

最初のノードは必ずトリガーである必要があるため、トリガーノードを選択するパネルが表示されます。トリガーノードは、ワークフロー実行の条件を定義します。

利用できるトリガーノードは多岐にわたります。検索ボックスに「gmail」と入力し、Gmail ノードを選択しましょう。

次に、Gmail の唯一のトリガー「On message received」を選びます。

するとノード設定パネルが開き、n8n のワークフローが Gmail アカウントへアクセスできるように、Gmail の認証情報を設定する必要があります。「New credential」をクリックしてください。次のウィンドウが開きます。

右側(1)に、Google Cloud 上で認証情報を設定する手順のガイドがあります。n8n のガイドは非常に充実しているため、ここでは繰り返しません。Google Cloud Console で Gmail API を有効化することも忘れずに行ってください。
設定できたら、Google Cloud のクライアントID(2)とクライアントシークレット(3)を n8n の認証設定にコピーします。
正しく設定できているかを確認するには、「Fetch Test Event」をクリックしてノードをテストします。

テスト後、出力セクションに受信トレイの最新メールが表示されます。メール本文は snippet フィールドです。

snippet フィールドにメール本文が格納されます。ここでは、4月分のインターネット請求書が利用可能になったこと、請求書IDと支払総額が記載されています。これがスプレッドシートに追加したい情報です。
テストしやすくするため、右上のピンボタンをクリックして出力を固定しておくことをおすすめします。

こうすると、トリガーの結果が固定され、ワークフローを実行するたびに同じ出力が使われます。新着メールに影響されずテストできるため便利です。ワークフローの設定が完了したらピンを外します。
この時点で、ワークフローにはトリガーノードが1つあるはずです(左側の稲妻マークがトリガーの印)。

なお、読者のメールボックスには請求書メールがない可能性が高いため、この先の ChatGPT の出力は的外れになるかもしれません。このワークフローを正確にテストしたい場合は、以下(または類似)の内容で自分宛にテストメールを送ってください。
Dear customer,
Your internet invoice number FT 2025**/****** for April is now available in the attachment.
Amount
€**.**
This invoice must be paid by 19/05/2025.
送信後は、結果のピンを外し、Gmail ノードを再実行して、新しい結果を再度ピン留めしてください。
ChatGPT ノードの設定
次のステップは OpenAI ノードの設定です。Gmail トリガーノードの右側にある「+」ボタンをクリックします。

「OpenAI」と入力し、一覧から該当オプションを選びます。

続いて「Text Actions」から「Message a model」ノードを選択します。これは LLM にメッセージを送るノードです。

これまでと同様、OpenAI にアクセスするための認証情報を作成します。いったん作成した認証情報は、どのワークフローでも再利用でき、毎回設定する必要はありません。
OpenAI の認証情報として必要なのは API キーのみです。未作成の場合はこちらで作成できます。手順で困った場合は、n8n のガイドも参照してください。
設定では、使用するAIモデルと、モデルに送るメッセージ(プロンプト)を指定します。
モデルは GPT-4.1 を使用します。OpenAI はその後 GPT-5 ファミリー(5.4、5.4-mini、5.5)をリリースし、ChatGPT から 4.1 を引退させましたが、API では引き続き利用可能で、このような単純な抽出には十分です。

メッセージ欄にはプロンプトを記述します。この例では、メール本文をモデルに渡し、請求書IDと支払総額の特定を依頼します。以下は実際に使用したプロンプトです。

メール本文は {{ $json.snippet }} として渡します。n8n では、プロンプト内に前段のノード出力から値を参照する変数を含められます(今回はメール)。利用可能なフィールド一覧は左側に表示され、手入力してもドラッグ&ドロップでも挿入できます。

テストするには、設定パネル上部の「Test Step」をクリックします。結果は右側に表示されます。

結果はモデルの回答を含む文字列です。後続の処理を省くため、2つのフィールドを分離して受け取りたいところです。LLM の出力形式を JSON に変更すれば可能です。

再度テストすると、2つのフィールドが JSON データとして取得できます。

データを Google シートへ送る
このワークフローの最後のステップは、請求書IDと金額を Google シートの新しい行に送ることです。ここでは OpenAI ノードの出力を Google Sheets に接続します。先ほどと同様、ノード左側の「+」ボタンをクリックします。

ここでは Google Sheets と入力し、「Append row in sheet」ノードを選びます。

Gmail アクセスで使用したのと同じ認証情報を利用できます。ただし、Google Cloud Console で以下の API を有効化しておく必要があります。
- Google Sheets API
- Google Drive API
Google Sheets ノードでは、対象のシートを選び、各フィールドに入力する値を指定します。シートはあらかじめ手動で2列(請求書ID列と合計金額列)を作成しておきます。

値は OpenAI ノードの出力から取得します。ドラッグ&ドロップで各列に割り当てられます。

ワークフローの実行
これで完成です。請求書を Google シートに自動で登録するワークフローができました。画面下部の「Test workflow」をクリックしてテストできます。

実行後、Google シートに新しい行が追加されているのが確認できます。

デフォルトでは、ワークフローは1分ごとに実行されます。内容によって適切な実行頻度に調整しましょう。本例では1分ごとは過剰で、1日1回程度が適切です。
頻度の変更は、トリガーノードをダブルクリックし、「Poll Times」フィールドで設定します。

例2:RAG エージェントを構築する
このセクションでは、より複雑な RAG エージェントのワークフローを構築します。RAG は「検索拡張生成」を意味し、データベースやドキュメントから関連情報を検索し、その情報に基づいて言語モデルが回答を生成する手法です。
特定のナレッジベース(例:長文ドキュメント)があり、それに関する質問に答える AI エージェントを作りたい場合に非常に有用です。
私はボードゲームが好きですが、友人たちとルールで口論になり、プレイの代わりに正しいルールを探す時間が増えてしまうことがあります。ゲームのルールを元に RAG エージェントを作れば、この問題を解決できます。次に疑問が出たときは、エージェントに質問するだけで済みます。
このエージェントを作るために、次の2つのワークフローを用意します。
- データを Pinecone データベースにアップロードするための、1回だけ実行するワークフロー。
- RAG エージェント本体で、Pinecone のデータベースを使って質問に回答するワークフロー。
Pinecone へのデータ投入
Pinecone はベクトル形式でデータを扱うタイプのデータベースです。RAG エージェントにとって、関連情報を素早く検索・理解できるため、正確な回答を効率的に生成するのに最適です。
このワークフローは1回だけ実行すればよいので、手動トリガーノードを使います。これは手動実行用のトリガーノードです。

手動トリガーを「Google Drive」ノードにつなぎ、Google Drive からデータをダウンロードします。

次の設定を使用します。

ここでは公開されている mtgrules.txt(トレーディングカードゲーム「Magic: The Gathering」のルール)を使用しました。質問したいファイルは何でも構いません。ワークフローは同じです。
Pinecone の設定では、Pinecone にログインして API キーをコピーし、「Create index」ボタンでインデックスを作成します。ここではインデックス名を rules とし、モデルは text-embedding-3-small を選びました。

n8n に戻り、Google Drive ノードの出力を Pinecone Vector Store ノード(アクション「Add documents to vector store」)につなぎます。
ノード設定では、API キーを貼り付け、先ほど作成した Pinecone インデックスを選びます。Pinecone Vector Store ノードの下に、埋め込みモデルとデータローダーの2つを設定する必要があることが示されます。

埋め込みには OpenAI Embedding ノードを作成し、モデルは text-embedding-3-small を選びます。

データローダーには、Default Data Loader ノードを作成し、Binary データタイプを選びます。

最後に、データローダーにはテキストスプリッターノードが必要です。これは、ファイルからのデータをベクトルストア作成時にどのように分割するかを指定します。多くの用途で推奨される Recursive Character Text Splitter ノードを使用します。

チャンクサイズは 1,000、オーバーラップは 200 に設定します。

チャンクサイズとオーバーラップは、長いドキュメントでは十分な内容を含められるよう大きめのチャンク、冗長にならない程度に文脈を維持できる小さめのオーバーラップを目安に調整してください。
完成したワークフローは次のようになります。

「Test workflow」をクリックして実行し、完了後に Pinecone 側でデータが投入されたことを確認できます。
RAG エージェントの作成
RAG エージェントの最終的なスキーマは次のとおりです。

演習として、続きの解説を読む前に、これを理解し、可能ならローカルで再現してみてください。
最初に「On chat message」トリガーノードを使用します。これはチャット用のワークフローを作成するためのトリガーです。

次に、チャットトリガーを「AI Agent」ノード(デフォルト設定)につなぎます。

AI Agent の下には、次の3点を設定できます。
- エージェントが使用する AI モデル
- 会話の文脈をどのように記憶するかを定義するメモリ
- エージェントが利用可能なツール。今回は Pinecone のデータベースをツールとして与え、ドキュメントに関する質問に答えられるようにします。
AI モデルには「OpenAI Chat Model」ノードを選び、先ほどと同様に GPT-4.1 を使用します。OpenAI の現行ファミリーは GPT-5 ですが、4.1 は 100万トークンのコンテキストウィンドウを持ち、RAG に適しています。

メモリには「Simple Memory」ノードを使用し、コンテキストウィンドウ長は 5 にします。これにより、直前の5回分のやり取りを記憶して回答に反映します。
ツールには「Pinecone Vector Store」ノードを追加し、次の設定を行います。

説明欄には、ツールをどのような場合に使用すべきかを明確に記載することが重要です。エージェントはこれを手がかりに、ツール呼び出しの要否を判断します。
最後に、ベクトルストアで使用する埋め込みを設定します。先ほどと同様に OpenAI Embedding ノードで text-embedding-3-small を使用します。

ワークフローは完成し、エージェントとチャットできるようになりました。以下は一例です。

右側には、エージェントが質問に答えるために実行したステップが表示されています。特に、Pinecone データベースにアクセスして関連するルール情報を取得していることがわかります。
n8n のテンプレート
n8n には、ワークフローの作成を大幅に効率化できる便利な機能があります。テンプレートライブラリです。
このライブラリには、コミュニティや n8n のエキスパートが作成した事前構築済みのワークフローが集められています。シンプルな自動化から複雑なプロセスまで、多くの場合で目的に合ったワークフローが見つかるはずです。
テンプレートを n8n 環境にインポートすれば、ゼロから作る必要はありません。他のユーザーが考案したクリエイティブな解決策をそのまま活用できます。インポート後は、自分の認証情報を設定し、要件に合わせて微調整するだけです。
メール処理からソーシャルメディア管理まで、自動化したいあらゆるタスクに対して、ライブラリにテンプレートが用意されている可能性が高いでしょう。
まとめ
n8n は豊富な統合エコシステムを提供しており、数千のサービスやツールをつなげて AI エージェントを構築できます。本チュートリアルで扱えたのは n8n のごく一部です。日常業務を自動化する AI エージェントの構築方法を通じて、n8n の可能性に触れる第一歩となれば幸いです。