📖

【n8n入門】Gmailメール添付ファイルのGoogleドライブ格納自動化

に公開

はじめに

日々の業務の中で、請求書や契約書などの各種書類をGoogleドライブに整理して格納するような作業はありますか?
企業のエンジニア組織では、他部署と比較しても数多くのサービス・ツールを使っていることが多く、これらに関する証憑を集めるのも一苦労ということも多いのではないでしょうか。

各々の証憑収集作業は単純かつ低頻度(月1回)がほとんどですが、毎回確認しながらの作業はそれなりの時間がかかりますし、現職では経理側で管理している管理番号との紐付けなどのため格納時のファイル名にも命名規則があり、煩雑化しています。
また、部署や職種も跨いで会社全体で考えると、非生産的な作業にもかかわらず、意外と無視できない程のコストがかかっているのではないかと思います。

今回は、n8nというワークフローツールの入門記事として、Gmailメール添付ファイルのGoogleドライブ格納自動化の仕組みについて紹介したいと思います!

n8nとは

n8nは、オープンソースのワークフロー自動化ツールです。
IFTTTやZapierと似たようなツールですが、オープンソースで無料で利用でき、より柔軟なワークフローを構築できることが特徴です。

n8nでは、様々なサービス(Gmail、Googleドライブ、Slackなど)をノードとして組み合わせることで、複雑な業務プロセスを自動化できます。
例えば、「Gmailでメールを受信したら、添付ファイルをGoogleドライブに保存する」といった処理を、コードを書かずに視覚的に構築できるのが魅力です。

現職でも、様々な業務の自動化にn8nを活用しており、今回紹介するGmailとGoogleドライブの連携もその一例となります。

背景と課題

冒頭でも少し触れましたが、日々の定常業務で以下のような課題がありました。

  • 手動作業の時間ロス
    • メールで送られてくる請求書などのPDFファイルを、毎回手動でGoogleドライブに保存する必要がある
    • 単純格納ではなくリネーム対応も含まれるため整合確認も必要となる
    • 1件あたり数分だが、毎月数十件あるとそれなりの時間になる
  • 処理漏れのリスク
    • 都度対応ではなく月末月初に対応を後回しにしがちで、後から請求書を探すのに時間がかかる
    • 単純な作業漏れが発生する懸念もある

これらの課題を解決…というよりも、こういった手動対応をやりたくないので、n8nを使って自動化することにしました。

実装したワークフロー

今回構築したワークフローは、以下のような流れになっています。

Gmail受信(特定ラベル付きメール)

Googleスプレッドシートから設定情報を取得(メール件名で検索)

新しいファイル名を生成(格納ファイル名_日付.pdf)

該当のメールから添付ファイルを取得

Googleドライブにファイルをアップロード(新しいファイル名で)

処理済みラベルをメールに追加

このワークフローにより、メールに特定のラベルを付けるだけで、自動的にGoogleドライブに整理して保存されるようになります。

前提作業

n8nのセットアップ(Google認証)

n8nでGmail、Google Sheets、Googleドライブを使用するためには、それぞれのサービスへの認証設定が必要です。
※今回、手順は割愛します。

Gmail側での対象メールへのタグ付け

このワークフローは、Gmailのラベル(タグ)をトリガーとして動作します。
そのため、自動処理したいメールに特定のラベルを付ける必要があります。
※ラベル付けもGmailの自動振り分け機能で自動化しましょう。

格納対象ファイル管理用スプレッドシートの作成

今回作成するワークフローでは、ファイルをそのままGoogleドライブへアップロードするのではなく、ファイル名をあらかじめ指定した内容に変更した上でアップロードを行うフローとなっています。
これらの管理のためにスプレッドシートで対応表を作成しておきます。
※ファイル名変更しない場合、スプレッドシートや②③のステップは不要です。

ワークフローの詳細

※n8nのバージョンによってUIや項目が異なる場合があります

1. Gmail Trigger - PDF Attached(トリガー)


ワークフローの起点となるトリガーノードです。
Gmailで特定のラベルが付いたメールを受信した際に、ワークフローを実行します。

設定内容

  • 実行タイミング(Poll Times): 毎日9時にポーリング
    • ※請求書送付頻度は高くないため1日1回のチェック
  • 対象メール(Filters): 特定のラベル 請求書対応 が付いたメール(※ラベル名は例)

この設定により、指定したラベルが付いたメールを検出すると、ワークフローが自動的に実行されます。

2. Get row(s) in sheet(Googleスプレッドシートから行を取得)


メールの件名に基づいて、Googleスプレッドシートから設定情報を取得します。

設定内容

  • 対象スプレッドシート(Document): 【n8n】請求書格納リスト(※名称は例)
  • 対象シート(Sheet): シート1(※名称は例)
  • フィルタ条件(Filters): 列「メールタイトル」が、受信メールの件名(Subject)と一致する行を検索
    • ※現職の場合、送信元(from)がグループメールになっていることが多いため、タイトルでの一致を例としていますが、送信元アドレスなど別の項目でもOKです

スプレッドシートには、以下のような情報が格納されています。

  • メールタイトル(メールの件名)
  • 格納ファイル名(Googleドライブに保存する際のファイル名)

このスプレッドシートを管理することで、メールの件名に応じて適切なファイル名で保存できるようになっています。

3. Prepare New Filename(新しいファイル名を準備)


スプレッドシートから取得した「格納ファイル名」と現在日付を組み合わせて、新しいファイル名を生成します。

ファイル名の形式

{格納ファイル名}_{yyyyMMdd}.pdf

例えば、スプレッドシートに「GitHub_00001」と設定されている場合、GitHub_00001_20251223.pdf のようなファイル名が生成されます。

日付を自動的に付与することで、同じ種類のファイルが複数ある場合でも、識別できるようにしています。(※同サービスから別日に複数請求書が送付される場合があるため)

4. Get a message(Gmailメッセージを取得)


トリガーで検出したメールの詳細情報を取得し、添付ファイルをダウンロードします。

設定内容

  • メールID(Message ID): トリガーで検出したメールのIDを参照
  • 添付ファイルのダウンロード(DownloadAttachments): 有効(True)

このノードで、メールの添付ファイルを取得できるようになります。

5. Upload file(Googleドライブにファイルをアップロード)


取得した添付ファイルを、新しいファイル名でGoogleドライブにアップロードします。

設定内容

  • アップロード対象(Input Data Field Name): メールの添付ファイルattachment_0
    • ※メールに複数ファイルが添付されていた場合でも、アップロード対象は先頭ファイルのみ
  • ファイル名(File Name): ステップ3で準備した新しいファイル名を使用
  • アップロード先:
    • ドライブ(Parent Drive): Googleドライブの「My Drive」
    • フォルダ(Parent Folder): フォルダをURLで指定(※List選択、ID指定も可)

これにより、メールの添付ファイルが指定されたファイル名でGoogleドライブに自動保存されます。

6. Add label to message(メールにラベルを追加)


処理が完了したメールに、処理済みラベルを追加します。

設定内容

  • メールID(Message ID): トリガーで検出したメールのIDを参照
  • ラベルID(label Names or IDs): 請求書格納済み

このラベルを追加しておくことで、処理済みのメールを後々識別しやすくできます。

動作確認

ワークフローの構築が完了後、テスト実行や実メールでのテスト運用で、期待通り動作するかを確認しましょう。(構築中もステップ毎にテスト実行を行いながら作成すると確実です)
ワークフローが正常に実行され、ファイルがGoogleドライブにアップロードされていれば完成です!

効果

このワークフローの導入により、以下の改善効果が得られます。

  • 作業時間の削減
    • 1件数分の手動作業が不要となり、格納済みファイルの最終チェックのみで対応が完了する
    • 月に数十件ある場合、少なく見積もっても1時間程の時間削減が見込める
  • 処理漏れの防止
    • 自動処理されるため、対応漏れがなくなる
    • 処理済みラベルが付くため、未処理のメールも一目で分かる

まとめ

今回は、n8nを用いたGmailメール添付ファイルのGoogleドライブ格納自動化について紹介しました!

n8nは、コードを書かずに視覚的にワークフローを構築できるため、エンジニアでない方でも比較的簡単に業務自動化を実現できるツールです。
今回紹介したような単純な自動化から始めて、徐々に複雑なワークフローを構築していくことで、日々の業務効率を向上させることができるのではないでしょうか。

請求書対応に関しては、今回紹介したようなメール送付式だけでなく、各サービスの管理画面から取得が必要なものも多いのが難点ですが、別の仕組みも組み合わせて可能な限り自動化したいですね!

また、n8nはオープンソースで無料で利用できるため、気軽に試してみることができます。
今回の記事が、n8nを使った業務自動化の参考になれば幸いです!

Discussion