Contents
n8n の基本概念と全体像
n8n は「ノード」を組み合わせて業務フローを視覚的に設計できるオープンソースの自動化プラットフォームです。ここでは、ワークフロー・ノード・トリガーがどのように連携し、全体像が見えてくるかを解説します。
ワークフローとは何か
ワークフローは 1 つ以上のノードとそれらを結ぶエッジ(接続)で構成されます。
- 開始点 (トリガー):外部イベントやスケジュールが発生したときに自動的に実行が始まります。
- 処理段階:Set、HTTP Request、IF などのノードでデータ取得・加工・判定を行います。
- 終了点:メール送信やチャット通知など、結果を外部へ出力します。
この構造はフローチャートに似ているため、プログラミング経験がなくても直感的に把握できます。
ノードとトリガーの役割
| 項目 | 役割 |
|---|---|
| トリガー | ワークフロー実行の起点。Webhook、Cron、Polling など多様な方式が用意されています。 |
| ノード | データ取得、加工、条件分岐、外部サービス連携といった具体的アクションを実装します。 |
例)「毎朝 9 時に Gmail の未読メール数を取得 → 条件で重要度判定 → Slack に通知」
このようにトリガーが起点となり、ノードが順次処理を行うイメージです。
アカウント作成とデプロイ方式の選び方
n8n を本番環境で利用するには アカウント登録 と クラウド/セルフホストどちらかのデプロイ方式 の選択が必要です。本節ではそれぞれの特徴と選定ポイントを整理します。
n8n Cloud とセルフホストの比較
| 項目 | n8n Cloud(公式 SaaS) | セルフホスト(Docker 推奨) |
|---|---|---|
| 初期コスト | 無料プランあり、使用量に応じた従量課金 | サーバー費用と保守コストが別途必要 |
| メンテナンス | 自動アップデート・バックアップが標準装備 | バージョン管理やバックアップは自分で実施 |
| カスタマイズ性 | プラグインは公式提供分に限定 | Docker コンテナ内で自由に拡張可能 |
| セキュリティ要件 | GDPR・ISO 27001 準拠の環境を提供 | 社内ポリシーに合わせたネットワーク構成が必要 |
選定指針
- 初期導入コストと運用手間を最小化したい場合は n8n Cloud。
- データや認証情報を自社インフラ内で完結させたい場合は セルフホスト が適しています。
日本語表示の設定手順(公式 UI に基づく)
n8n の Web UI は多言語対応しており、日本語に切り替える手順はシンプルです。以下の流れで即座に日本語化できます。
- 画面右上の アカウントアイコン → Settings をクリック。
- 左メニューの General タブを選択し、Language のプルダウンから Japanese (ja) を選ぶ。
- Save ボタンを押すと、ページ全体が日本語に切り替わります。
補足:UI は左側にノードパレット、右側にプロパティパネルが配置されており、ドラッグ&ドロップ操作だけでワークフローを構築できます。公式ドキュメントは常に最新情報が反映されているため、設定手順の変更があればそちらをご確認ください。
実践:Gmail 受信 → Slack 通知 ワークフロー作成
本節では 「Gmail の未読メールを取得し、Slack に通知する」 というシンプルなワークフローを例に、トリガー設定から保存・実行までの手順をステップバイステップで解説します。
トリガーの基本設定
Cron(時間ベース)トリガーは定期実行に最適です。以下の操作で 5 分ごとに自動起動させます。
- 左パレットから Trigger → Cron ノードをドラッグしてキャンバスへ配置。
- プロパティパネルで Every 5 minutes を選択し、Save をクリック。
- 右上の Activate ボタンでワークフローを有効化すると、指定した間隔で自動的に実行されます。
ポイント:Webhook が必要なリアルタイム処理の場合は “Webhook” ノードに置き換えてください。
主なノードの追加と接続方法
| 手順 | 操作内容 |
|---|---|
| 1 | パレットから Gmail → Get All Emails をドラッグし、Cron と接続。 |
| 2 | 「Search Query」に is:unread と入力し、未読メールのみを取得するよう設定。 |
| 3 | 次に Slack → Send Message ノードを追加し、Gmail の出力と接続。 |
| 4 | Slack ノードの Channel に通知先チャンネル、Message Text に {{$json["subject"]}} を入力してメール件名を本文に流用。 |
ノード同士は線をドラッグするだけで接続できます。接続後は自動的にデータ型が表示され、互換性のない接続は赤くハイライトされます。
ワークフローの保存・テスト実行
- 画面右上の Save アイコンをクリックし、名前(例:
Gmail→Slack 未読通知)を入力。 - Execute Workflow ボタンで即時実行。下部のログパネルに各ノードの出力がリアルタイムで表示されます。
- Slack にメッセージが届けば成功です。エラーが発生した場合は Error Trigger が自動的に起動し、詳細がログに記録されます。
この手順は公式チュートリアルでも同様に紹介されています(n8n Docs – Gmail → Slack)。
主要ノードと Expression/認証情報の活用ガイド
実務で頻出する Set、HTTP Request、IF ノードの基本設定と、データを動的に扱う Expression、安全な 認証情報管理 のポイントをまとめます。
Set、HTTP Request、IF ノードの概要
| ノード | 主な用途 | 設定例 |
|---|---|---|
| Set | 変数作成・データ整形 | key: "status", value: "processed" |
| HTTP Request | 外部 API 呼び出し | Method: GET、URL: https://api.example.com/users/{{$json["id"]}} |
| IF | 条件分岐 | 条件式:{{$json["priority"]}} === "high" |
これらのノードはプロパティパネルで Expression({{ }})を利用でき、前ノードの出力を柔軟に参照できます。
Expression の書き方と活用例
Expression は {{ }} で囲み、JavaScript ライクな構文が使用可能です。代表的なパターンは次の通りです。
- データ取得:
{{$json["subject"]}}→ 前ノードの JSON 出力から subject フィールドを抽出。 - 日付フォーマット:
{{new Date().toISOString()}}→ 現在時刻の ISO 文字列を生成。 - 三項演算子:
{{$json["unread"] ? "未読" : "既読"}}→ 条件に応じた文字列を出力。
Expression をノードの「Message Text」や「URL」に埋め込むだけで、動的かつ柔軟なワークフローが実現します。
認証情報(Credentials)の登録と安全管理
n8n では外部サービスへの接続情報を Credentials として暗号化保存できます。以下は Gmail と Slack の認証設定手順です。
- 左メニューの Credentials → Add Credential をクリック。
- 種類に Google OAuth2(Gmail 用)または Slack OAuth2 を選択し、必要なクライアント ID・シークレットを入力。
- スコープ例:
- Gmail →
https://www.googleapis.com/auth/gmail.readonly - Slack →
chat:write(メッセージ送信権限) - 保存すると自動的に暗号化され、ノード側では Credential ドロップダウンから選択できるだけです。
ベストプラクティス
- 個人ごとに API キーを発行し、共有アカウントは作らない。
- 定期的にキーの ローテーション(更新)を実施し、不要になったキーは即座に削除する。
- 本番環境では最小権限(Least Privilege)のスコープ設定を徹底する。
条件分岐・エラー処理のベストプラクティスとテンプレート活用
高度な自動化では IF ノードでの条件分岐 と エラーハンドリング が不可欠です。また、公式ギャラリーにあるテンプレートを活用すれば構築工数を大幅に削減できます。
IF ノードでの条件分岐設計
IF ノードは「True」と「False」の二本の出力ラインを持ちます。複数条件を組む場合は AND / OR グループ化が便利です。
- IF ノードをキャンバスに配置し、プロパティパネルで Add Condition をクリック。
- 式入力欄に
{{$json["priority"]}} === "high" && {{$json["status"]}} !== "closed"のように記述。 - 「Mode」ドロップダウンで AND(すべての条件が真)または OR(いずれかが真)を選択。
ポイント:複雑なロジックは サブフロー(子ワークフロー) に切り出すと保守性が向上します。
エラーハンドリングの基本
| 手段 | 概要 |
|---|---|
| Error Trigger | 任意のノードでエラーが発生した際に自動的に起動し、メールや Slack へ通知できます。 |
| Retry 設定 | 各ノードの Advanced タブで Retry on Failure を有効化し、リトライ回数と待機時間(例:3 回・30 秒)を設定します。 |
この組み合わせにより、一時的な API タイムアウトやネットワーク障害でも自動復旧が期待できます。
公式テンプレートの検索・活用方法
- 左パレット下部の Templates アイコンをクリック。
- キーワード(例:
Gmail Slack)で検索し、一覧から目的に合うテンプレートをプレビュー。 - Use Template ボタンで自分のワークスペースへコピーし、必要箇所だけ編集して保存。
公式ギャラリーは n8n の開発チームがメンテナンスしており、実務で頻出するシナリオが多数揃っています。テンプレートをベースにすれば、数分でフローが完成し、検証・本番移行がスムーズです。
まとめ – n8n を活用した業務自動化の次のステップ
- 全体像の把握:トリガー → ノード(処理) → 終了アクション の流れをイメージすれば、どんな業務でもフローに落とし込みやすくなります。
- デプロイ方式の選択:導入コスト・運用体制・セキュリティ要件に応じて Cloud かセルフホストを決定しましょう。
- 日本語化でハードル低減:公式 UI の言語設定は数クリックで完了するため、非エンジニアでもすぐに操作可能です。
- 実践的なノード活用:Set・HTTP Request・IF など基本ノードと Expression を組み合わせるだけで、柔軟かつ高度な自動化が実現します。
- エラーハンドリングとテンプレート:Error Trigger と Retry 設定で信頼性を確保し、公式テンプレートで開発スピードを最大化しましょう。
n8n はオープンソースでありながら、企業レベルの機能と拡張性を備えた ノーコード自動化プラットフォーム です。この記事の手順に沿ってまずは「Gmail → Slack」フローを作成し、実際に業務に組み込んでみてください。慣れてきたら、社内向けテンプレート集やサブフロー化など、さらに高度な活用へとステップアップできます。
本記事の情報は 2024 年 10 月時点の公式ドキュメント(n8n Docs)に基づいています。最新バージョンや UI の変更がある場合は、公式サイトをご確認ください。