← ノームズリンク トップ実務ノウハウ一覧

KNOW-HOW

自動ToDo制作

送受信メールを1通1ファイルで保存し、毎朝ToDo台帳に行を足します。保存と台帳は既存ライセンスの範囲、AIに読ませる部分は環境で無料・有料が分かれます。

公開: 2026.09.18 / 実務ノウハウ

自動ToDo制作の毎朝のループ 自動ToDo制作の毎朝のループ 自動で動く部分(手順1・2) 自動で動く部分(手順1・2) 人がやる部分(手順3・4) 受信メール・送信メール 1通=1ファイル(.md)+添付 保管フォルダー(クラウド) 毎朝の定期実行(前日分を 読む) ToDo台帳(Excel/シート) 人が並べ替えて片付ける 翌朝は新しい行だけ追加す
自動ToDo制作の毎朝のループ(概念図。細部は省いています)

なぜ大事か

「送信して終わった気になる」が、この仕組みで防ぐ困りごとの中心です。返信待ちの案件はToDoに残りにくく、消し忘れると残り続けます。ToDo化しないと忘れて、取引先から催促が来て初めて気づきます。催促が来た時に過去メールを見返さないと、自分がどう放置したかが分かりません。扱うメールの通数が多いほど、この取りこぼしの機会が増えます。送受信メールを1通ずつ、ファイル名に日付・本文に送信者のメールアドレスと氏名を入れて保存し、1日1回棚卸しをして前日までのToDoを台帳に出すと、台帳の1行から元メールへ戻れます。

困りごとと仕組みの対応

困りごと起きること仕組みがあると
送信して終わった気になる返信待ちが台帳に残らず、催促も忘れる送信メールも1通1ファイルにして「待ち」の行として残る
ToDo化しないと忘れる取引先から催促が来て初めて気づく毎朝、前日までの受信・送信から台帳に行が足される
催促が来ても経緯が分からない過去メールを探して読み返す時間がかかる台帳の行から元メール(.md)へ戻れる。日付順に並ぶ
台帳を作り直すと手書きが消える対処メモを二度書くAIとフローは行を足すだけで、人の列に書かない(元メール名で重複を防ぐ)

手順

手順1手順1 メールを自動でAIに読みやすい形式に変換して保存する

受信メールと送信メールを1通ずつ .md(テキスト)ファイルにして保管フォルダーに保存します。ファイル名に日付(日時)を入れ、本文の先頭に送信者のメールアドレスと氏名を入れます。添付ファイルは、元のメールと結びつく名前(メールのファイル名+連番+元の名前)にして同じ場所に置きます。Markdown は素のテキストなので、先頭行を組んで拡張子を .md にすれば済みます。流れは図、設定は環境別の対応表、ファイル名は命名規則の表に示します。補足: Power Automate のトリガーが出力する差出人はアドレスだけです(公式リファレンスの型は email)。Microsoft 365 では、氏名は本文の署名から AI が読みます。

Microsoft 365(Power Automate)
クラウド フローを2本作ります。受信用はトリガー「新しいメールが届いたとき (V3)」で、フォルダーは受信トレイ、「添付ファイルを含める」は「はい」にします。本文が HTML の時は「Html からテキストへ」でテキストにします。書式は保持されません。リンクは公式ページに「削除される」と「text[link] の形で残る」の両方の記載があるため、自社のメールで出力を確認します。「作成」で先頭行を組み、OneDrive for Business の「ファイルを作成する」で .md として保存します。送信用はスケジュール済みフローで、毎朝「メールを取得する (V3)」を送信済みアイテムに向けます。トリガーを送信済みアイテムに向けた時の動作は、公式に記載がありません。コネクタはすべて標準(Standard)で、Microsoft 365 のライセンスに含まれます。
Google Workspace(Apps Script)
script.google.com で新しいプロジェクトを作り、対応表(Google)の順に関数を並べます。初回の実行時に、Gmail と Drive へのアクセスを承認する画面が出ます。検索は2日分を対象にし、同じ名前のファイルがあれば保存を飛ばします(実行時刻がずれても取りこぼしと重複が起きません)。差出人は getFrom() の文字列に < > があれば内側をアドレス、前側を氏名として先頭行に入れます。< > が無ければ文字列全体をアドレスとして扱います。ノーコードの Google Workspace Studio には、添付を Drive に保存するステップ「Add email attachments to Drive」があります(英語表記)。本文を .md にするステップは公式の一覧にありません。
手順1 Power Automateの流れ 手順1 Power Automateの流れ 受信: 新しいメールが届い たとき (V3) 送信: 毎朝 メールを取得 する (V3) Html からテキストへ 作成(先頭行を組む) ファイルを作成する(.md) 添付ごとにファイルを作成 する OneDrive の保管フォルダ
手順1 Power Automateの流れ(概念図。細部は省いています)

手順1・2の設定の対応表(Power Automate)。名称は公式リファレンスの表記。画面では少し異なる場合がある(例: メールの取得 (V3))

ステップ(公式リファレンスの名前)設定の要点
1新しいメールが届いたとき (V3)受信用フローの起点。フォルダー=受信トレイ、添付ファイルを含める=はい。対象を絞る時は 差出人・件名フィルター
2Html からテキストへ(コンテンツ変換〔プレビュー〕)Content=本文(「HTML ですか」が true の時)。5 MBまで。書式は保持されず、1行は最大80文字で改行される
3作成先頭行: # 件名 / - 日時 / - 差出人: sato@a-sha.example / - 宛先 / - 元のフォルダー: 受信 / --- / 本文
4ファイルを作成する(OneDrive for Business)フォルダー パス=/メール保管(固定)、ファイル名=命名規則の .md、ファイル コンテンツ=順3の出力
5変数を初期化する添付の連番用。名前=n、種類=整数、値=0。ループの外(Apply to each より前)に置く
6Apply 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と同じ形で取り、日時・相手先・件名・元メールを書く。送信分は 状態=待ち

手順2手順2 ルーチン設定をしてファイルを読ませる。(自動)

毎朝決まった時刻に、前日分の .md を読み、ToDo台帳に行を足す処理を自動で走らせます。流れは3段です。①前日分を集める、②AIに渡して要件・相手先・期限を読ませる、③答えを台帳の行にする。公式ドキュメントで確認できる範囲では、①と③は既存ライセンスの道具だけで無人にできます。②は環境と契約で変わり、無人の範囲と人が行う範囲が分かれます。その線を比較表の列「台帳への書き込み」に示します。AIとフローは新しい行を足すだけにし、既存の行と人が書く対処メモには触れません。同じ元メールの行があれば足さない決まりにすると、翌朝に手書きが消えません。

Microsoft 365
AIなし版(追加費用なし): 毎朝のスケジュール済みフローで「メールを取得する (V3)」を受信トレイと送信済みアイテムに向け、前日分を Excel Online (Business) の「テーブルに行を追加する」に渡します。書く列は対応表の順11のとおりです。重要度と要件の要約は AI か人が後で埋めます。AIあり版: Microsoft Copilot のライセンスがあれば、Copilot Chat の「Schedule this prompt」で毎朝の実行を登録できます(10件まで)。応答は Copilot の「チャット」一覧に出ます。応答ができた時のメール通知は任意で設定できます。応答を台帳に写す作業は人が行います。公式の対応コンテンツの表にはユーザーのメールボックスと Word・PDF 等があり、.md はありません。保存した .md を読めるかは自社環境で試してから固定します。読めない場合は、プロンプトの対象を前日の送受信メールにするか、人が朝に AI へファイルを渡す半自動にします。
Google Workspace
AIなし版: 手順1の Apps Script の末尾に appendRow を置きます(対応表の順8)。エディター左の「トリガー」から時間主導型のトリガーを追加し、毎朝の時刻帯に実行します。上限は1回の実行が6分、トリガーの合計が Workspace アカウントで1日6時間です。AIあり版: Google Workspace Studio で、起点「When I get an email」→ステップ「Extract」(Gemini がメールから要件・期限・相手先を取り出す)→ Google Sheets の「Add a row」の流れを組みます(英語表記)。受信メールは着信の都度、台帳の行になります。Drive のファイル本文を読むステップと、送信メールを起点にするスターターは公式の一覧にありません。送信分は AIなし版の行を使います。

手順2の道具の比較(2026-09-18時点の公式記載)

環境道具無料か有料か定期実行の機能と条件台帳への書き込み
Microsoft 365Power Automate(AIなし版)Microsoft 365 のライセンスに含まれる(標準コネクタ)スケジュール済みフローで毎朝。「メールを取得する (V3)」→「テーブルに行を追加する」自動(日時・相手先・件名・元メール)。重要度と要約は後で埋める
Microsoft 365Microsoft Copilot(アドオン)有料(価格は公式ページで確認)「Schedule this prompt」で毎朝実行。10件まで。対象は組織データ。.md の可否は要試験人(応答は「チャット」一覧に出る。人が台帳に写す)
Microsoft 365Copilot のライセンスなし定期実行は使えない(公式: ライセンスが必要)。人が朝に AI へファイルを渡す
Google WorkspaceApps Script 時間主導型トリガー(AIなし版)Google Workspace のアカウントで使える(クォータあり)毎朝の時刻帯に実行。1回6分・トリガー合計1日6時間自動(appendRow。日時・差出人・件名・ファイル名)
Google WorkspaceGoogle Workspace StudioBusiness Starter/Standard/Plus・Enterprise Standard/Plus 等で利用できる着信の都度。「When I get an email」→「Extract」→ Sheets「Add a row」自動(受信メールのみ。送信メールの起点は一覧に無い)

手順3手順3 整理の仕方を指示する(お好みで)

台帳の列と並べ方を決め、AIへの指示に書きます。例えばジャンル別(見積・配車・契約・請求・その他)、顧客別(相手先)、重要度別(1-高・2-中・3-低)です。重要度の値に数字を付けると、Excel とスプレッドシートの昇順の並べ替えがそのまま高→中→低の順になります。台帳は Excel か Google スプレッドシートの1枚の表にし、「AIが書く列」と「人が書く列(対処メモ)」を分けます。決まりと Excel の見本は例の表に示します。送信メール由来の行を「待ち」で残すのが、送信して終わった気になる事故を防ぐ要点です。法律が絡む内容(もの/ゴミの判定・許可の要否・保管積替)は自動で仕分けず「要確認」の行として人に回します。

Microsoft 365(Excel)
台帳は Excel の「テーブル」にします(ホーム > テーブルとして書式設定)。テーブル名は tblToDo のように付けます。重要度・ジャンル・状態はドロップダウンにします(データ > データの入力規則 > リスト)。列の順は見本のとおり A=期限 から H=元メール に固定します。Power Automate から書く時は「テーブルに行を追加する」と「行を更新する」を使い、キー列は「元メール」にします(ファイル名は一意)。公式は、数字だけの列名を不具合の原因に挙げています。
Google Workspace(スプレッドシート)
Apps Script から SpreadsheetApp.openById(台帳のID).getSheetByName('ToDo').appendRow([期限, 重要度, ジャンル, 相手先, 要件, 状態, '', 元メール名]) で末尾に1行追加します。対処メモの列には書きません。列の並びと名前は Excel の見本と同じにします。

手順3 台帳の列の決まり。この表の内容をAIへの指示に書く(自社の言い回しに直して使う)

列名(または指示の項目)書き手値の決まり=指示に書く内容
(読む範囲)AI保管フォルダーの前日分の .md をすべて読む。1通=1行で tblToDo に足す
期限AI本文の日付。無ければ受付日+3営業日
重要度AI1-高=期限3日以内・取引先からの催促 / 2-中 / 3-低。数字を付けて昇順の並べ替えに合わせる
ジャンルAI見積・配車・契約・請求・許可・その他(ドロップダウン)
相手先AI会社名+担当者名様(差出人アドレスと本文の署名から)。不明な時は「B社(担当者不明)」
要件AI1行。何を・いつまでに
状態AIが初期値・人が変更未着手/対応中/待ち/要確認/完了。「送信」で返答を求めている時は 待ち・期限=送信日+3営業日
(要確認にする内容)AI有価物/廃棄物の判定・許可の要否・保管積替に触れる内容は ジャンル=許可・状態=要確認。仕分けしない
対処メモ人のみAIとフローは読むだけで書かない。完了にした日を先頭に書く(例 9/19完了)
元メールAI.md のファイル名。一意なので「行を更新する」のキー列に使う。同じ元メールの行があれば足さない
(対象外のメール)AIメールマガジン・自動返信は ジャンル=その他・重要度=3-低 にする
(報告)AI最後に「読んだ通数・追加した行数・エラー」を1行で報告する

手順4手順4 使わないと意味がない

台帳は毎朝開いて、その場で並べ替えて片付けます。例えば、重要度別で並び替えて喫緊対応を済ませる→ジャンルごとにまとめて対応する、という順です。終わった行は削除せず「状態=完了」にしてフィルターで隠し、完了にした日は対処メモの先頭に「9/19完了」と書きます。行を残すことで、催促が来た時に「いつ受けて、いつ送って、いつ完了にしたか」を台帳の1行と元メール(ファイル名に受付日時が入る)で追えます。送信メール由来の「待ち」の行は、返信が来たら完了に、来なければ期限に催促します。状態と対処メモ以外の列は手で書き換えません。

Microsoft 365(Excel)
テーブルのヘッダー行で重要度→期限の順に昇順で並べ替え、片付いたら状態を「完了」にしてフィルターで完了を外します。期限切れに色を付けるには、データ行(例 $A$2:$H$200)を選び、ホーム > 条件付き書式 > 新しいルール >「数式を使用して、書式設定するセルを決定」に =AND($A2<TODAY(),$F2<>"完了") を入れます。期限がA列、状態がF列、データが2行目からの場合の式です。公式は、人の手編集とコネクタの書き込みを同じファイルに同時に行うことを非対応としています。フローが書く早朝の時間帯は台帳を閉じておきます。
Google Workspace(スプレッドシート)
列の構成を Excel と同じにし、「データ > フィルタビューを作成」で並べ替えと絞り込みを設定して「ビューを保存」します(画面の表記が「フィルタ表示」の場合もあります)。『今日やる(状態が完了以外・期限の昇順)』と『待ち一覧(状態=待ち)』の2つを保存し、毎朝切り替えます。Workspace Studio の「Create a task」ステップ(英語表記)で Google Tasks のタスクも作れます。
手順4 台帳の使い方 手順4 台帳の使い方 重要度で並べ替え(1-高か ら) 喫緊対応を済ませる ジャンルで並べ替え 同じ種類をまとめて対応 状態=完了(行は消さない)
手順4 台帳の使い方(概念図。細部は省いています)

ToDo台帳(Excel)の見本。テーブル名 tblToDo。A列=期限〜H列=元メール。会社名と氏名は架空

期限重要度ジャンル相手先要件状態対処メモ(人が書く)元メール
2026-09-181-高見積A社 佐藤様廃プラ 月20tの見積提出(図面添付あり)対応中単価は前回実績を確認中20260918-093012_受信_a-sha_sato_見積のご相談.md
2026-09-191-高配車B社 鈴木様9/22の回収便を1台追加希望未着手20260917-161005_受信_b-sha_suzuki_回収便追加.md
2026-09-191-高許可E社 加藤様持込予定物の有価物/廃棄物の判断を求める問い合わせ要確認人が判断してから返信20260918-100521_受信_e-sha_kato_持込のご相談.md
2026-09-202-中契約C社 田中様委託契約書の更新案への返信待ち(こちらから送信済み)待ち9/17送信。返信がなければ9/22に催促20260917-180233_送信_c-sha_tanaka_契約書更新.md
2026-09-242-中請求A社 佐藤様8月分請求書の再発行依頼未着手20260918-081240_受信_a-sha_sato_請求書再発行.md
2026-09-303-低その他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_見積のご相談.mdconcat() で 日時_受信/送信_相手先_差出人_件名.md の順につなぐ同じ部品を + でつなぐ
日時(秒まで)20260918-093012convertTimeZone(受信日時,'UTC','Tokyo Standard Time','yyyyMMdd-HHmmss')Utilities.formatDate(日時,'Asia/Tokyo','yyyyMMdd-HHmmss')
差出人(sato)sato@a-sha.example → satofirst(split(差出人,'@'))アドレス.split('@')[0]
相手先(a-sha)sato@a-sha.example → a-shafirst(split(last(split(差出人,'@')),'.'))。送信分は宛先で同じ式アドレス.split('@')[1].split('.')[0]
件名(40字まで)見積のご相談substring(件名,0,min(40,length(件名)))件名.slice(0,40)
添付20260918-093012_受信_a-sha_sato_見積のご相談_添付01_図面.pdfconcat(メールの名前,'_添付',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 + DriveGoogle Workspace のアカウントで使える(クォータあり)手順1・2(Google 環境): メールの取得・.md と添付の保存・台帳への行追加・時間主導型トリガー
Google Workspace StudioBusiness Starter/Standard/Plus・Enterprise Standard/Plus・Education 各種のエディションで利用できるノーコードのフロー(Gmail・Drive・Sheets・Tasks と接続)+Gemini のステップ(Extract・Ask Gemini)
Google スプレッドシートGoogle Workspace のアプリToDo台帳(Google 環境)。フィルタビューで「今日やる」「待ち一覧」を保存

ここが危ない

自社のメール量に合わせたアクション数の概算、台帳の列の設計、AIの応答を台帳へ書き込む部分の組み方、どの AI に何を渡すかの線引きは会社ごとに違います。ここから先は参加フォームから聞いてください。 参加フォームから聞く →

メールの整理は手順を決めれば自社で組めますが、契約書の項目抽出は難しいため、本気で作ったものをSaaSに実装して使えるようにしています。

出典・確認した公式情報