Gmail自動転記アプリ — InquiryLog
実際のビジネスシーンで使える自動化100例をGASで実装するシリーズ「GAS自働化100本ノック」。その13本目
Gmailに届いた内容をスプレッドシートに自動転記してくれる便利なシートアプリ — InquiryLog
受信日時・差出人・件名などのメタ情報はもちろん、本文中の任意項目(例えば、会社名・担当者名・電話番号・締切日など)の転記も思いのままに設定可能です。
問い合わせ・受注・日報・採用など、どんな用途でもご利用いただけます。
InquiryLog ができること
-
Gmail検索式で指定したメールを台帳シートに一括転記(受信日時 / 差出人名 / 差出人メアド / 件名 / 本文冒頭 / スレッドURL)
-
本文冒頭の転記文字数は1~1000文字まで自由に設定可能(デフォルト100文字)
-
スレッドURLから1クリックでGmail本文を起動 — 返信・編集がラク
-
本文中のテキストをピンポイントで列分離(例:本文中の「会社名:丸山産業」を 会社名列 に切り出す)
電話番号・案件種別・希望日 など何項目でも列追加可能 — 台帳をフィルタ・ソート・条件付き書式の対象にできる -
ステータス列 で対応漏れを可視化
-
処理済ラベルで二重登録を自動防止
-
時間トリガーで自動実行 — 始業時には転記済み
-
ドライランで転記前確認 — 台帳・Gmail とも書き換えず動作確認が可能
-
エラーは別シートに記録 — 不正な正規表現・設定不足などを検出
動作要件
-
Googleアカウント
-
Gmail / Spreadsheet の編集権限
インストール手順
-
新規Googleスプレッドシートを作成
-
メニュー「拡張機能 → Apps Script」を開く
-
デフォルトの `コード.gs` の内容を、本記事の有料版 `コード.gs` で上書き保存する
-
「ファイル → +」でファイルを追加し、本記事の有料版 `セットアップ.gs` で上書き保存する
-
プロジェクト名を任意に設定して保存
-
スプレッドシートを再読み込み → メニュー「InquiryLog」が表示される
-
メニュー「初回セットアップ」を実行 → 認証ダイアログで承認(承認手順は第1回と同じ)
初回セットアップ
メニュー「InquiryLog → 初回セットアップ」を実行すると、以下の4シートが自動生成されます。
シート名の先頭 `IL_` は InquiryLog の略で、同じスプレッドシートで他のアプリと同居しても衝突しないようにするための識別子です。
-
`IL_設定` — 検索クエリ・処理済ラベル等を入力
-
`IL_抽出ルール` — 本文から取り出したい項目の正規表現(サンプル4ルール付き)
-
`IL_台帳` — 転記先シート(自動生成・編集可)
-
`IL_エラー` — エラー履歴(自動記録)
各シートの詳細は下記の `IL_設定 シート` / `IL_抽出ルール シート` / `IL_台帳 シート` / `IL_エラー シート` の各セクションを参照してください。
基本の使い方
-
`IL_設定` シートに 検索クエリ と 処理済ラベル を入力
-
`IL_抽出ルール` シートで本文から取り出したい項目のルールを設定
-
メニュー「メールを台帳に転記」を実行
-
`IL_台帳` シートに転記行が追加され、対象スレッドに処理済ラベルが付く
IL_設定 シート
検索クエリ・処理済ラベル・本文冒頭文字数・自動実行間隔 などアプリ動作のすべての設定を、このシートに A列:キー/B列:値 で入力します。

入力項目
-
検索クエリ (必須) … Gmail検索式。例: `to:contact@example.co.jp`(書き方の詳細は下記)
-
処理済ラベル (必須) … 転記済メールに付けるラベル名。無ければ自動作成
-
本文冒頭文字数 … 「本文冒頭」列に書き出す文字数(1〜1000、デフォルト100)
-
自動実行間隔(分) … 自動実行ON時の実行頻度(自動実行設定の詳細は下記)
検索クエリの書き方
検索クエリは Gmail 画面上部の検索バーと同じ書式がそのまま使えます。
業務でよく使う演算子は次の10種類くらいです。
-
`label:〇〇` … ラベルで絞る。先頭に `-` で除外。例: `label:問い合わせ`、`-label:台帳済`
-
`from:〇〇` … 差出人で絞る。メアド全体でもドメインだけでもOK。例: `from:contact@example.co.jp`、`from:gmail.com`
-
`to:〇〇` … 宛先で絞る。問い合わせ専用アドレスを使っているなら `to:contact@自社.co.jp` で一発
-
`subject:〇〇` … 件名キーワード。複数語はダブルクォートで囲む。例: `subject:お問い合わせ`、`subject:"資料請求"`
-
`has:attachment` … 添付ありに限定(履歴書送付・見積依頼の絞り込みに)
-
`filename:〇〇` … 添付ファイル名/拡張子で絞る。例: `filename:pdf`
-
`after:yyyy/MM/dd` / `before:yyyy/MM/dd` … 受信日で絞る
-
`newer_than:Nd` … 直近N日。単位は `d`(日)/ `m`(月)/ `y`(年)
-
`is:unread` / `is:starred` … 状態で絞る
-
空白で AND、`OR` で OR … 例: `subject:お問い合わせ OR subject:資料請求`
業務でよくある組み合わせ例
-
自社の問い合わせ窓口に届いた全メールを台帳化 → `to:contact@example.co.jp`
-
フォーム経由「お問い合わせ」「資料請求」を両方拾う → `(subject:お問い合わせ OR subject:資料請求)`
-
採用関連の問い合わせ(履歴書添付あり) → `to:recruit@example.co.jp has:attachment`
-
過去7日以内の新規問い合わせのみピンポイント → `to:contact@example.co.jp newer_than:7d`
入力前に Gmail 検索バーで動作確認できます。
同じ文字列を Gmail 上部の検索バーに貼り付け、意図したメールがヒットするか確認してから `IL_設定` に貼り付けると、空振りや取りこぼしを未然に防げます。
自動実行(トリガー)の設定
手動操作の「メールを台帳に転記」を自動化できます。
-
`IL_設定` の `自動実行間隔(分)` に数値を入力(例: 60)
-
メニュー「自動実行 ON」を実行
-
オフにする時はメニュー「自動実行 OFF」
手動でトリガーを変更したい時
メニューを使わずに自分でトリガーを編集することもできます。
-
Apps Script の左サイドバー「⏰ トリガー」を開く
-
既存トリガーは右側の 🖊 マークから編集、`…` メニューから削除
-
新規は「+ トリガーを追加」で `runAuto` 関数・時間主導型・希望の間隔を選択して保存
IL_抽出ルール シート
`IL_抽出ルール` シートに「項目名 / 正規表現」を1行ずつ書くと、本文から取り出した値が専用列として生成されます。

上図の例であれば、会社名・電話番号・案件種別・希望日の各列が `IL_台帳` シート に追加される。
【書き方のポイント】
-
`(…)` のキャプチャグループに 「取り出したい部分」だけ を入れる(無ければマッチ全体が値)
-
`[::]` で 半角・全角コロン を吸収
-
`(?:電話番号|電話|連絡先|TEL)` の 非キャプチャグループ で表記ゆれをまとめる
-
バックスラッシュは1個でOK(シートのセルは生テキストとして読み込まれる)
※ 正規表現に関してはネット上にたくさんの情報があります。
ルール変更時の挙動
ルールを増減すると次回実行で台帳のヘッダーが新構成で書き直されます。列名と値の不整合を避けるため、メニュー 「台帳のデータをクリア」でデータをリセットしてから再実行することをお薦めします。
IL_台帳 シート
メニュー「メールを台帳に転記」を実行するたびに、対象メール1通につき1行が末尾に追記されます。
固定6列(受信日時/差出人名/差出人メアド/件名/本文冒頭/スレッドURL)+ `IL_抽出ルール` の生成列 + ステータス列 、という構成で並びます。
ステータスの使い方
新規行は `ステータス = 未対応` で書き込まれ、ドロップダウンリストから 「未対応 / 対応中 / 完了」を選択できる。
-
着手したら 「対応中」 を選ぶ
-
完了したら 「完了」 を選ぶ
-
デフォルト以外の入力は拒否される
独自ステータス(例: 「保留」「確認中」)を加えたい場合は、列を選択 →「データ → データの入力規則」で値を追加
IL_エラー シート
不正な正規表現や設定不足などの実行時エラーを行ごとに記録します。
エラーが発生してもアプリ全体は止まらず、該当行だけスキップされて、「いつ・どのルール/設定が・なぜダメか」が残ります。
`IL_抽出ルール` の書式ミスのデバッグや、設定の入れ忘れ確認に使ってください。
ドライランの使い方
メニュー「ドライラン(書き込まず件数のみ確認)」を実行すると、検索→抽出→整形までをテストし、台帳には書き込まずGmailにもラベルを付けない 状態で「対象スレッド N 件 / 転記予定 M 件 / 抽出ヒット K 件」をアラート表示します。
-
検索クエリが意図通りか確認する
-
新しい抽出ルールがどれくらいヒットするか試す
-
処理済ラベルが正しく除外されているか確認する
といった用途で、本番台帳を汚さずに検証できます。
FAQ
Q. 同じメールが二重転記されない?
処理済ラベルが付いたスレッドは検索クエリで自動的に除外されます。
Q. 抽出ルールは無くても動く?
動きます。`IL_抽出ルール` シートを削除する、または有効な行を全部消すと、台帳は「固定6列 + ステータス」の最小構成になります。
Q. HTMLメールの本文も読める?
読めます。`getPlainBody()` で Gmail が用意したプレーンテキスト版を取得しているので、HTMLタグや ` ` は混入しません。
Q. 複数のアプリを同じスプレッドシートで使える?
シート名に `IL_` プレフィックスを付けているので、別のアプリと同居できます。
Q. GAS(Google Apps Script)の制限について教えて
本アプリは Google が定める GAS の実行制限の範囲内で動作します。業務に影響しそうな主な上限は次の3つです。
-
1回の実行は最大6分(無料/Workspace 共通)。
本アプリが1回あたり最大50スレッドに制限しているのは、この6分上限を超えないためです。50件を超える分は次回実行で順次処理されます -
1日あたりの累積実行時間: 無料Gmailアカウントは 90分/日、Workspaceは 6時間/日。自動実行間隔を1分や5分に設定すると上限に到達しやすくなるため、業務上の必要に応じて15分〜を推奨します
-
トリガー数の上限: 1スクリプト1ユーザーあたり 20個。
本アプリは「自動実行 ON」で1個追加・OFF で削除するため通常は問題ありません
これらは Google 側の仕様で、本アプリ側で緩和することはできません。
上限到達時は実行が中断され、次回実行時にスキップ済み分から再開します。
コード.gsとセットアップ.gsは以下より
この記事の続きはnoteで公開しています。
