はじめに
hkob の雑記録の第268回目は、昨日の行ごとの閲覧権限の設定に従って、会議議事録の統合をしたいと思います。
これまでの議事録管理
今、meeting note を使えるのが私だけなので、私が関与するほとんどの会議で meeting note を使っています。ただ、共有する人が会議ごとに異なるので、以下のようにページを分け、この下に meeting note のテンプレートを含んだデータベースを並べていました。このページごとに共有する人を変えていた状況です。このため、会議のたびに関連するページを開き、データベース内のページを作成して、meeting note を起動していました。

統合した議事録データベース
これからエンタープライズプランを導入するにつき、これらの議事録がバラバラにあるのは非常に面倒です。そこで、今回可能になった閲覧権限を適用してみます。まず、all_meetings というデータベースを作成し、以下のプロパティを設定しました。

ここで、参加者に設定された人にはページレベルのアクセスで「編集権限」を付与するようにしています。

このデータベースは後で、Linked view により権限なしで表示されるため、新規ページを作成するためのデータベースオートメーションを作成します。データベースオートメーションは、トリガーをかけたユーザではなく、Notion の Automation がユーザになるため、権限のないユーザでもページを作成できるためです。昨日の解説から「会議日」をトリガーした日付を追加しています。これにより、「新規議事録」にユーザがチェックすることで、新しいミーティングノートが作成されます。

さらにもう一つページにタイトルを設定するデータベースオートメーションを作成しました。会議日または会議を変更した時に、名前を設定します。

タイトルの数式は以下のようにしています。

コードもこちらに示しておきます。その他の会議の場合にも対応できるように「その他」の欄も用意していました。
let( meeting, context("トリガーページ").prop("会議"), meeting_str, meeting.empty() || meeting == "その他" ? context("トリガーページ").prop("その他") : meeting, date, context("トリガーページ").prop("会議日"), date_str, date.empty() ? "" : date.formatDate("(YYYY/MM/DD)"), meeting_str + date_str )
あとは、テンプレートの設定です。会議ごとにテンプレートを用意し、会議名を自動的に設定するだけでなく、議事録を共有したい人を「参加者」に登録することで、会議ごとにその人に通知がいくようになります。

データベース側の準備はここまでです。ここで、シェアしたページに Linked view を追加し、all_meetings をリンクします。データソースはプライベートなので、全てのページは共有したユーザには見えません。ただし、参加者に設定されたページだけは、編集権限が付与されるため、見えるようになります。

共有されたページは以下のようになりました。参加者に登録したユーザとしてページが見えるようになっていました。

おわりに
これで、議事録のデータベースを一元化することができました。明日から関連する教職員を招待して使い始めてみたいと思います。