HubSpotを運用する中で、「計算プロパティ」という言葉を聞くと、「設定が難しそう」「エンジニア向けの機能では?」と身構えてしまう方も少なくありません。しかし、実はこれこそが「データの鮮度」を保ち、日々の「入力工数」を劇的に減らしてくれる最強の時短ツールなのです。
今回は、そんな計算プロパティの便利な活用方法の一つとして、「今日の日付」を基準に数値を自動更新するテクニックを具体的に解説します。
HubSpotの計算プロパティで「今日の日付 - 生年月日」という計算式を作っても、その「今日」が固定されてしまうと、翌日にはデータが古くなってしまいます。
「コンタクトの年齢を常に最新の状態で見たい」
「あと何日で契約満了かを毎日カウントダウンしたい」
「一定期間アクションがない顧客を自動で抽出したい」
これらを実現するには、「今日」という日付が入ったプロパティを、毎日自動で書き換える仕組みが必要になります。
この設定を完了すると、HubSpot上の特定のプロパティが毎日深夜に自動更新されるようになります。
これにより、計算プロパティがその更新を検知して再計算を行うため、ダッシュボードやリストに表示される「年齢」や「残り日数」が常に正確な数値(最新の状態)に保たれます。手動でインポートし直したり、個別にプロパティを更新したりする手間は一切かかりません。
「今日の日付」プロパティを毎日更新するために、2つのワークフローを連携させて「循環(ループ)」構造を作ります。
日付型プロパティの作成:名前を「今日」などとして作成しておきます。
チェックボックス型プロパティの作成:名前を「ワークフローループトリガー」とし、値を「True/はい」などに設定できるようにします。
このワークフローは、実際に「今日」のプロパティを上書きし、次の待機用ワークフローへバトンを渡す役割を持ちます。
コンタクトに「今日」の日付データを持たせる場合はコンタクトベースのワークフローを作成する必要があります。
トリガーの設定:
「再登録」をオンにします。
条件1:レコードが作成された時。
条件2:プロパティ「ワークフローループトリガー」の値が「True/はい」になった時。
アクション1:レコードを編集:
プロパティ「今日」を「このアクションが実行された日付」に設定します。
アクション2:遅延:
5分間などの短い遅延を挟みます(処理の安定のため)。
アクション3:ワークフローへ:
次に作成する「【待機用】今日の日付を入力」ワークフローに登録します。
このワークフローは、日付が変わるまで待機し、翌日にメインWFを再度動かすためのスイッチを押す役割です。
トリガーの設定:
「再登録」をオンにします。
手動のみ登録に設定します。
アクション1:レコードを編集(画像2枚目参照):
「ワークフローループトリガー」の値を一旦クリアします。
アクション2:遅延:
5分間などの短い遅延を挟みます(処理の安定のため)。
アクション3:遅延(画像3枚目参照):
「00:00 JST」まで遅延させます。これで翌日まで待機状態になります。
アクション4:レコードを編集:
「ワークフロールドープトリガー」に「True」を設定します。
「今日」のプロパティが毎日自動更新される仕組みが整ったら、次はいよいよ年齢を算出する計算プロパティの作成です。
HubSpotのカスタム式では、日付プロパティ同士の引き算の結果は「ミリ秒」で返されます。そのため、正確な年齢(整数)を出すには以下の式を使用します。
設定画面(画像参照)にて、以下の通り入力してください。
プロパティタイプ:カスタム式
出力タイプ:数値
数値の書式:書式付きの数値
計算式:round\_down( ( [今日] - [生年月日] ) / 31557600000, 0 )
ミリ秒から年への変換:1年は 365.25 日(うるう年考慮)であり、これをミリ秒に換算すると 31,557,600,000 になります。この数値で割ることで、経過した「年数」が算出されます。
round_down関数の使用:計算結果は小数点を含む数値になりますが、年齢は「満年齢」で表記するのが一般的です。round\_down (切り捨て)を使用し、第2引数を 0にすることで、誕生日を迎えるまではカウントアップされない正確な年齢が表示されます。
一度このループ構造を作ってしまえば、HubSpotがあなたの代わりに毎日「今日」を更新し続けてくれます。
「データが古くて分析に使えない」という悩みから解放され、より精度の高いセグメンテーションやCRM運用が可能になります。ぜひ自社のアカウントで設定してみてください。