Teamsの自動投稿を、上司が朝礼で読み上げていた

Teamsの自動投稿を、上司が朝礼で読み上げていた|Power AutomateとBoxで「朝の1画面」を作った

アーティファクトで、何か作ってみたかった きっかけは単純で、アーティファクトで何か作ってみたかった。 Boxの管理画面を作った記事で書いたとおり、アーティファクトは「実行ボタン」から「常設の画面」まで作れる。ただ、作れることが分かっても、何を作ればいいかは別の問題だ。道具を先に手にして、使い道を探している状態だった。 朝礼で見かけた光景 使い道は、朝礼にあった。 毎朝8時、Teamsにいくつかの通知が自動で届く。上司から頼まれて、以前Power Automateで作ったものだ。今は4種類ある。実施漏れ、連携漏れ、登録漏れ、未完了——どれも「やり忘れがないか」を知らせる通知だ。 もとをたどると、どれも誰かが毎日手でやっていた確認だった。管理職がSalesforceのレポートを開いて数字を拾っていたものもあれば、自分が朝礼前に集計していたもの(未連携チェックの記事)もある。それを自動投稿に置き換えた。 ある朝、朝礼を見ていて気づいた。 上司が、その投稿を開いて読み上げていた。 通知はちゃんと使われていた。見られていない、ということはない。ただ、4つの投稿を順番に開いて、数字を口頭で伝える——Teamsと朝礼のあいだを、人がつないでいた。 書類チェックの記事で「出口が大事」と書いた。この通知には出口があった。朝礼だ。でもその出口まで、最後の一歩は人が運んでいた。 人が読み上げているものは、まだまとめる余地がある。 投稿を1つずつ見に行かなくても、全部が1画面に集まっていて、その横に朝礼で話すことをメモできる。管理職にとって便利なのは、たぶんそういう画面だと思った。 作ったもの 毎朝8時20分に自動で更新される画面を、アーティファクトで作った。 表示するもの 内容 4種類の通知 それぞれの件数(登録漏れは内訳も) 元の投稿へのリンク 各項目からTeamsの投稿へ飛べる 本日未更新の表示 その日のデータがまだ来ていなければ「⚠️ 本日未更新」と出す メモ欄 右側に自由に書ける。書いた内容は自動で保存される 地味だが気に入っているのは「本日未更新」の表示だ。数字が昨日のままでも、画面だけ見ていると気づけない。古い情報を新しいものと思い込むのがいちばん怖いので、はっきり分かるようにした。 2回失敗した 画面の形はすぐ決まった。難しかったのは、データをどこから持ってくるかだった。 1回目:Teamsの投稿を直接読む → 断念 最初に考えたのは素直な方法だ。社内のClaudeには、TeamsなどMicrosoft 365とつながる機能(コネクタ)がある。それで今朝のTeams投稿を探して、数字を読み取ればいい。 ところが、試してみると使えなかった。 「日付で絞る」ことと「チャネルの投稿を探す」ことが、同時にできない。 日付で絞れる探し方はチャネルの投稿に対応しておらず、チャネルの投稿を探せる方法は日付で絞れない キーワードを変えて何度も探そうとすると、呼び出しが多すぎると拒否されて、結果が0件になる 「今朝の、このチャネルの投稿」という一番ほしい探し方が、仕様の組み合わせでできなかった。どこにも書いていない制約で、試して初めて分かった。 2回目:SharePointのリストを経由する → 断念 次に考えたのは、Power Automateに結果を別の場所へ書かせる方法だ。Teamsに投稿するついでに、SharePointのリスト(表のようなもの)にも書き込む。 書き込みは成功した。ところが今度は、Claudeの側にSharePointのリストを読む手段がなかった。 書けるのに、読めない。これも実際にやってみて初めて分かった。 3回目:Boxのファイルでつなぐ → 成功 最後にたどり着いたのがこれだ。 Power Automate(毎朝8:00) ↓ これまで通りTeamsに投稿 ↓ 同時に、BoxのTXTファイルに結果を上書き保存 (投稿日時・件数・Teamsへのリンク) アーティファクト(毎朝8:20) ↓ Boxのファイルを読んで、画面に表示 BoxはClaudeから問題なく読めることが、前に作った管理画面で分かっていた。Power Automate側は、既存のフローに**「Boxへの書き込み」を1つ足すだけ**で済んだ。 3回目も、ファイルでつないだ 書いていて気づいたのだが、これは3回目だ。 記事 何をファイルでつないだか 書類の仕分け 仕分けが終わった合図 書類のチェック 新しく増えたフォルダの一覧 今回 毎朝の通知の結果 どれも「直接つながらないものを、ファイル1つでつなぐ」形になっている。 ...

2026年9月29日 · 1 分
アーティファクトでBoxの管理画面を作った

アーティファクトでBoxの管理画面を作った|チャットでは動くのに、中では動かないもの

アーティファクトの使い道が、また一段広がった 以前、書類の仕分けを自動化した記事で、Claudeの「アーティファクト」という機能の使い道について書いた。要約するとこうだ。 繰り返しやっている作業のボタンを1つ作ってみる。アーティファクトは、AIへの指示を「アプリの操作」に変換する道具として使える。 今回はその続きになる。ボタン1つではなく、画面の横に出しっぱなしにしておく管理画面を作ってみた。 きっかけは、社内のClaudeにBoxとつながる機能(コネクタ)が入ったことだった。 作ったもの 2つ作った。 ① ファイル一覧・更新監視の画面 Boxのフォルダをブラウザ上で開いて、中身を見られるようにしたもの。 フォルダをクリックして階層を掘り下げられる(パンくず表示つき) ファイル名・サイズ・更新日時を一覧表示、列見出しをクリックで並べ替え 名前で絞り込み検索 前回見たときからの差分を検出して、更新・新規のファイルに色を付ける ② Box AIで一括分析する画面(本命だった) こちらは少し説明が要る。Box AIというのは、Box自身が持っているAI機能のことだ。Claudeとは別物で、Boxに置いてあるファイルをBoxの中で読んで答えてくれる。 なぜそれを使いたかったかというと、ファイルの中身をClaudeに送らなくて済むからだ。社内のClaudeは使った分だけ費用がかかるので、大量のファイルをそのまま読ませると高くつく。Box AIに読ませて要約だけ受け取れば、こちら側の負担はぐっと減る。46万件のファイルを整理したときに学んだ「必要な分だけ読ませる」の応用でもある。 作ったのは、フォルダ内のファイルに対してまとめてBox AIに指示を出す画面。「要点を抽出して」「リスクがありそうな箇所を挙げて」といった指示を自由に書いて、結果を一覧で見る——そんなものを想定していた。 契約書の要点抽出や、議事録からのアクション整理に使えるはずだった。 ところが、本命が動かなかった ②を動かしてみたら、すべてのファイルでエラーになった。Access denied——アクセスが拒否された、という意味だ。 調べていくと、原因は権限の設定だった。少し細かい話になるが、大事なところなので書いておく。 Box AIを外部のアプリから呼び出すには、2段階の許可が必要だった。 会社としてBox AIを有効にする → これは有効になっていた(Boxの画面から直接使えたので) アプリごとにBox AIの利用を許可する → こちらが未設定だった つまり「自分はBoxの画面からBox AIを使えるが、Claudeという"アプリ"にはBox AIを使う許可が下りていない」という状態だった。 ここで時間を使ったのは、最初にフォルダの閲覧権限を疑っていたことだ。ファイル名や更新日時は取れているのだから権限はあるはずなのに、と混乱した。切り分けの決め手になったのは「Boxの画面から手で操作すると成功する」という事実で、そこから「人ではなくアプリの側の権限だ」とたどり着いた。 そして、この権限はたぶん下りない 原因が分かったので、管理者への依頼文書を作った。ここまではSalesforceの設定を依頼したときと同じ流れだ。 ただ、今回は事情が違った。 この設定は、契約全体に対して有効になる。 外部アプリへの許可は、利用者ごとや部署ごとに切り分けられない。つまり依頼を受ける側から見ると、 「この会社(あるいはグループ全体)で、この外部アプリにBox AIを使わせてよいか」 という判断になる。こちらの感覚では「試しに使ってみたいだけ」でも、受け取る側にとっては全社の話なのだ。 そう考えると、一人の試用のために全体の設定を変えてもらうのは、筋として重い。通らない可能性のほうが高いと考えたほうが自然だと思った。 だから「使えないまま運用する」形にした ここが今回いちばん考えたところだ。 選択肢は2つあった。 A:許可が下りるまで待つ(下りなければ、作ったものは無駄になる) B:使えないままでも回る形にする Bを選んだ。 具体的には、Box AIで処理できなかったファイルに対して「Claudeのチャット用の指示文をコピー」というボタンを置いた。押すと、そのファイルに対する指示文とフォルダの情報が丸ごとコピーされる。あとはチャットに貼り付ければ、同じことができる。 自動ではない。ひと手間かかる。それでも、画面を見て「これを分析したい」と思ったその場から、2クリックで先に進める。 「使えるようになったら本気を出す」をやめた この判断は、たぶんこのブログでいちばん伝えたいことに近い。 社内でAIを使っていると、自分では動かせない壁に何度もぶつかる。権限、契約、管理者の判断。どれも自分の努力とは関係のないところで決まる。 そのたびに「解決したら再開しよう」と止めていたら、たぶん何も進まない。実際、以前に書いたできたこと・できなかったことの記事でも、ネットワーク上のフォルダが見えないという制約を、別のツールに運ばせることで回避した。あのときと考え方は同じだ。 制約は消えるのを待つものではなく、そのまま抱えて設計に織り込むもの——これが数か月かけて身についた感覚だと思う。 もちろん、依頼は出してある。通れば儲けもの、くらいの気持ちでいる。 アーティファクト内での制約(実際に踏んだもの) もうひとつ、作ってみて初めて分かったことがある。チャットでできることが、アーティファクトの中では必ずしもできない。 同じClaudeなのに、動く場所によって挙動が違うのだ。実際に踏んだものを書いておく。 制約 内容 ファイルの中身をそのまま取得できない 画像やPDFなどのデータを直接扱うツールは、アーティファクト内から呼び出すとエラーになる 連続で呼ぶと止まる 短時間にたくさん呼び出すと「リクエストが多すぎます」と拒否される。件数の上限を設けて回避した 画面内から呼び出すClaudeは精度が落ちる アーティファクトの中からもClaudeを呼べるのだが、使われるのは軽量なもので、チャットで対話するときほど賢くない。込み入った判断は任せられない(※Box AIとは別の話) 3つ目は特に注意が要る。「チャットでうまくいったから、画面に組み込めば同じことができるだろう」と考えると、たぶん失敗する。アーティファクトは"賢い判断"を任せる場所ではなく、“決まった操作"を並べる場所だと考えたほうが良さそうだ。 ...

2026年9月2日 · 1 分
スキャンした書類の仕分けをAIに任せた

スキャンした書類の仕分けをAIに任せた|「格納しておいて」の一言で終わる仕組み

紙をスキャンした後に残る、地味な作業 複合機で紙の書類をスキャンする。これ自体は数秒で終わる。問題はそのあとだ。 出てきたPDFを開いて中身を確認し、書類番号と案件番号を読み取って、その番号でファイル名を付け直す。年月と案件ごとのフォルダを作って、そこに入れる。しかも一度にまとめてスキャンすると、1つのPDFの中に何件分もの書類が入っているので、それを1件ずつに切り分ける必要もある。 一件あたりは大した手間ではない。ただ、件数がまとまると地味に時間を取られるし、何よりファイル名を打ち間違えたり、入れる場所を間違えたりする。後から探せなくなるので、間違えると余計に面倒なことになる。 今はどうなっているか 先に結果を書くと、今はこうなっている。 「格納しておいて」と一言入力すると、全部終わる。 PDFを開いて中身を読み、番号を拾い、必要なら1件ずつに分割し、年月と案件番号のフォルダを作って、正しい名前を付けて格納する。おかしなデータがあれば処理せずに報告してくる。処理した履歴も残る。 チャットに打ち込む代わりにボタンを1つ押すだけでも起動できるし、時間を決めて勝手に走らせることもできる。 ただし、この「時間を決めて走らせる」には条件がある。動くのはパソコンが起動しているあいだだけだ。自分の環境では退社時にPCを停止するルールがあり、放置すると自動でシャットダウンもされるので、「夜のうちに走らせておく」ことはできない(この事情は46万件のファイル整理の記事で詳しく書いた)。 ちなみに同じ自動化でも、クラウド側で動くものは自分のPCが落ちていても動き続ける。以前に作った記入漏れの通知やSalesforceの未連携チェックはそちらなので、帰宅後も朝も勝手に動いている。「手元のPCで動くもの」と「クラウドで動くもの」の違いは、自動化を組むうえで意外と大事だった。 これまでの記事とは、AIの役割が違う このブログでこれまで書いてきた自動化は、どれもAIが相談相手だった。Power Automateの組み方を教えてもらったり、エラーの原因を一緒に探してもらったり。手を動かして仕組みを作るのは自分で、動かすのはPower Automateだった。 今回は違う。AIが処理そのものをやっている。 PDFを読んで「これは何番の書類か」を判断するのも、「この2つは別の書類だから切り分ける」と決めるのも、AIの担当だ。ここが今までと決定的に違うところで、正直やってみるまで「そんなことまでできるのか」と半信半疑だった。 仕組み:運搬・判断・確認を分ける とはいえ、AIに全部やらせているわけではない。実際の構成はこうなっている。 ① 複合機 → ネットワーク上のフォルダにスキャン(今まで通り) ② Power Automate Desktop ファイルを作業用フォルダへ運ぶ ③ Claude(黒子) 中身を読んで、名前を決めて、振り分ける ④ Power Automate Desktop 完成したものを所定の場所へ運ぶ ⑤ 人 中身を確認する 役割をひとことで言うと、運搬はPower Automate、判断はAI、最終確認は人。 なぜ分けたかというと、それぞれ得意なことが違うからだ。ファイルを決まった場所から決まった場所へ移すだけの作業は、Power Automateのほうが速いし確実で、しかもタダで動く。一方、中身を読んで判断する仕事はAIにしかできない。そして、間違いがあったときに責任を取れるのは人だけだ。 もうひとつ現実的な理由もある。AIが動いている場所からは、ネットワーク上の共有フォルダが見えなかった。この制約は以前に調べてあった(できたこと・できなかったことの記事に書いた通り)。だから「見える場所まで運んでくる」役をPower Automateに任せる必要があった。 制約から始まった分担だったが、結果的にこの形がいちばん理にかなっていたと思う。 AIにしかできなかったこと 具体的に、AIが担当している判断はこのあたりだ。 書類の中身を読んで番号を拾う 書類は手書きと印字が混ざっている。決まった位置に決まった文字があるわけではない。「この書類の番号はどれか」を読んで判断する必要がある。 何件分が入っているかを見分けて切り分ける まとめてスキャンした1つのPDFの中に、複数の書類が入っている。どこからどこまでが1件なのかは、中身を読まないと分からない。実際に39ページのPDFから7件の書類を切り出すところまで動いている。 おかしなものを見つけて止まる 作業した月と報告した月が食い違っているものは、処理せずに「これは変です」と報告してくる。機械的に処理していたら、間違った場所に入って後で分からなくなるやつだ。 一番の学びは「安全弁」の設計だった この仕組みを作る中で、一番勉強になったのは技術的なことではなく設計の考え方だった。 問題はこうだ。③のAIの処理が終わる前に、④の運搬が走ってしまったらどうなるか。まだ途中までしかできていないものが、完成品として所定の場所にコピーされてしまう。 これを防ぐために入れたのが完了マーカーだ。 AIは処理をすべて終えたとき、最後に「終わりました」という意味の空ファイルを1つ置く。④の運搬は、そのファイルがあるときしか動かない。無ければ何もせず、そのまま終了する。 仕組みとしては拍子抜けするほど単純だが、これがあるとないとでは安心感がまるで違う。自動化を複数つなげるときは、「前の工程が本当に終わったか」を次の工程が確認できる形にしておく——これは他の作業にもそのまま使える考え方だと思う。 ちなみにこの完了マーカーを置くルールは、AIの作業フォルダに置いた指示書に書いてある。毎回口頭で頼まなくても、そのフォルダで作業するときは自動的にそのルールが効く。 なぜ「全部自動」にしなかったのか 最後に人の確認を残しているのは、半分は制約、半分は意図的な選択だ。 制約というのは、AIを完全に自動で起動させることが今の環境ではできないこと。だから「運搬を動かす → AIに一声かける → 完成したら運搬を動かす」という半自動の形になっている。 ただ、仮に全部つながったとしても、最後の確認は人が残すと思う。読み取った番号が1文字違っていても、機械は気づかない。確認する場所を1か所だけ残しておけば、そこで全部止められる。 自動化というと「人の手を完全に無くすこと」だと思われがちだけど、実際に作ってみて感じたのは、人が見る場所を1か所に絞ることのほうが価値があるということだった。以前は全部の工程で気を張っていたのが、今は最後の確認だけになった。減ったのは作業時間だけでなく、気を配る対象の数でもある。 「アーティファクト」の使い道がやっと分かった ここで、ずっと持て余していた機能の話をしたい。 ...

2026年8月15日 · 1 分