はじめに
こんにちは! GxPの香取です。
この記事はグロースエクスパートナーズAdvent Calendar 2025の7日目の記事です。
今回は自動化ワークフローツールであるn8n(エヌエイトエヌ)についての記事となります。
n8nに触れたことがない人が、AIを使用したワークフローを作成できるようになることを目的としています。
n8nについての説明や、始め方などの説明から入り、最後にハンズオンを載せています。
適宜必要な箇所まで読み飛ばしてください。
想定読者
- 日常的に同じ業務があり、めんどくささを感じている人
- n8nという名前だけ聞いたことがあるが、使ったことがない人
- 自動化が好きな人/興味がある人
n8nってそもそも何?
n8nとは、ノーコード/ローコードでアプリやサービスを自動連携できるワークフロー自動化ツールです。
AIモデルとの連携も簡単にでき、文章生成・要約・分析などのAI処理をワークフローに組み込むことができます。
クラウド版だけでなく、セルフホストも可能なのでセキュリティ的にも安全に運用できます。
例えばこんなことができます。
- メールを受信すると自動で内容をAI要約し、Slackに通知
- Webフォーム入力 → AIで分類
- 定期的にWeb APIからデータ取得し、AIでレポート生成
- フォームに問い合わせが来るとGitHubでissueを作成
始め方
ローカル起動などセルフホストする場合はGitHubにソースコードがあるのでこちらをcloneして、READMEにあるQuick Startに従って操作を進めてください。
https://github.com/n8n-io/n8n
(有償ですが)クラウド版の場合は以下のURLからアカウント登録を進めてください。
14日間のお試しが可能です。
https://app.n8n.cloud/register
こちらの記事が参考になるかもしれません。
ワークフローの新規作成
アカウントの登録が終わったら、まずPersonalの右上にあるCreate workflowを選択しましょう。

ここにノードを置き、ノードをつなぎ合わせることでワークフローを作り上げていきます。
ノードについて
本格的に作り始める前にn8nのノードについて説明します。
ノードとはn8n上で動く四角かったり、丸かったりするものです。

それぞれのノード一つずつが単一の処理を行っており、ノードをつなぎ合わせることで一連の処理を作成することができます。
n8nは大きく分けて2種類のノードがあります。
- トリガー
- アクション
トリガー
ワークフローを動かすきっかけとなるものです。
「手動実行」「Webhookで呼ばれたとき」「スケジュール実行」などスタンダードなトリガーから、「GitHubのissueに変化があった時」などの外部サービス依存のトリガー、「ワークフローがMCPサーバとして呼ばれたとき」や「メールを受け取った時」などテクニカルなトリガーも存在します。
ワークフローを新規作成後の+を押すと出てくるノードの一覧はすべてトリガーのノードになります。

(トリガーの例。 左側が丸くなっている)
アクション
ワークフローの核となる部分。アクションのノードをつなぎ合わせて処理を行い、結果を出力します。
HTTPリクエストや現在日付を取得するもの、JavaScriptのコードを実行するもの、GitHubでissueを作成するもの、AIエージェントが処理を行うものなどさまざまです。

(アクションの例。四角い)
ノードを開くと何かしら値を入力する場所があります。
例えばHTTPリクエストならURLやヘッダー、JavaScriptのノードであればJavaScriptのコードを書く部分を入力することができます。
この際に左側にはそれまでのノードで出力された変数が格納されており、ドラッグ&ドロップすることで変数を使用することができます。

前のノードで作成されたurlという変数をHTTPリクエストのURL欄に入れている例
アクションノードの中にはノードの動きを制御するノードもあります。
条件によってフローを変えるIfや、リスト要素数分処理を動かすLoop、SlackやDiscordにメッセージを送りOKが出るまで処理を待つノードなど、処理は行わないがノードの動きを制御しているノードになります。
複雑なワークフローや一度人間の確認が必要なワークフローなどに使用されます。

まとめるとこんな感じです。
| ノードの種類 | 働き |
|---|---|
| トリガー | ワークフロー起動 |
| アクション | ワークフローとしての処理を行う。どのノードを動かすかを制御するものもある |
クラスターノード
ノードの中には1つのノードで完結せず、複数のノードをつなぎ合わせて動くノードがあり、クラスターノードと呼ばれています。

もととなるノード(上の画像ではAI Agent)をルートノード(Root node)、下についている丸いノードをサブノード(Sub-nodes)といいます。
例えばAI AgentはChat Model Memory Toolのサブノードを接続することができます。
Chat Model
AIエージェントとして使用するAIのモデル。
ChatGPTやGemini、AWSのBedrockなどから選択することができます。
使用するためにはAPIキーなどの認証情報が必要となるので注意が必要です。
Memory
AIの記憶部分。
チャットの記憶を保持してくれる。postgresなどのdbを選択することもできる。
Tool
AIが処理を行うための手足のようなもの。
例えばAIエージェントのノードにGitHubでissueを作成するToolを接続すればAIが勝手にGitHubでissueを作ってくれるようになりますし、メールを読むToolを接続すればメールの内容をAIが読んでくれます。
作ってみよう!(ハンズオン)
今回は簡単な例として「毎日天気を取得してAIに要約してSlackに連絡」というワークフローを作成してみようと思います。
全体構成のイメージはこんな感じです。

毎日実行するトリガーの追加
まずはトリガーを追加しましょう。
Add first step...を押すことでトリガーを追加することができます。
今回はOn a schedule を選択しましょう。

スケジュール実行する頻度や時間を選択できる画面が表示されるので適当に入れましょう。
(毎日朝6時に実行するように作成しました。)

タイムゾーンが初期値でAmerica/New_Yorkになっているかもしれないので、ワークフローのSaveボタンの右側...からSettingsを開き、タイムゾーンをAsia/Tokyoなどに変更しましょう。

天気取得処理の追加
天気を取得するために今回はOpen-MeteoというフリーのAPIを使用します。
Schedule Triggerの右から生えている+を押すとノード一覧が表示されるのでHTTP Requestを選択しましょう。(検索欄を使用すると便利です)

HTTPリクエストのメソッドやURL、認証情報やパラメータを入力する欄が表示されます。
ここにOpen-MeteoのAPI情報を入れていきます。

今回はGxP本社のある新宿の天気を取得してみます。
ChatGPTなどにやりたいことを伝えると必要なURLやパラメータの情報が出てくるので活用しましょう。(内容が正しいかどうかはよく確認しましょう)
プロンプト例
https://open-meteo.com これのAPIを使って新宿の今日の天気を時間ごとに取得するためのURLとパラメータを提示して
出力された結果をもとにURLとQuery Parametersを入力しました。
ちゃんとAPIが呼べるか確認する場合はExecute stepを押すとここまでのノードを実行して動作確認を行うことができます。

AIに要約してもらう
APIのレスポンス結果をもとに要約をしてもらいましょう。
AI > AI Agent からノードを追加しましょう。

初期状態ではチャットで動く前提の設定になっているのでSource for Prompt(User Message)をDefine belowに変更しておきましょう。

今回はプロンプトとしてAPIレスポンスの1時間ごとの天気を使用し、システムメッセージとしてどのような形式で出力するか指定していきます。
左側にはここまでのノードで作成された変数が並んでおり、ドラッグ&ドロップで変数を使用することができます。今回は1時間ごとの天気情報を渡したいのでHTTP Requestのhourlyをドラッグ&ドロップします。
Add Optionを押すことで追加できるシステムメッセージには、渡したプロンプトで何をしてほしいかを記載します。

(左に変数が表示されていない場合はノードがつながっていない、またはノードを動かしていない状態になっています。ノードを動かしていない場合はExecute previous nodesを押すことで表示されます)
現段階ではまだAIは動きません。動かすためにはChat Modelを選択する必要があります。
AI Agentの下についている+を押すとChat Modelを選択することができるので、ご自身の好きなモデルを選択してください。

AI Modelの使用には認証情報が必要です。
AIの種類によって入力内容なども異なるとは思いますが、基本的にはCredential to connect withからCreate new credentialを選択しAPIキー等を入力することで使用できます。

Execute stepで動きを見てみるとしっかり出力されていることが確認できます。

Slackに通知する
n8nでSlackにメッセージ送信はサポートされていますが、ボットの準備などが必要で大変なので、今回はメッセージを送るワークフローをWebhookで起動するようにします。
Slack ワークフローの準備
Slackを開き、チャンネル右上の点々⋮ > ワークフローを追加 > ワークフローを作成する でワークフローを作成できます。

トリガーを選択 > Webhookから を選択。
変数には表示したいメッセージを受け取るためのmessageを追加しました。

ステップを追加からメッセージを流したいチャンネル or 個人を指定。
メッセージに先ほど登録したmessage変数を設定する。

ワークフローを公開するとWebhookからの中にWebhookのURLが生成されるのでコピーする。

Slack通知用のHTTP Requestを作成する
AI Agentの右側にHTTP Requestノードを配置します。

MethodはPOST、URLは先ほどのWebhook URL, Send BodyのNameにはmessage、ValueにはAI Agentのoutputを入れます。

これでワークフローは完成です!
実際に動かしてみましょう。
ノードが表示されている画面からExecute workflowを押すとワークフロー全体の起動ができます。

ワークフローを有効化する
ワークフローは今のままでは下書き状態です。
完成したら画面上部からinactiveと書いてある部分をクリックし有効化(active)しましょう。

最後に
今回のハンズオンを発展させ、AI AgentにHTTP RequestするToolを接続して指定した場所の天気を答えてくれるようにすることも可能ですし、別サービスのAPIを使用することで定期的に更新があるかをチェックしに行くワークフローなども作成可能ですので、ぜひいろんなものを作ってみてください。
ワークフローを作る際は、「ボタンを押して起動」みたいな使うためにワンステップ必要なワークフローは使われなくなる傾向があるので、可能な限り「全自動」で動くような仕組みを考えるように心がけましょう。
それではよい自動化ライフを!

