KNOW-HOW
送受信メールを1通1ファイルで保存し、毎朝ToDo台帳に行を足します。保存と台帳は既存ライセンスの範囲、AIに読ませる部分は環境で無料・有料が分かれます。
「送信して終わった気になる」が、この仕組みで防ぐ困りごとの中心です。返信待ちの案件はToDoに残りにくく、消し忘れると残り続けます。ToDo化しないと忘れて、取引先から催促が来て初めて気づきます。催促が来た時に過去メールを見返さないと、自分がどう放置したかが分かりません。扱うメールの通数が多いほど、この取りこぼしの機会が増えます。送受信メールを1通ずつ、ファイル名に日付・本文に送信者のメールアドレスと氏名を入れて保存し、1日1回棚卸しをして前日までのToDoを台帳に出すと、台帳の1行から元メールへ戻れます。
困りごとと仕組みの対応
| 困りごと | 起きること | 仕組みがあると |
|---|---|---|
| 送信して終わった気になる | 返信待ちが台帳に残らず、催促も忘れる | 送信メールも1通1ファイルにして「待ち」の行として残る |
| ToDo化しないと忘れる | 取引先から催促が来て初めて気づく | 毎朝、前日までの受信・送信から台帳に行が足される |
| 催促が来ても経緯が分からない | 過去メールを探して読み返す時間がかかる | 台帳の行から元メール(.md)へ戻れる。日付順に並ぶ |
| 台帳を作り直すと手書きが消える | 対処メモを二度書く | AIとフローは行を足すだけで、人の列に書かない(元メール名で重複を防ぐ) |
受信メールと送信メールを1通ずつ .md(テキスト)ファイルにして保管フォルダーに保存します。ファイル名に日付(日時)を入れ、本文の先頭に送信者のメールアドレスと氏名を入れます。添付ファイルは、元のメールと結びつく名前(メールのファイル名+連番+元の名前)にして同じ場所に置きます。Markdown は素のテキストなので、先頭行を組んで拡張子を .md にすれば済みます。流れは図、設定は環境別の対応表、ファイル名は命名規則の表に示します。補足: Power Automate のトリガーが出力する差出人はアドレスだけです(公式リファレンスの型は email)。Microsoft 365 では、氏名は本文の署名から AI が読みます。
手順1・2の設定の対応表(Power Automate)。名称は公式リファレンスの表記。画面では少し異なる場合がある(例: メールの取得 (V3))
| 順 | ステップ(公式リファレンスの名前) | 設定の要点 |
|---|---|---|
| 1 | 新しいメールが届いたとき (V3) | 受信用フローの起点。フォルダー=受信トレイ、添付ファイルを含める=はい。対象を絞る時は 差出人・件名フィルター |
| 2 | Html からテキストへ(コンテンツ変換〔プレビュー〕) | Content=本文(「HTML ですか」が true の時)。5 MBまで。書式は保持されず、1行は最大80文字で改行される |
| 3 | 作成 | 先頭行: # 件名 / - 日時 / - 差出人: sato@a-sha.example / - 宛先 / - 元のフォルダー: 受信 / --- / 本文 |
| 4 | ファイルを作成する(OneDrive for Business) | フォルダー パス=/メール保管(固定)、ファイル名=命名規則の .md、ファイル コンテンツ=順3の出力 |
| 5 | 変数を初期化する | 添付の連番用。名前=n、種類=整数、値=0。ループの外(Apply to each より前)に置く |
| 6 | Apply to each(添付)→変数の値を増やす→ファイルを作成する | ファイル名=命名規則の添付の式、ファイル コンテンツ=添付の Content Bytes。コンカレンシー制御で並列処理の次数=1 |
| 7 | (任意)電子メールのエクスポート (V2) | Message Id を渡すと EML 形式で原本を出力。原本が要るメールは .md と別に保存 |
| 8 | (毎朝のフロー)メールを取得する (V3) | スケジュール済みフローで毎朝1回。フォルダー=送信済みアイテム、上位カウント=100(既定10・最大1000) |
| 9 | 条件 | Received Time が addDays(utcNow(),-1) 以降のメールだけ通す(送信済みアイテムでの値は自社環境で確認) |
| 10 | (送信分)順2〜6を同じ形で通す | ファイル名の固定文字を「送信」にし、相手先は宛先アドレスから作る |
| 11 | テーブルに行を追加する(Excel Online (Business)) | AIなし版。受信トレイの前日分も順8・9と同じ形で取り、日時・相手先・件名・元メールを書く。送信分は 状態=待ち |
毎朝決まった時刻に、前日分の .md を読み、ToDo台帳に行を足す処理を自動で走らせます。流れは3段です。①前日分を集める、②AIに渡して要件・相手先・期限を読ませる、③答えを台帳の行にする。公式ドキュメントで確認できる範囲では、①と③は既存ライセンスの道具だけで無人にできます。②は環境と契約で変わり、無人の範囲と人が行う範囲が分かれます。その線を比較表の列「台帳への書き込み」に示します。AIとフローは新しい行を足すだけにし、既存の行と人が書く対処メモには触れません。同じ元メールの行があれば足さない決まりにすると、翌朝に手書きが消えません。
手順2の道具の比較(2026-09-18時点の公式記載)
| 環境 | 道具 | 無料か有料か | 定期実行の機能と条件 | 台帳への書き込み |
|---|---|---|---|---|
| Microsoft 365 | Power Automate(AIなし版) | Microsoft 365 のライセンスに含まれる(標準コネクタ) | スケジュール済みフローで毎朝。「メールを取得する (V3)」→「テーブルに行を追加する」 | 自動(日時・相手先・件名・元メール)。重要度と要約は後で埋める |
| Microsoft 365 | Microsoft Copilot(アドオン) | 有料(価格は公式ページで確認) | 「Schedule this prompt」で毎朝実行。10件まで。対象は組織データ。.md の可否は要試験 | 人(応答は「チャット」一覧に出る。人が台帳に写す) |
| Microsoft 365 | Copilot のライセンスなし | — | 定期実行は使えない(公式: ライセンスが必要)。人が朝に AI へファイルを渡す | 人 |
| Google Workspace | Apps Script 時間主導型トリガー(AIなし版) | Google Workspace のアカウントで使える(クォータあり) | 毎朝の時刻帯に実行。1回6分・トリガー合計1日6時間 | 自動(appendRow。日時・差出人・件名・ファイル名) |
| Google Workspace | Google Workspace Studio | Business Starter/Standard/Plus・Enterprise Standard/Plus 等で利用できる | 着信の都度。「When I get an email」→「Extract」→ Sheets「Add a row」 | 自動(受信メールのみ。送信メールの起点は一覧に無い) |
台帳の列と並べ方を決め、AIへの指示に書きます。例えばジャンル別(見積・配車・契約・請求・その他)、顧客別(相手先)、重要度別(1-高・2-中・3-低)です。重要度の値に数字を付けると、Excel とスプレッドシートの昇順の並べ替えがそのまま高→中→低の順になります。台帳は Excel か Google スプレッドシートの1枚の表にし、「AIが書く列」と「人が書く列(対処メモ)」を分けます。決まりと Excel の見本は例の表に示します。送信メール由来の行を「待ち」で残すのが、送信して終わった気になる事故を防ぐ要点です。法律が絡む内容(もの/ゴミの判定・許可の要否・保管積替)は自動で仕分けず「要確認」の行として人に回します。
手順3 台帳の列の決まり。この表の内容をAIへの指示に書く(自社の言い回しに直して使う)
| 列名(または指示の項目) | 書き手 | 値の決まり=指示に書く内容 |
|---|---|---|
| (読む範囲) | AI | 保管フォルダーの前日分の .md をすべて読む。1通=1行で tblToDo に足す |
| 期限 | AI | 本文の日付。無ければ受付日+3営業日 |
| 重要度 | AI | 1-高=期限3日以内・取引先からの催促 / 2-中 / 3-低。数字を付けて昇順の並べ替えに合わせる |
| ジャンル | AI | 見積・配車・契約・請求・許可・その他(ドロップダウン) |
| 相手先 | AI | 会社名+担当者名様(差出人アドレスと本文の署名から)。不明な時は「B社(担当者不明)」 |
| 要件 | AI | 1行。何を・いつまでに |
| 状態 | AIが初期値・人が変更 | 未着手/対応中/待ち/要確認/完了。「送信」で返答を求めている時は 待ち・期限=送信日+3営業日 |
| (要確認にする内容) | AI | 有価物/廃棄物の判定・許可の要否・保管積替に触れる内容は ジャンル=許可・状態=要確認。仕分けしない |
| 対処メモ | 人のみ | AIとフローは読むだけで書かない。完了にした日を先頭に書く(例 9/19完了) |
| 元メール | AI | .md のファイル名。一意なので「行を更新する」のキー列に使う。同じ元メールの行があれば足さない |
| (対象外のメール) | AI | メールマガジン・自動返信は ジャンル=その他・重要度=3-低 にする |
| (報告) | AI | 最後に「読んだ通数・追加した行数・エラー」を1行で報告する |
台帳は毎朝開いて、その場で並べ替えて片付けます。例えば、重要度別で並び替えて喫緊対応を済ませる→ジャンルごとにまとめて対応する、という順です。終わった行は削除せず「状態=完了」にしてフィルターで隠し、完了にした日は対処メモの先頭に「9/19完了」と書きます。行を残すことで、催促が来た時に「いつ受けて、いつ送って、いつ完了にしたか」を台帳の1行と元メール(ファイル名に受付日時が入る)で追えます。送信メール由来の「待ち」の行は、返信が来たら完了に、来なければ期限に催促します。状態と対処メモ以外の列は手で書き換えません。
ToDo台帳(Excel)の見本。テーブル名 tblToDo。A列=期限〜H列=元メール。会社名と氏名は架空
| 期限 | 重要度 | ジャンル | 相手先 | 要件 | 状態 | 対処メモ(人が書く) | 元メール |
|---|---|---|---|---|---|---|---|
| 2026-09-18 | 1-高 | 見積 | A社 佐藤様 | 廃プラ 月20tの見積提出(図面添付あり) | 対応中 | 単価は前回実績を確認中 | 20260918-093012_受信_a-sha_sato_見積のご相談.md |
| 2026-09-19 | 1-高 | 配車 | B社 鈴木様 | 9/22の回収便を1台追加希望 | 未着手 | 20260917-161005_受信_b-sha_suzuki_回収便追加.md | |
| 2026-09-19 | 1-高 | 許可 | E社 加藤様 | 持込予定物の有価物/廃棄物の判断を求める問い合わせ | 要確認 | 人が判断してから返信 | 20260918-100521_受信_e-sha_kato_持込のご相談.md |
| 2026-09-20 | 2-中 | 契約 | C社 田中様 | 委託契約書の更新案への返信待ち(こちらから送信済み) | 待ち | 9/17送信。返信がなければ9/22に催促 | 20260917-180233_送信_c-sha_tanaka_契約書更新.md |
| 2026-09-24 | 2-中 | 請求 | A社 佐藤様 | 8月分請求書の再発行依頼 | 未着手 | 20260918-081240_受信_a-sha_sato_請求書再発行.md | |
| 2026-09-30 | 3-低 | その他 | D社(担当者不明) | 展示会の案内(参加可否の返答) | 未着手 | 20260916-113058_受信_d-sha_info_展示会案内.md |
手順1・2の設定の対応表(Google Workspace・Apps Script)
| 順 | やること | 使う関数と要点 |
|---|---|---|
| 1 | 前日分の検索 | GmailApp.search('newer_than:2d')。件数が多い時は search(query, start, max) で範囲を指定 |
| 2 | 各メッセージの読み取り | getMessages() の各要素: getFrom()・getTo()・getDate()・getSubject()・getPlainBody() |
| 3 | 受信/送信の判定 | getFrom() に自分のアドレス(Session.getActiveUser().getEmail())が含まれれば「送信」、それ以外は「受信」 |
| 4 | ファイル名の日時 | Utilities.formatDate(msg.getDate(),'Asia/Tokyo','yyyyMMdd-HHmmss') |
| 5 | 重複防止 | folder.getFilesByName(名前).hasNext() が true なら保存を飛ばす |
| 6 | .md の作成 | DriveApp.getFolderById(保管フォルダーのID).createFile(名前, 先頭行+本文) |
| 7 | 添付の保存 | getAttachments() の各 Blob を folder.createFile(blob) で作り、setName() で命名規則の名前に改名 |
| 8 | 台帳に1行(AIなし版) | appendRow([日時, '', '', 差出人, 件名, '未着手', '', ファイル名])。送信分の状態は '待ち' |
| 9 | 毎朝の実行 | エディター左の「トリガー」で時間主導型のトリガーを追加し、毎朝の時刻帯を指定 |
ファイルの命名規則の例と、部品を作る式
| 対象 | 例 | Power Automate の式 | Apps Script の式 |
|---|---|---|---|
| メール本文(.md) | 20260918-093012_受信_a-sha_sato_見積のご相談.md | concat() で 日時_受信/送信_相手先_差出人_件名.md の順につなぐ | 同じ部品を + でつなぐ |
| 日時(秒まで) | 20260918-093012 | convertTimeZone(受信日時,'UTC','Tokyo Standard Time','yyyyMMdd-HHmmss') | Utilities.formatDate(日時,'Asia/Tokyo','yyyyMMdd-HHmmss') |
| 差出人(sato) | sato@a-sha.example → sato | first(split(差出人,'@')) | アドレス.split('@')[0] |
| 相手先(a-sha) | sato@a-sha.example → a-sha | first(split(last(split(差出人,'@')),'.'))。送信分は宛先で同じ式 | アドレス.split('@')[1].split('.')[0] |
| 件名(40字まで) | 見積のご相談 | substring(件名,0,min(40,length(件名))) | 件名.slice(0,40) |
| 添付 | 20260918-093012_受信_a-sha_sato_見積のご相談_添付01_図面.pdf | concat(メールの名前,'_添付',formatNumber(variables('n'),'00'),'_',添付の名前) | メールの名前+'_添付'+('0'+番号).slice(-2)+'_'+元の名前 |
| 原本(任意) | 20260918-093012_受信_a-sha_sato_見積のご相談.eml | 電子メールのエクスポート (V2) の出力 | — |
| 使えない文字 | Re: 見積 → Re_ 見積 | OneDrive for Business コネクタの「ファイルを作成する」が、使えない文字を _ に置き換える | — |
| 道具 | 無料か有料か | 役割 |
|---|---|---|
| Power Automate(クラウド フロー・標準コネクタ) | Microsoft 365 のライセンスに含まれる(追加費用なし)。標準コネクタは含む・プレミアム/カスタム コネクタは含まない。1日6,000アクション/ユーザー | 手順1・2: メールを .md と添付に分けて保存し、毎朝台帳に行を足す流れの本体 |
| Office 365 Outlook / コンテンツ変換(プレビュー) / OneDrive for Business コネクタ | すべて標準(Standard)コネクタ | トリガー(新着メール)・メールを取得する (V3)・Html からテキストへ・ファイルを作成する |
| Excel + Excel Online (Business) コネクタ | 既存の Microsoft 365 ライセンスの範囲。コネクタは標準 | ToDo台帳(テーブル・入力規則・条件付き書式)と、フローからの行追加・更新 |
| Microsoft Copilot(アドオン) | 有料アドオン(価格は公式ページで確認) | 手順2のAIあり版: 毎朝の定期実行(Schedule this prompt)。応答を台帳に写すのは人 |
| Google Apps Script + Gmail + Drive | Google Workspace のアカウントで使える(クォータあり) | 手順1・2(Google 環境): メールの取得・.md と添付の保存・台帳への行追加・時間主導型トリガー |
| Google Workspace Studio | Business Starter/Standard/Plus・Enterprise Standard/Plus・Education 各種のエディションで利用できる | ノーコードのフロー(Gmail・Drive・Sheets・Tasks と接続)+Gemini のステップ(Extract・Ask Gemini) |
| Google スプレッドシート | Google Workspace のアプリ | ToDo台帳(Google 環境)。フィルタビューで「今日やる」「待ち一覧」を保存 |
メールの整理は手順を決めれば自社で組めますが、契約書の項目抽出は難しいため、本気で作ったものをSaaSに実装して使えるようにしています。