今回は、n8n初心者向け講座の第2弾として、よくある受注管理のワークフローをn8nで自動化する方法をご紹介します。
自動化する流れは以下の2ステップです。

  1. Gmailで売上情報のメールを受信
  2. メールの内容を項目ごとに分けて、Googleスプレッドシートに書き込む

ECサイトの運営等でよくある定番のフローですね。

今回は1日に1回、以下のようなメールをGmailの「売り上げレポート」フォルダで受信している、という設定にします。

スプレッドシートに書き込むメールのサンプル

このメールの内容が、以下のようにスプレッドシートに自動で書き込まれるフローをn8nで作ります。

メールが分類され、スプレッドシートに書き込まれる

日々の業務で
「メールの内容をスプレッドシートに手入力する」
という作業は意外と多いです。
このような単純作業をn8nで自動化できれば、手間もミスも減らせて、業務の効率アップにつながります。
簡単なワークフローですので、ぜひ手を動かしながら記事を読んでください!

n8nでワークフローを作るための準備

はじめに、n8nでワークフローを構築するための準備をしましょう。

今回のワークフローを作るにあたり必要になるのは以下の4点です。

  • Googleアカウント
  • データの書き込み先となるスプレッドシート
  • n8nの実行環境(クラウド・セルフホストどちらでもOK)
  • n8nとGoogleのOAuth認証設定

これらの準備方法を解説します。

準備① Googleでスプレッドシートを用意

はじめに、Googleアカウントとスプレッドシートを用意します。

Googleアカウント=Gmailのメアド
です。
なので、Gmailを持っていれば、こちらのリンクからスプレッドシートを作成できます
※スプレッドシートは「Google Sheets」とも呼ばれます

Google Sheets公式サイト

スプレッドシートは、受注した内容を管理しやすいよう形式を整える必要があります。
ここで用意しておきましょう。
まず
「広告売り上げ管理」
というスプレッドシートを新規で作成してください。
※名前は業務に合わせて変えて問題ありません

そしてシート名を
「7月」
とします。
※これも変えてOKです

スプレッドシートの名称を変更

そして、A〜G列の1行目に以下の情報を書き込みます。

  • 注文番号
  • 曜日
  • 売れた商品
  • 金額
  • シート記入日時

これらはメールに記載された情報の「格納先」となります。
もちろん、業務内容等に応じて変えてOKです。

見た目を整えるため、ここではテーブルに変換しておきます。
以下の動画を見ながらテーブルに変換してください。

準備② n8nとOAuth認証を用意

次は、n8nとOAuth認証を用意します。

n8nを動かす方法は大きく分けると以下の3つがあります。

  • クラウド版
  • セルフホスト(サーバー)
  • セルフホスト(ローカル)

どの方法でも良いので、n8nが動く環境を用意してください。

クラウド版はn8n公式サイトから会員登録するだけでOKです(2週間は無料体験できます)。
サーバー or ローカルでセルフホストする方法は以下の記事で解説していますので、これから準備する方は参考にしてください。

OAuth認証とは、n8nと外部サービスとの連携設定のことです。
今回のワークフローではGoogleのサービス(Gmail・スプレッドシート)を使うので、GoogleとのOAuth認証が必須です。

もしクラウド版を利用している場合、n8nとGoogleのOAuth認証は簡単ですので準備は不要です。
セルフホストしており、まだOAuth認証を設定していない場合、以下の記事を参考にして設定してください。
【初心者でも簡単】n8nでGoogle OAuth認証を設定する方法を解説

設定したら、その流れでGoogle CloudでGmail API・Google Sheets APIを有効化してください。
Google Cloudの左上のナビゲーションメニューをクリックし

  1. APIとサービス
  2. ライブラリ

このように移動すれば、APIを管理する画面に移動します。
Gmail API・Google Sheets APIをそれぞれ検索し、有効化してください。

Google CloudでAPIとサービス・ライブラリをクリック

これで準備は完了です!

STEP① Gmail Triggerを設定する

ここからは、n8nを操作してワークフローを構築していきます。

はじめにGmail Triggerを設定します。
Gmail Triggerでは、Gmail内の「売り上げレポート」フォルダに届いたメールを、1日に1回処理するよう手配します。

n8nで「Gmail Trigger」と検索し、表示されるノードの中から
「On message received」
を選択してください。
下の動画を見ながら操作すると簡単だと思います。

もしクラウド版を使っている場合、「Credential to connect with」という項目が最上部に表示されます。
Credentialとは「認証情報」という意味で、ここではGoogleアカウントとの認証を意味します。
ここで、n8nとGmailを連携させます。
下の画像を見ながら順番にクリックしてください。

n8nとGmailを連携

認証情報を追加したら「Poll Times」を設定します。
「Poll Times」は、Gmailをチェックするタイミングを指定できる項目です。

今回のワークフローだと
Gmailをチェックするタイミング=スプレッドシートに書き込むタイミング
となります。
ここでは、仮に以下と設定し進めます。

  • Mode:Every Day
  • Hour:9
  • Minute:0

つまり毎日9時0分にGmailを読むように設定します。

「Poll Times」を毎日9時0分に設定

次に、Gmail内の「売り上げレポート」フォルダに届いたメールだけを読み込むよう設定します。
以下の流れで設定してください。

  1. 「Add Filter」をクリック
  2. 「Label Names or IDs」を選択
  3. 「売り上げレポート」を選択

動画もあります↓

これで設定は完了です。
「Fetch Test Event」をクリックして、テストしてください。
正常に動作していれば、以下のような画面が表示されます。

「Fetch Test Event」をクリックして、動作をテストした結果

STEP② Codeノードでメールの内容を項目別に整える

STEP1の作業で、Gmailに届いたメールの内容をn8nで読み取れるようになりました。
次は、そのメールの内容を「注文番号」「売れた商品名」「金額」など、項目ごとに分けて整理していきます。

この作業に使うのが「Codeノード」です。
Codeノードでは、JavaScriptというプログラミング言語を使って、簡単な処理を記述できます(Pythonにも対応)。
つまり、メールの内容を自動で分類するプログラムを書くことで、必要な情報だけを抽出できるようになるのです。

「JavaScriptなんて書いたことがない・・・」

こう思ったかもしれませんが、心配いりません。
JavaScriptは生成AIに書いてもらいます。

今回は以下のプロンプトを使い、ChatGPTにJavaScriptを書いてもらいます。
もしよかったらコピペしてご利用ください。

プロンプト

# 私がやりたいこと
n8nを使い、受信したメールをCodeノードを使って分類したい。
分類する項目は以下の8項目。

  • 注文番号
  • 曜日
  • 売れた商品
  • 金額
  • シート記入日時

シート記入日時だけはプログラム側で処理してください。
タイムゾーンは日本で。

分類したテキストはGoogleスプレッドシートに書き込みます。

# 受信したメールのサンプル
2025年7月15日(水曜日)の売り上げは下記となります。

■売り上げ明細
注文番号111111:バナー広告:100,000円
注文番号111112:クリック広告:50,000円
注文番号111113:アフィリエイト広告:20,000円

# あなたへの依頼
受信したメールを適切に分類するJavaScriptを書いて

このプロンプトで生成されたJavaScriptは以下です(コピペOKです)。

const rawSnippet = $json["snippet"] || "";
if (!rawSnippet) return [];

// 日付を抽出(例: 2025年7月15日(水曜日))
const dateRegex = /(\d{4})年(\d{1,2})月(\d{1,2})日((.+?))/;
const dateMatch = rawSnippet.match(dateRegex);

if (!dateMatch) return [];

const [_, year, month, day, weekday] = dateMatch;

// シート記入日時(日本時間)をISO形式で取得
const now = new Date();
const jstNow = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Tokyo" }));
const sheetTimestamp = jstNow.toISOString();

// 売り上げ明細部分を抽出
const salesRegex = /注文番号(\d+)[::](.+?):([\d,]+)円/g;
const results = [];
let match;

while ((match = salesRegex.exec(rawSnippet)) !== null) {
  const orderId = match[1];
  const product = match[2].trim();
  const price = match[3].replace(/,/g, "");

results.push({
    注文番号: orderId,
    年: year,
    月: month,
    日: day,
    曜日: weekday,
    売れた商品: product,
    金額: Number(price),
    シート記入日時: sheetTimestamp
  });
}

return results;

JavaScriptが用意できたら、n8nのCodeノードに貼ります。
CodeノードのModeは「Run Once for All items」にして、Languageは「JavaScript」に設定。
あとはJavaScriptを貼り付けてください。

n8nのCodeノードにJavaScriptを貼り付ける

JavaScriptを貼ったら「Execute step」で実行してください。
問題なく動けば、アウトプットの部分に以下のような記述が表示されます。

n8nのCodeノードのJavaScriptのアウトプット

このような表示が出てればOKです。

STEP③ Googleスプレッドシートに自動で記入しよう

最後に、STEP②で整理したデータを、Googleスプレッドシートに自動で書き込むようにします。

この作業をするため、「Google Sheets」の「Append or update row in sheet」というノードをn8nに追加します。
これは
「すでに同じ注文があれば上書き(書きかえ)し、なければ新しく書き込む」
という便利なノードです。
以下の動画を参考にして「Append or update row in sheet」をワークフローに追加してください。

ノードを追加したら、次のように設定してください。
Credential to connect with(接続に使う認証)は
「Google Sheets Account」
を選びます。
Operationは
「Append or update row」
を選びましょう。

Google Sheetsノードの設定

残りは以下のように設定してください。

  • DocumentのFrom list:広告売り上げ管理
  • SheetのFrom list:7月
  • Mapping Column Mode:Map Each Column Manually
  • Column to match on:注文番号

「Mapping Column Mode」は「Map Each Column Manually」を選んでください。
これは、n8nのデータ(注文番号・金額など)を、どのスプレッドシートの列に入れるかを手動で指定できるモードです。
これにより、各項目を自由にドラッグ&ドロップで設定できます。

「Column to match on」は「注文番号」を選びましょう。
これは「すでに同じ注文があるかどうかを見分けるための項目」です。
同じ注文番号がスプレッドシートにすでにある場合はその行を上書きし、新しい注文なら行を追加します。

設定は下の画像も参考にしてください。

Google Sheetsノードの設定

次はSTEP2で整えたデータを、Googleスプレッドシートの表に格納できるよう、それぞれ適切に設定します。
方法は簡単で、左側の画面からGoogle Sheetsのノードにドラッグしていくだけです。

  • 左側の「注文番号」→右側の「注文番号」
  • 左側の「売れた商品」→右側の「売れた商品」

こんな風に、項目が一致するようにしてください。
下の動画を見ながら設定すると楽だと思います。

設定が完了したら「Execute step」で実行してください。
以下のように、スプレッドシートに書き込まれていれば完成です。

メールが分類され、スプレッドシートに書き込まれる

今回作ったワークフローは以下のように、とてもシンプルです。

n8nで作ったワークフロー

シンプルですが、確実に業務時間を減らせる優れたワークフローでもあります。
応用しやすいので、ぜひ仕事やプライベートで活用してください!!

この記事で紹介した第2弾以外のn8n入門講座はこちら

この記事で紹介した第2弾以外の、n8n入門講座を一覧で紹介します。
どれもn8n初心者向けのワークフローですので、ぜひ参考にしてください。