無料入門ガイド

n8n入門:Docker構築からGmail通知ワークフローまで

·15 min read·Nexeed Lab
n8nGmail入門ガイド

オープンソースの業務自動化ツールn8nをDockerでローカル構築し、Scheduleトリガーから始まるGmail通知ワークフローを作成する手順を初心者向けに解説します。

はじめに

業務自動化ツールとして近年急速に注目を集めているn8n(エヌ・エイト・エヌ)は、ノーコード・ローコードで複数のサービス間の連携を実現するオープンソースのワークフロー自動化プラットフォームです。 ZapierやMake(旧Integromat)と同様の役割を担いますが、自社サーバーにセルフホストできるという大きな強みを持ちます。 外部クラウドにデータを渡したくない企業や、コストを抑えて使いたいエンジニアにとって、n8nは非常に魅力的な選択肢です。

本記事では、n8nをDockerを使ってローカル環境に構築し、Scheduleトリガー→HTTP Request→Gmail通知という実践的なワークフローを一から作成するまでの流れを解説します。 プログラミングの経験は不要です。 ターミナルでコマンドを実行できる環境があれば、この記事を最後まで進めることができます。


n8nとはどんなツールか

n8nは2019年にJan Oberhauserがオープンソースプロジェクトとして公開したワークフロー自動化ツールです。 現在はベルリンを拠点とするn8n GmbHが開発を主導しており、GitHubのスター数は5万以上に達しています(2026年4月時点)。

対応するサービス(ノード)は400以上あり、Gmail・Slack・Notion・GitHub・Google Sheets・OpenAI・Stripeなど、業務でよく使われるサービスはほぼ網羅されています。 専用ノードが存在しないサービスでも、HTTP Requestノードを使えばREST APIに対応したほぼあらゆるサービスに接続できます。

料金体系は大きく2つに分かれます。

セルフホスト(自社業務向けは無料) 自社サーバーやローカルPCにインストールして使う場合、自社業務への利用は無料で行えます。 ただし「Sustainable Use License」を採用しているため、他社向けSaaSとして再販・提供する場合には有償ライセンスが必要です。

n8n Cloud(有償クラウド版) サーバー管理の手間なく使えるホスティング版です。 StarterプランはUS$20/月から利用でき、チームでの利用や管理コストをかけたくない場合に適しています。

入門段階では、まず手元のPCでセルフホスト版を試すのが最もコストがかからずおすすめです。


他のツールとの違い:n8nを選ぶ理由

ZapierやMakeと比べたとき、n8nには次の点で差別化されています。

データを自社環境に閉じ込められる ZapierやMakeはSaaSサービスなので、連携処理のデータがベンダーのサーバーを経由します。 n8nをセルフホストすれば、顧客データや社内情報が外部に出ることなく自動化処理を完結できます。 コンプライアンス要件が厳しい業界や、個人情報を扱う業務での活用に適しています。

コードで柔軟に拡張できる 「Code」ノードを使うと、JavaScriptやPythonで独自のデータ処理を書けます。 既製ノードの組み合わせでは表現できない複雑な条件分岐やデータ変換も自由に実装可能です。

ベンダーロックインリスクが低い ZapierやMakeはクローズドなプロプライエタリサービスなので、料金改定や機能変更があっても対応するしかありません。 n8nはソースコードが公開されており、最悪の場合でもフォークして自己管理できる選択肢が残ります。

一方でセルフホストは、インフラの維持管理(バックアップ・アップデート・HTTPS化など)を自分で行う必要があります。 「管理の手間をかけたくない」という場合はn8n Cloudの有償プランも選択肢の一つです。


Docker Composeでn8nを構築する

事前に必要なもの

  • Docker Desktop(Mac/Windows用)またはDocker Engine + Docker Compose(Linux用)
  • ターミナル(コマンドを入力できる環境)

まだDockerをインストールしていない場合は、Docker Desktop公式サイトからダウンロードしてインストールを済ませてください。

作業ディレクトリの作成

まず、n8n用の作業ディレクトリを作成してそこに移動します。

mkdir n8n-local && cd n8n-local

docker-compose.ymlの作成

以下の内容でdocker-compose.ymlファイルを作成します。

version: "3.8"

services:
  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=your_strong_password
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=Asia/Tokyo
      - TZ=Asia/Tokyo
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

主な環境変数の意味を補足します。

  • N8N_BASIC_AUTH_ACTIVE:ダッシュボードへのBasic認証を有効にします
  • N8N_BASIC_AUTH_USER:ログイン時のユーザー名です
  • N8N_BASIC_AUTH_PASSWORD:ログイン時のパスワードです。必ず自分だけが知るパスワードに変更してください
  • GENERIC_TIMEZONETZ:タイムゾーンをJST(日本標準時)に設定します。これによりScheduleトリガーが正確な日本時間で動作します

volumesセクションの設定により、ワークフロー定義やクレデンシャルはDockerボリューム(n8n_data)に永続化されます。 コンテナを停止・再起動してもデータが消えることはありません。

n8nの起動

作業ディレクトリで以下のコマンドを実行します。

docker compose up -d

-dオプションをつけるとバックグラウンドで起動します。 初回はn8nio/n8n:latestイメージのダウンロードがあるため、起動完了まで1〜3分かかります。 起動後、ブラウザでhttp://localhost:5678を開き、設定したユーザー名とパスワードでログインしてください。 n8nのダッシュボードが表示されれば構築完了です。


n8nの基本概念を理解する

ワークフロー作成の前に、n8nでよく使われる用語を整理しておきます。

ワークフロー(Workflow) 自動化処理の一連のフロー全体を指します。 ZapierでいうZap、MakeでいうシナリオがワークフローNodeに相当します。 1つのワークフローに複数のノードを配置して処理フローを定義します。

ノード(Node) ワークフローを構成する処理の最小単位です。 「Gmailでメールを送る」「SlackにメッセージをPostする」「HTTP APIを叩く」など、1ノード=1処理と考えると把握しやすいです。

トリガーノード(Trigger Node) ワークフローを起動するきっかけとなるノードです。 代表的なトリガーには「Scheduleトリガー(定期実行)」「Webhookトリガー(外部リクエストで起動)」「メール受信トリガー」などがあります。

アクションノード(Action Node) トリガーが起動した後に実行される処理ノードです。 APIリクエスト・データ変換・他サービスへの書き込みなど、具体的な処理を担当します。

クレデンシャル(Credential) 各サービスへの接続に使うAPIキーやOAuthトークンを安全に管理する仕組みです。 一度登録すると複数のワークフローで再利用でき、認証情報がワークフロー定義に直接含まれないためセキュリティ的にも安全です。

式(Expression) ノードの設定フィールドで、前のノードから受け取ったデータを動的に参照する記法です。 {{ $json.fieldName }}という形式で書きます。 たとえば前のノードが{ "title": "Hello" }を返していた場合、{{ $json.title }}と書けばその値をメール件名などに埋め込めます。


実践:最初のワークフローを作る

いよいよ実際にワークフローを作成します。 ここで作るのは「毎朝9時に外部APIを叩いてデータを取得し、結果をGmailで送信する」ワークフローです。

使うノードは次の3つです。

  • Schedule Trigger:毎朝9時に起動するトリガー
  • HTTP Request:外部APIにGETリクエストを送る
  • Gmail:取得結果をメールで通知する

ステップ1:新規ワークフローを作成する

n8nダッシュボードの左サイドバーで「+ New workflow」をクリックします。 空白のキャンバスが開いたら、画面中央の「+」ボタンからノードを追加していきます。

ステップ2:Schedule Triggerを設定する

ノード追加パネルの検索ボックスに「Schedule」と入力し、Schedule Triggerを選択します。 設定パネルで次のように値を入力します。

  • Trigger Interval:Days
  • Days Between Triggers:1
  • Trigger at Hour:9
  • Trigger at Minute:0

「Close」または「Back to canvas」で設定を閉じると、キャンバスにSchedule Triggerノードが配置されます。

ステップ3:HTTP Requestノードを追加する

Schedule TriggerノードRight端にある「+」ボタンをクリックし、ノード追加パネルから「HTTP Request」を選択します。

今回はデモとしてJSONPlaceholderという無料のモックAPIを使います。 設定値は次のとおりです。

  • Method:GET
  • URLhttps://jsonplaceholder.typicode.com/todos/1

Execute node」ボタンをクリックすると、以下のようなJSONレスポンスが表示されます。

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

このデータが次のGmailノードで参照されます。

ステップ4:GmailノードでAPIデータを通知する

HTTP Requestノードの右端「+」からGmailノードを追加します。 初めてGmailノードを使うときはクレデンシャルの登録が必要です。

  1. 「Credential to connect with」の横にある「Create new credential」をクリック
  2. 「Sign in with Google」を選択してGoogleアカウントでOAuth認証
  3. 認証が完了すると自動的にn8n画面に戻ります

クレデンシャル登録後、ノードの設定を行います。

  • Resource:Message
  • Operation:Send
  • To:通知を受け取りたいメールアドレス
  • Subject【n8n通知】タスク情報:{{ $json.title }}
  • MessageタスクID: {{ $json.id }}\n完了状態: {{ $json.completed }}

{{ $json.title }}などの式(Expression)は、HTTP Requestノードが取得したJSONの各フィールドを参照しています。 件名や本文に動的にデータを埋め込めることが確認できます。

ステップ5:テスト実行とアクティブ化

ワークフロー画面上部の「Test workflow」ボタンをクリックします。 各ノードが順番に実行されるのが視覚的に確認でき、設定したアドレスにメールが届けば成功です。

動作確認が取れたら、画面右上のトグルスイッチを「Active」に切り替えます。 これで翌日の朝9時から自動実行が始まります。


運用時に知っておきたいこと

データのバックアップ

n8nのワークフロー定義・クレデンシャル・実行履歴はn8n_dataというDockerボリュームに保存されています。 万が一のコンテナ削除や環境移行に備えて、定期的にバックアップを取る習慣をつけましょう。

docker run --rm \
  -v n8n_data:/data \
  -v $(pwd):/backup \
  busybox tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz /data

このコマンドで現在の日付つきのtar.gzファイルとしてボリュームを圧縮保存できます。

バージョンアップ方法

n8nは頻繁にアップデートがリリースされています。 次のコマンドでイメージを最新版に更新してコンテナを再起動できます。

docker compose pull && docker compose up -d

メジャーバージョンアップ(例:1.x→2.x)の際は、事前にリリースノートを確認して破壊的変更がないかチェックしてください。

本番環境でのHTTPS化

ローカル環境ではHTTPで動作しますが、本番公開する場合はHTTPS化が必須です。 Nginx + Let's EncryptやCloudflare Tunnelを使って443番ポートへのHTTPSアクセスに対応させてください。 HTTPのままではBasic認証のパスワードが平文でネットワークを流れるリスクがあります。


まとめ

本記事では、n8nの概要と特徴の説明から始まり、Docker Composeによる環境構築、基本概念の整理、そして「Schedule Trigger→HTTP Request→Gmail通知」という最初のワークフロー作成まで一通りの手順を解説しました。 n8nはドラッグ&ドロップの直感的な操作でノードをつなぐだけで、繰り返しの業務フローを自動化できる強力なツールです。 今回紹介したワークフローはほんの入り口に過ぎません。 SlackへのPush通知・Notionへのデータ書き込み・Google Sheetsへの定期集計など、応用できる場面は数え切れないほどあります。 まずはローカル環境で気軽に動かしてみて、自分の業務に役立つ自動化フローを一つずつ作り上げていってください。


参考資料

この記事をシェア

XFacebookはてブ
n8n入門:Docker構築からGmail通知ワークフローまで | AI活用ラボ