🐧

n8nを使ってみた ~前編:Slack連携とAIエージェント~

に公開

はじめに

トレジャー・ファクトリーのsho64です。
最近、システム管理業務をワークフロー自動化ツールで、負荷軽減できないか挑戦しています。

この度、GoogleWorkspaceのユーザ管理業務を簡略化・負荷軽減するべく、n8nを使ってみました。汎用的なノウハウとして使えそうな情報を、初心者や導入検討中の方に向けた記事として書いていきます。

n8nワークフローサンプル
n8nワークフローサンプル

全3編に分けて紹介しますので、利用シーン別にて参照しやすい形となっていれば幸いです。

n8nとはなんぞ??

https://n8n.io/
早速、教えてGemini様(3行で要約)。

n8n(エヌエイトエヌ)を3行でまとめると、以下の通りです。

  • アプリ連携の自動化ツール: 異なるサービス同士をノーコードでつなぎ、業務を自動化できます。
  • 圧倒的な自由度とコスパ: 自社サーバーに設置すれば無料で使い放題で、コードを書いて複雑な処理も可能です。
  • AI連携に強い: ChatGPTなどの生成AIを組み込んだ高度な自動化エージェントを、視覚的に作成できます。

要するに、AIも使って、色々な処理を連携させる、コスパの良い自動化ツール、といった理解。

DifyやMakeなど、類似のワークフローツールもあるものの、今回はローカル環境で構築すれば実質いくらでも使える点をメリットと感じ、n8nを採択。

環境構築

AWS EC2上にDockerで構築。
社内向けドメインと汎用SSL証明書も当てて、httpsでアクセスできるようにした。
ここの詳しい手順はバッサリ割愛、この記事ではn8n自体の操作にフォーカスしていくため。
環境構築では既に参考になる記事も多数あるので、いくつか参考にしたURLだけ貼っておく。

環境構築の参考になるURL

用語の理解

2025年12月現在では完全に対応した日本語版はまだ出ていない、要するに英語版が主流という状況。メニュー画面などでよく使う用語は先に押さえておくのが肝要・・・ということで、7つほどまとめて先にご紹介。

キャンバス(Canvas)

ワークフローを作る領域、ここに様々なアクションを追加・連結させていく。
キャンバス

ワークフロー(Workflow)

自動化プロセスそのもの、複数の処理を組み合わせて1つの自動処理とした流れのこと。
ワークフロー

ノード(Node)

ワークフロー内の1つ1つの処理のこと、ノードを連結させていくことで複雑な一連の流れを作っていく。
ノード

トリガー(Trigger)

ワークフローの起点にあたり処理、手動で実行開始する以外にも「メールトリガー」や「チャットトリガー」のほか様々なサービスとのWebhook連携も標準で備えている。
ノードの1種でありトリガーノードとも呼ばれる。
トリガー

コネクション(Connection)

トリガーやノード同士をつないでいる部分、データの流れを示す。
コネクション

認証情報(Credential:クレデンシャル)

外部サービスとの接続・認証情報、あらかじめ設定しておくことで様々な外部サービスへ自動的に連携ができるようになる。
認証情報

実行(Execution:エグゼキューション)

“実行”あるいは“実行結果”のこと、n8nではExecutionsタブから実行結果を確認できる、デバッグツールも兼ねているので複雑なワークフローになるほどよく使うことになる機能。
実行
実行結果

シンプルなワークフローを作る

ここから実際にn8nでの操作を行ってみる。
今回はとりあえず動くワークフローを作り、必要なノードは後から置き換えていくこととする。
トリガーは画面上で簡単に入力ができる「チャットトリガー」を使い、AIエージェントからの出力結果をSlackで確認できるワークフローを作ってみる。

前編での解説ポイントは、大きく分けて2点にまとめる。

  1. Slackアプリとの連携
    • Slackアプリの作成と認証情報の発行
    • Slackアプリのインストール
    • Slackアプリとの認証設定
    • Slackノードの追加
  2. AIエージェントとの連携
    • Google AI Studio APIキーの発行
    • Gemini(Google AI Studio)との認証設定
    • AIエージェントノードの追加とプロンプト設定

大きなポイントに入る前に、少しだけ先にn8nに触れてみよう!

チャットトリガーでワークフローを作り始める

n8nでアカウント登録まで行い、ログインをした直後は、Workflowsタブには何もない状態・・・。
まっさらな環境に初めてのワークフローを作るには「Create workflow」を押してみる。
Create workflow

すると、用語の理解で紹介した「キャンバス」の画面が表示された!
ここで最初のノードを追加していく。

中央に表示された「Add first step...」の「+」を押すと、右サイドにノード選択のメニューが出現する。キーワードに「chat」と入力し、サジェスト上位にある「Chat Trigger」を選んでみる。
Add first step

ノードの詳細設定を行う画面になるが、「Back to canvas」もしくは「Escキー」を押してキャンバス画面へ戻る。
Chat Trigger 詳細

デデーン!!
Chat Trigger

チャットトリガーがキャンバスに作成された。

「Open chat」を押すと、チャットメッセージの入力窓などが開く。
試しにテキストを入力して送信すると、チャットトリガーのみのワークフローが実行され、OUTPUTに入力結果が表示される。
はじめての実行

最小構成ではあるが、1つのワークフローが出来上がった。
分かりやすいワークフロー名を付けて、こまめにセーブしておくことをオススメする。

Slackとの連携

Slackとの連携に入る前に、Slackのワークスペースが未作成の方は、以下のヘルプページなどから事前にご用意を!
https://slack.com/intl/ja-jp/help/articles/217626298-Slack-のはじめ方-—-ワークスペース作成者編

Slackアプリの作成と認証情報の発行

さて、Slack連携のために、まずSlack側で認証トークンの生成とアプリの登録が必要。
Slackアプリの管理画面である「Slack API」を開く。
https://api.slack.com/apps

画面を開いたら、右上にある「Create New App」の緑色のボタンを押す。
Slack API 画面

Slackアプリを作る方法の選択画面となるので「From Scratch」を選択。
Create an app

任意の「App Name」を入力、アプリを常駐させるワークスペースを選択して、右下の「Create App」ボタンを押す。
From Scratch

Slackアプリが新規作成され、設定画面に切り替わる。
Slack API Settings

画面をスクロールすると「Scopes」というセクションがあるので、今回は以下のスコープを設定する。
OAuth & Permission / Scopes

スコープを設定したら画面の上の方まで戻り、OAuth Tokensの「Install to <ワークスペース名>」ボタンを押す。
OAuth & Permission / Install

ワークスペースへのアクセス許可画面が出てくるので「許可する」ボタンを押す。
アクセス許可画面

許可すると「OAuth & Permissions」の画面に戻ってくる。
「Bot User OAuth Token」が生成されているので別の場所にメモして厳重に保管する。
非常に重要なTokenなので決して外部には漏らさない。
Bot User OAuth Token

Slackアプリのインストール

次いでSlackアプリをインストールして、出力先とするSlackチャンネルと連携させる。
Slack画面で ツール > App を表示する。
Slack画面 App

作成したアプリを選択し、さらに「アプリを開く」を選択する。
アプリを開く

出力先とするSlackチャンネルにて、作成したSlackアプリをメンションしてメンバーに招待する。
メンバー招待

これでSlack側の連携は完了。
次の手順から再びn8nの画面へ!

Slackアプリとの認証設定

n8nの管理画面にて、Credentialsタブを開く。
右上の「Create credential」ボタンを押す。
Credentials

キーワード検索窓でSlackと入力すると候補が絞られる。
今回は「Slack API」を選択し、「Continue」ボタンを押す。
Add new credential

Slackアプリの作成時に生成された「Bot User OAuth Token」を、「Access Token」に貼り付けて「Save」ボタンを押す。
Slack API Setting

「Connection tested successfully」が表示されれば認証設定の登録成功。
Slack API Setting / success

Slackノードの追加

仕上げにn8nワークフローへSlackノートを追加する。
先に作っておいたチャットトリガーの右に伸びている「+」を押して、右サイドにノード選択のメニューを出す。
今度はキーワードに「Slack」と入力し、サジェストで出てきた「Slack」を選んでみる。
Slackノードを検索

Slackノードの細かいメニューに分かれて表示されるため、今回は「Send a message」を選択。
Slackノード Send a message 選択

Slackノードの詳細設定では、いくつか設定を変更・入力する必要がある。

  • Credential to connect with:先ほど登録したSlackアプリとの認証設定
  • Send Message To:Channel
  • Channel:From list > 連携先とするチャンネル
  • Message Type:Simple Text Message
  • Message Text:Expression > {{ $json.chatInput }}
    Slackノードの詳細設定

特に「Message Text」ではJSON形式での記述方法を試しに行ってみた。
また今回はチャットトリガーの直後に追加していることから、左側の「Schema」に「chatInput」の入力情報が表示されているので、これをドラッグ&ドロップして「Message Text」に持ってくるだけでも同じ入力値を設定することができる。
前のノードで出力される情報をポイポイッと配置するだけで、簡単に処理の流れを作ることができるのがn8nの魅力の1つなので、ぜひ覚えてもらいたい。

Escキーでワークフロー画面へ戻った後、試しにチャット入力窓へテキストを入力して送信する。
Slackノード連結後の実行

今回はOUTPUTだけでなくSlackノードへINPUTした内容も表示された。
下部の実行結果の窓では、ワークフローで選択中のノードの情報が表示される。
初回実行時はチャットトリガーが選択されていたが、今回はSlackトリガーが選択中だったため、表示される結果が変わった。
チャットトリガーを選択すれば、チャットトリガーの実行結果も確認することができる。

また、Slackトリガーを連結させた結果として、Slackチャンネルも確認する。
Slackノードの出力結果 D・G・4!

n8nデフォルトの署名付きではあるが、チャットで入力したメッセージがSlackでも想定通り表示された!

AIエージェント(Gemini)との連携

n8nのワークフローの中で、入力データをAIで解析・加工していきたいので、AIエージェントノードを追加する。
今回は Gemini をAIモデルに採用するため、Google AI Studio でAPIキーを発行して利用する。
https://aistudio.google.com/

Google AI Studio APIキーの発行

Google AI Studio でのAPIキーの発行は非常にシンプル。

  1. Google AI Studio のサイトへ、Googleアカウントでログインする。
  2. 「新しいプロジェクトを作成」する。
  3. 「APIキーを作成」する。

無料枠であれば、難しい設定も不要なので、説明自体もここでは割愛。
APIキーのみ別の場所にメモして厳重に保管した前提で進める。

Gemini(Google AI Studio)との認証設定

今回もn8nの管理画面にて、Credentialsタブを開く。
右上の「Create credential」ボタンを押す。
Credentials

キーワード検索窓でgeminiと入力すると候補が絞られる。
今回は「Google Gemini(PaLM) Api」を選択し、「Continue」ボタンを押す。
Add new credential

Google AI Studio で生成されたAPIキーを、「API Key」に貼り付けて「Save」ボタンを押す。
こちらも「Connection tested successfully」が表示されれば認証設定の登録成功。
Google Gemini(PaLM) Api Setting / success

AIエージェントノードの追加とプロンプト設定

n8nのワークフロー画面に戻り、今度はチャットトリガーとSlackノードの間のコネクション(矢印)にマウスオーバーする。そうすると「+」とごみ箱のアイコンが表示されるので、「+」を押す。
おなじみの右サイドメニューが出てくるので、冒頭にある「AI」を選んでみる。
AIノードを選択

AIノードにも種類がいくつかあるが、今回はオーソドックスな「AI Agent」を選択する。
AI Agent

詳細設定は一旦Escキーでスキップして、ワークフロー画面に戻ってみる。
チャットトリガーとSlackノードの間に「AI Agent」が挟まっていれば想定通り。
もし別の場所にノードが出来てしまっていたり、コネクションがこんがらがっていたりした場合には、ノードをドラッグ&ドロップして配値変更を行い、コネクションの接続先もドラッグ&ドロップで繋ぎなおしてほしい。
AI Agent 周辺

AIエージェントノードの詳細設定の前に、AIモデルを追加する。
AIエージェントの下にいる「Chat Model」の「+」を選択し、右サイドメニューから「Google Gemini Chat Model」を選ぶ。

  • Credential to connect with:先ほど登録したGemini(Google AI Studio)との認証設定
  • Model:今回は「models/gemini-2.5-flash」を選択
    Google Gemini Chat Model

AIモデルを追加したら、改めてAIエージェントの詳細設定を行う。
「AI Agent」をダブルクリックすると詳細設定画面へ切り替わる。

  • Source for Prompt (User Message):Connected Chat Trigger Node(初期値のまま)
  • Prompt (User Message):{{ $json.chatInput }}(初期値のまま)
  • Options
    • System Message:以下のようなシステムプロンプトを入力
あなたのペルソナと口調:
* 性格: 明るい、丁寧、ニュースキャスターのお姉さん
* 口調: 3文以内に要約する、「です」「ます」などを多用し、丁寧な言葉遣い
* 出力: 必ず1行

AI Agent 詳細設定

ワークフローとしてはこのような状態。
AI Agent 周辺2

ただし、このままではSlackノードの設定がAIエージェントとうまくつながっていない。
試しにチャットへ適当に入力して実行してみると、ワークフロー自体は正常終了するもののSlackチャンネルへは「undefined」という文字列が返ってくる。

Slackノードの詳細設定を開いてみると「Message Text」が赤くなっている。
これは前の処理から送られてくる情報として、直前のチャットトリガーの「chatInput」を想定していたところ、AIエージェントが間に入ったことで、直前から送られる情報が変わってしまったことに起因している。
Slackノードの詳細設定

今回は、AIエージェントの応答内容をSlackチャンネルに送るようにもしたいので、「Message Text」は、直前のAIエージェントが送る「output」に置き換える。
ひとつ前の実行結果をもとにした変更後の結果も確認できるのでとても便利。
Slackノードの詳細設定2

この設定内容で再度チャットへ入力すると、AIエージェントからの返答内容がSlackチャンネルへ送られるようになる。
Slackノードの出力結果 さいたま市
Slackチャンネルへの出力結果

今回はここまで、忘れずにセーブして終了。

次回予告

ひとまず今回は初めてのn8nでワークフローを作るところまで。
Slackへの出力や、Geminiを用いたAIエージェントの応答もワークフローに組み込んでみた。
いよいよ次回の記事で、メインターゲットの GoogleWorkspace への連携に踏み込んでいくので、記事更新をお待ちくださいませ。

TREASURE FACTORY TECH BLOG

Discussion