みなさん、こんにちは!日々の開発やプロジェクト管理、チームのナレッジ共有に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ワークスペースをぜひ構築してくださいね。応援しています!