【コピペでOK】Gmailの特定メールをNotionに自動転記!問い合わせ管理を30分で効率化する方法

業務改善

フリーランスや経営者の皆さん、毎日たくさんのメールに追われていませんか?特に「お問い合わせ」や「重要案件」といったメールは、見落としが許されず、管理も大変ですよね。「重要なメールだけをNotionに手作業でコピペしている…」そんな方も多いのではないでしょうか。その作業、実はたった30分で完全に自動化できるんです。この記事では、Googleの無料ツール「Google Apps Script」を使って、Gmailに届いた特定のメールを自動でNotionデータベースに記録する仕組みの作り方を、専門知識ゼロでも分かるように一から丁寧に解説します。このチュートリアルを終えれば、面倒な転記作業から解放され、メールの見落としもなくなり、重要な情報が一元管理された理想の状態が手に入ります。さあ、一緒に業務効率化への第一歩を踏み出しましょう!

今回作成する自動化の全体像

まずは、これから作る自動化の仕組みがどのような流れで動くのか、全体像を掴みましょう。専門用語は使わず、シンプルに図で解説します。

graph TD
    A[Gmailで特定のメールを受信] --> B{Google Apps Scriptが1時間ごとにチェック};
    B --> C{条件に合うメールを発見!};
    C --> D[メール情報を取得<br>(件名, 送信者, 本文...)];
    D --> E[Notion APIを呼び出し];
    E --> F[Notionデータベースに<br>新しいページとして自動追加];

このように、Google Apps Script(GAS)という「小さなロボット」が定期的にあなたのGmailを見回り、指定した条件のメールを見つけたら、その内容を自動でNotionに書き込んでくれる、という仕組みです。

ステップ0:事前準備

本格的な作業に入る前に、必要なものを揃えましょう。すべて無料で利用できるものばかりです。

  • Googleアカウント: Gmailや、今回の自動化の主役であるGoogle Apps Scriptを利用するために必須です。すでにお持ちのGmailアカウントで問題ありません。
  • Notionアカウント: メール情報を記録するデータベースを作成するために使います。無料プランで十分です。

たったこれだけです。特別なソフトのインストールは一切不要。ブラウザだけで完結します。

ステップ・バイ・ステップ構築ガイド

ここからは、実際の構築手順を詳しく解説していきます。焦らず、一つ一つのステップを確実に進めていきましょう。

Step1:Notionデータベースの準備

最初に、Gmailからのメール情報を保存するための「器」となるデータベースをNotionに作成します。

  1. Notionのワークスペースで、サイドバーの「+ 新規ページ」をクリックします。
  2. ページのタイトルを「メール管理DB」など分かりやすい名前に設定し、本体部分で「データベース」の中から「テーブル」を選択します。
  3. データベースが作成されたら、メールの情報を格納するための列(プロパティ)を用意します。デフォルトで存在する「タグ」プロパティは不要であれば削除してOKです。以下の5つのプロパティを、プロパティ名と種類が一致するように作成してください。列の右端にある「+」ボタンから追加できます。
    • 件名 (種類: タイトル) ※これは最初から存在します
    • 送信者 (種類: リッチテキスト)
    • 受信日時 (種類: 日付)
    • 本文抜粋 (種類: リッチテキスト)
    • メールリンク (種類: URL)
  4. 最後に、このデータベースの「ID」を控えておきます。ブラウザのアドレスバーに表示されているURLを確認してください。https://www.notion.so/あなたのワークスペース名/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?v=... のようになっているはずです。この xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx の32文字の英数字がデータベースIDです。メモ帳などにコピーしておきましょう。

Step2:Notionインテグレーションの作成と権限設定

次に、外部のプログラム(今回はGAS)がNotionにデータを書き込めるようにするための「許可証」を発行します。これを「インテグレーション」と呼びます。

  1. Notionの左側メニューから「設定」→「インテグレーション」に進みます。
  2. + 新しいインテグレーションを作成する」ボタンをクリックします。
  3. 「基本情報」で、インテグレーションの名前を「Gmail連携用」など分かりやすく設定し、連携するワークスペースを選択します。「送信」ボタンを押します。
  4. 次の画面で「機能」セクションの「コンテンツ機能」が「コンテンツを挿入」になっていることを確認します。
  5. 「シークレット」セクションに表示されている「内部インテグレーションシークレット」の「表示してコピー」をクリックし、表示されたトークン(secret_...で始まる長い文字列)をコピーします。このトークンはパスワードと同じくらい重要な情報なので、絶対に他人に見せないでください。先ほどのデータベースIDと一緒にメモ帳に貼り付けておきましょう。
  6. 最後に、作成したインテグレーションに、Step1で作成したデータベースへのアクセス権を与えます。データベースのページに戻り、右上の「・・・」メニューから「コネクトの追加」を選択し、先ほど作成した「Gmail連携用」インテグレーションを選んで「招待」をクリックします。これで準備は完了です。

Step3:Google Apps Script (GAS) の記述

いよいよ、自動化の心臓部となるプログラムを書いていきます。と言っても、ほとんどコピー&ペーストで完了するので安心してください。

  1. こちらをクリックして新しいGoogleスプレッドシートを開きます。ファイル名は「Gmail-Notion自動化」などとしておきましょう。
  2. メニューバーから「拡張機能」→「Apps Script」を選択します。すると、スクリプトエディタが新しいタブで開きます。
  3. エディタに最初から書かれているコード(function myFunction() { ... })をすべて削除し、以下のコードをそのまま貼り付けてください。
    // ▼▼▼ 設定項目 ▼▼▼
    // 1. NotionインテグレーションのAPIキー(Step2でコピーしたもの)
    const NOTION_API_KEY = 'YOUR_NOTION_API_KEY';
    
    // 2. NotionデータベースのID(Step1でコピーしたもの)
    const DATABASE_ID = 'YOUR_DATABASE_ID';
    
    // 3. Gmailで検索する条件(例: 'label:問い合わせ is:unread' →「問い合わせ」ラベルが付いた未読メール)
    const GMAIL_SEARCH_QUERY = 'label:問い合わせ is:unread';
    // ▲▲▲ 設定項目 ▲▲▲
    
    // メインの処理を実行する関数
    function main() {
      // Gmailから条件に合うメールスレッドを取得
      const threads = GmailApp.search(GMAIL_SEARCH_QUERY);
    
      // 取得したスレッドをループ処理
      for (const thread of threads) {
        const messages = thread.getMessages();
        for (const message of messages) {
          // まだNotionに登録されていないメールのみを処理する
          if (message.isUnread()) {
            addEmailToNotion(message);
            // 処理済みのメールを既読にする(重複登録防止)
            message.markRead();
          }
        }
      }
    }
    
    // メール情報をNotionに追加する関数
    function addEmailToNotion(message) {
      const notionApiUrl = 'https://api.notion.com/v1/pages';
    
      // Notion APIに送信するデータを作成
      const payload = {
        parent: { database_id: DATABASE_ID },
        properties: {
          '件名': {
            title: [
              {
                text: {
                  content: message.getSubject()
                }
              }
            ]
          },
          '送信者': {
            rich_text: [
              {
                text: {
                  content: message.getFrom()
                }
              }
            ]
          },
          '受信日時': {
            date: {
              start: message.getDate().toISOString()
            }
          },
          '本文抜粋': {
            rich_text: [
              {
                text: {
                  // 本文を最初の200文字だけ抜粋
                  content: message.getPlainBody().substring(0, 200)
                }
              }
            ]
          },
          'メールリンク': {
            url: `https://mail.google.com/mail/u/0/#inbox/${message.getId()}`
          }
        }
      };
    
      // Notion APIへのリクエスト設定
      const options = {
        method: 'post',
        contentType: 'application/json',
        headers: {
          'Authorization': 'Bearer ' + NOTION_API_KEY,
          'Notion-Version': '2022-06-28'
        },
        payload: JSON.stringify(payload),
        muteHttpExceptions: true // APIエラー時にスクリプトを停止させない
      };
    
      // APIリクエストを実行
      const response = UrlFetchApp.fetch(notionApiUrl, options);
      Logger.log(response.getContentText()); // 実行ログに結果を出力
    }
  4. コードを貼り付けたら、先頭部分にある「▼▼▼ 設定項目 ▼▼▼」の3箇所を、あなたがメモしておいた情報に書き換えます。
    • YOUR_NOTION_API_KEY:Step2で取得したNotionのAPIキーに書き換えます。
    • YOUR_DATABASE_ID:Step1で取得したNotionデータベースのIDに書き換えます。
    • GMAIL_SEARCH_QUERY:Notionに転記したいメールの検索条件を指定します。例えば、「from:info@example.com is:unread」(info@example.comからの未読メール)や「subject:【重要】 is:unread」(件名に【重要】が含まれる未読メール)のように、Gmailの検索ボックスで使える条件がそのまま使えます。まずはGmail側で「問い合わせ」ラベルを作成し、対象のメールにそのラベルを付ける運用がおすすめです。
  5. 設定が終わったら、フロッピーディスクのアイコン(「プロジェクトを保存」)をクリックして保存します。
  6. 次に、一度だけ手動で実行して動作確認と「承認」を行います。エディタ上部の「実行」ボタンを押してください。初回実行時には「承認が必要です」という画面が表示されます。「権限を確認」→自分のGoogleアカウントを選択→「詳細」→「(安全でないページ)に移動」→「許可」の順にクリックしてください。これは、あなたの代わりにスクリプトがGmailを操作することを許可する、最初の1回だけ必要な儀式です。

エラーが出ずに実行が完了したら、Gmailで検索条件に合う未読メールを探し、それがNotionデータベースに追加されているか確認してみてください。無事に追加されていれば成功です!

Step4:GASのトリガーを設定して自動化を有効にする

最後の仕上げです。このスクリプトを定期的に自動で実行するように設定します。これを「トリガー設定」と呼びます。

  1. スクリプトエディタの左側メニューから、目覚まし時計のアイコン(「トリガー」)をクリックします。
  2. 右下の「+ トリガーを追加」ボタンをクリックします。
  3. 表示されたウィンドウで、以下のように設定します。
    • 実行する関数を選択: main
    • イベントのソースを選択: 時間主導型
    • 時間ベースのトリガーのタイプを選択: 時間ベースのタイマー
    • 時間の間隔を選択(時): 1時間おき (お好みで変更可能です)
  4. 設定が終わったら「保存」ボタンをクリックします。

これで、すべての設定が完了しました!これからはあなたが何もしなくても、GASが1時間ごとにGmailをチェックし、新しい対象メールがあれば自動でNotionに記録し続けてくれます。

まとめ:自動化で生まれた時間を、もっと創造的な仕事に

お疲れ様でした!これで、面倒なメールの転記作業から完全に解放されましたね。この自動化のメリットは、単に時間が節約できるだけではありません。重要なメールの見落としというヒューマンエラーを防ぎ、問い合わせ情報をチームで共有しやすい形で一元管理できるようになります。空いた時間や集中力を、もっとビジネスを成長させるための創造的な仕事に使いましょう。今回の仕組みを応用すれば、「Googleフォームからの申し込みを自動でNotionに登録する」といった、さらに高度な自動化にも挑戦できます。ぜひ、あなたのビジネスにITの力を取り入れて、ライバルに差をつけてください!


免責事項:本記事で紹介している手順やコードは、執筆時点での情報に基づいています。各サービスの仕様変更により、同様の手順で動作しない可能性があります。また、本チュートリアルの実行によって生じたいかなる損害についても、当方は一切の責任を負いかねます。ご自身の責任において、バックアップを取るなどの対策の上、実行してください。

タイトルとURLをコピーしました