【入門編】Notionの「データベース・テンプレート」における変数(@Todayや@Me)の動的置換バグと、自動化フローが意図せず停止する原因の特定方法 – プロジェクト・ナレッジ管理活用バイブル

みなさん、こんにちは!日々の開発やプロジェクト管理、チームのナレッジ共有にNotionを活用していますか?

Notionは非常に柔軟で美しいツールですが、現場でチーム運用をスケールさせようとした際、多くの人が必ずと言っていいほどぶつかる「謎の罠」が存在します。

それが、「データベース・テンプレート内で `@Today` や `@Me` などの動的変数を使うと、いつの間にか日付や担当者が過去の特定の日のまま固定化(静的化)されてしまう」という現象や、「ボタンやDBオートメーションと組み合わせた途端、自動化フローが意図せず停止・誤作動する」というトラブルです。

「毎日の日報やタスク作成を自動化しようとしたのに、なぜか全部『テンプレートを作った日』の日付になってしまう…」
「オートメーションが動いているはずなのに、動的変数が書き換わらない…」

大丈夫です。この記事を読み終える頃には、Notionの裏側で何が起きているのかという仕組み(メンションの内部構造)がスッキリ理解でき、二度とこのバグに悩まされなくなりますよ。これをマスターすれば、毎日の作業が劇的に楽になります。

それでは、一緒に学びを進めていきましょう!

—

1. なぜ変数は「固定化」してしまうのか? 挙動の裏側にあるロジック

まず、Notionにおける「動的メンション」の仕組みを正しく理解しましょう。
実は、Notionの入力補完で `@Today`(または `@今日`)と打ち込んだとき、画面上には2種類の全く異なるデータ構造が存在しています。

【罠のパターンA:静的メンション(特定日時の固定)】
入力時: `@Today` -> ポップアップから「Today – Date of mention」を選択
結果: 2023-10-25 という「入力したその瞬間」のテキストデータとして保存される。
テンプレートを翌日・来月に呼び出しても「2023-10-25」のまま変わらない。

【正しいパターンB:動的メンション(複製時置換)】
入力時: `@Today` -> ポップアップから「Date when duplicated (複製時の日付)」を選択
結果: Notion内部で「Dynamic Token」として保持される。
テンプレートから新規ページが作られた「その日」の日付に動的に置換される。

多くの初心者が陥る原因の9割は、テンプレート編集時に `@Today` と入力してそのまま Enter キーを連打し、「静的メンション(今日の日付)」として確定させてしまっていることにあります。

同様に `@Me`(または `@自分`)も、「テンプレート編集者(あなた)」として静的固定されるケースと、「テンプレートからページを生成した操作者」として動的置換されるケースの2種類があります。

—

2. 【基礎セットアップ】正しく動く「動的テンプレート」の作成手順

では、実際に動的に置換される正しいデータベース・テンプレートを作成してみましょう。
まずは最もシンプルな「日報 / デイリータスク」テンプレートを例にします。

Step 1: テンプレートの新規作成

1. タスク管理用データベースの右上にある「新規」ボタン横の `∨`(ドロップダウン)をクリックします。
2. 「+ 新しいテンプレート」をクリックします。

Step 2: タイトルおよびプロパティへ動的変数を組み込む

ここが最重要ポイントです!慎重に操作してください。

① タイトルに動的日付を入れる場合

タイトル入力欄で `@Today` と入力します。
すると、補完ポップアップが表示されます。ここで「今日 – メンションした日付」を選んではいけません。

ポップアップの下部にある 「複製時の日付(Date when duplicated)」(青いアイコンや「複製時」という表記があるもの)を必ず選択してください。

[タイトル入力例]
日報_@Date when duplicated
↓(正しく設定されるとカレンダーマーク付きの青いタグになります)
日報_@複製時の日付

② プロパティ(日付・人名)に動的変数を設定する場合

プロパティ欄の「日付」をクリックし、カレンダーポップアップを開きます。
カレンダーの上部にある切り替えオプションから、「複製時の日付(Date when duplicated)」を選択します。

「担当者」プロパティの場合は、「複製したユーザー(Person who duplicates)」を選択します。

—

3. 【精度高いHelloWorld】動的置換の確実な動作確認手順

設定したテンプレートが、本当に動的に置換されるか検証(デバッグ)してみましょう。Notionにおける「HelloWorld(動作確認)」の手順です。

検証ステップ

1. テンプレートの準備: 上記の手順で `[デイリー] @複製時の日付` というテンプレートを作成・保存します。
2. テスト実行: データベースの「新規」ドロップダウンから、作成したテンプレートをクリックして新規ページを生成します。
3. 確認ポイント:

  • 生成されたページのタイトルが、「今日の本物の日付(例: 2023-10-26)」という実データのテキストに置換されているか?
  • テンプレート自体の編集画面に戻ったとき、テンプレート側は引き続き `@複製時の日付` というトークンのまま維持されているか?

この2点が確認できれば、テンプレート単体での動的変数設定は成功です!

—

4. 自動化(ボタン・DBオートメーション)と組み合わせた際の「変数の静的化バグ」回避策

ここからが、中級者以上でも頭を抱える「現場の深い悩み」です。
「テンプレート単体では動くのに、ボタン機能やDBオートメーションからテンプレートを呼び出すと日付が壊れる/実行が止まる」という問題が発生します。

原因:オートメーション経由での「コンテキスト喪失」

Notionのボタン機能やDBオートメーション(「ページが追加されたら〜」などの自動化)から「テンプレートを適用する」アクションを実行した際、Notionの内部エンジンが「誰が」「いつ」実行したのかというコンテキストを正しく引き継げず、動的トークンが「自動化が設定された日時」に固定化されるバグ(または仕様制限)が存在します。

確実な回避策:オートメーション側で直接プロパティを上書きする

テンプレート内の動的メンションに頼るのをやめ、「ボタン」や「オートメーションのアクション」側で明示的に日付や実行者を割り当てる設計に切り替えます。これが最も堅牢でエラーが起きないベストプラクティスです。

解決パターンA:ボタン機能を使う場合

ボタンの設定画面で、以下のように構築します。

【ボタンの設定ロジック】
1. ページを追加:[タスクデータベース]
2. プロパティを設定:

  • [日付] ───> [ボタンを押した日時 (Now / Today)] ※動的メンション
  • [担当者] ───> [ボタンを押したユーザー (Person who pushed button)]

3. ページを開く:作成したページ

ボタン機能内の設定ポップアップで選択できる `Now`(または `Today`)や `Person who pushed button` は、実行時に確実に置換されます。

解決パターンB:DBオートメーションを使う場合(データベース全体の自動化)

トリガー:`ページが追加されたとき`
アクション:`プロパティを変更` ➔ `日付` ➔ `Now(現在)` を選択。

[トリガー] 新規ページ作成
│
▼
[アクション]
├─ テンプレートを適用: “日報テンプレート” (本文の骨組みだけを適用)
└─ プロパティの編集:

  • 日付 = 今日の日付(Now)
  • 担当者 = 作成者(Created by)

このように、「本文の構造(枠組)」はテンプレートに任せ、「動的なプロパティ代入」はオートメーション側に任せるという「役割の分離」を行うことで、変数の固定化バグを100%回避できます。

—

5. 自動化フローが意図せず停止する原因の特定方法(デバッグ手順)

もし「ボタンを押しても何も起きない」「オートメーションが途中で止まる」という現象が発生したら、以下のチェックリスト順に原因を特定してください。

デバッグ・チェックリスト

1. アクセス権限の不整合(最頻出)

  • オートメーションを実行するユーザーが、関連するデータベースへの「編集権限」を持っているか確認してください。閲覧権限のみのユーザーがボタンを押しても、静かに処理が失敗します。

2. 必須プロパティの入力漏れ

  • データベースのビューで「必須」に指定されているプロパティや、フィルター条件によって弾かれているケースです。自動生成されたページがフィルターによって即座に「非表示」になり、消えたように見えることがあります。

3. セレクト/ステータス値の名称変更

  • オートメーション内で「ステータスを『進行中』にする」と設定していたのに、データベース側のステータス名を「実行中」に書き換えてしまった場合、自動化フローはエラーを起こして停止します。

—

6. 安定したワークフローを維持するための設計ベストプラクティス

最後に、アジャイルなチーム運用を長く支えるための「ドキュメント・データベース設計ルール」をまとめます。

規則1: メタデータには「システム生成プロパティ」を第一選択にする

タスクの「作成日」や「作成者」を追跡したい場合、自分で `@Today` や `@Me` を入れるプロパティを作るのではなく、Notionの組み込みプロパティである`作成日時 (Created time)`と`作成者 (Created by)`を使用してください。
これらは完全にシステム側で不変性が保証されるため、バグが起こりようがありません。

規則2: テンプレートは「構造(型)」に特化させる

動的なプロパティ代入は、極力「ボタン」や「オートメーション」に集約させ、テンプレート自身には「見出し構造」「チェックリスト」「書き方のガイド」といった静的なコンテンツだけを持たせるのが、メンテナンス性を最大化するコツです。

【理想的な責務の分離】

  • Notionテンプレート ➔ 文書フォーマット、目次、アジェンダ(静的知識)
  • Notionボタン / DBオートメーション ➔ 日付付与、担当者割り当て、ステータス変更(動的処理)

—

まとめ

今回のポイントを復習しましょう。

1. `@Today` や `@Me` は、入力時に「複製時の日付 / ユーザー」を明示的に選ぶ。(単なるエンター連打は静的固定の罠!)
2. 自動化(ボタン・オートメーション)と組み合わせる時は、プロパティ代入を自動化側に任せる。(コンテキスト喪失バグの回避策)
3. 作成日時・作成者は Notion 標準の `Created time` / `Created by` プロパティを活用する。

Notionの内部仕様を理解し、正しい設計パターンを適用すれば、もう「日付がズレる」「自動化が動かない」といったストレスに時間を奪われることはありません。

チームのベロシティを爆発的に高める、美しく堅牢なNotionワークスペースをぜひ構築してくださいね。応援しています!

タイトルとURLをコピーしました