複数の工程・日程をHubSpotの日付プロパティで管理している場合、一つひとつの日付を手入力するのは骨が折れる作業です。特に、プロジェクト全体が数日後ろ倒しになった際、関連するすべての日付を一つずつ修正するのは、入力ミスを招くだけでなく、運用上の大きな負担となります。
本記事では、HubSpotのカスタムコードアクションを利用し、ズラしたい日数分だけ、複数の日付を一括でスライドさせる効率的な管理手法を解説します。
現場の課題:工程変更に伴う「日付修正の連鎖」
進捗管理において、日付プロパティが大量にあると以下のような問題が発生します。
- 更新作業の負担: 1つの納期がズレた際、それ以降の5〜10個、もしくはそれ以上の工程プロパティをすべて手動で計算し直さなければならない。
- 調整の柔軟性の欠如: 「とりあえず全体を1週間ずらしたい」という要望に対し、一括で対応する標準機能がない。
- ヒューマンエラー: カレンダーを見ながら計算して入力する過程で、祝日の数え間違いや入力ミスが起きやすい。
「まずは全体を一括でスライドさせ、細かい微調整だけを手作業で行う」という運用が理想的です。
実現イメージ:調整用プロパティによる一括スライド
この仕組みでは、専用の「日数調整用」の数値プロパティをトリガーにします。
- 入力: 「日付調整用(数値)」プロパティに「10」と入力する。
- 実行: ワークフローが起動し、カスタムコードが現在の「クローズ日」に10日を加算した値を計算。
- 反映: 計算結果を自動的に「クローズ日」に上書きする。
この仕組みを複数の日付プロパティに応用することで、1つの数値を変更するだけで関連する全日程を同期させることが可能になります。
設定方法:カスタムコードの実装手順
Data HubのProfessionalプランまたはEnterpriseプランで利用可能なカスタムコードアクションを使用します。
ステップ1:プロパティの準備
今回はデモとして、以下の2つのプロパティを事前に作成しておきます。
- 日付調整用(
date_adjustment): 数値タイプ。プラスやマイナスの数値を入力する用。
- 対象の日付プロパティ(例:
closedate): 日付タイプ。更新したい項目。
ステップ2:ワークフローの設定
- トリガー: 「日付調整用」プロパティが更新されたとき。
- アクション: 「カスタムコード」を選択。
- データ入力:
closedate と date_adjustment の2つをコード内で使用できるように選択します。
ステップ3:コードの記述
以下のコードをエディタに貼り付けます。このコードは、入力された日数分だけ日付を増減させ、HubSpotが受け取れるタイムスタンプ形式で出力するものです。
|
exports.main = async (event, callback) => { // 1. 入力値の取得 const closeDateStr = event.inputFields['closedate']; const adjustmentDays = parseInt(event.inputFields['date_adjustment']); // 入力チェック if (!closeDateStr || isNaN(adjustmentDays)) { console.log("必要なデータが不足しているため処理を終了します。"); return; } // 2. 日付の計算 const currentCloseDate = new Date(Number(closeDateStr)); // 日付を加算(負の数の場合は減算) currentCloseDate.setDate(currentCloseDate.getDate() + adjustmentDays); // 3. HubSpotが受け取れる形式(UTC 00:00:00のミリ秒)に変換 currentCloseDate.setUTCHours(0, 0, 0, 0); const newTimestamp = currentCloseDate.getTime(); console.log(`調整前: ${new Date(Number(closeDateStr)).toISOString()}`); console.log(`調整後: ${currentCloseDate.toISOString()}`); // 4. 結果をワークフローの出力として返す callback({ outputFields: { calculated_date: newTimestamp } }); };
|
ステップ4:出力結果の反映
カスタムコードアクションの後に「プロパティ値をコピー」または「プロパティ値を設定」アクションを追加し、コードから出力された calculated_date を元のプロパティ(クローズ日など)に書き戻します。
全体像は下記のイメージ。
運用のポイント
- マイナス調整も可能: 「-5」と入力すれば、日程を5日前倒しにできます。
- リセットの運用: 計算が終わった後、ワークフローの最後で「日付調整用」プロパティを空(null)にするステップを入れると、次回の調整がスムーズになります。
注意点: > 複数の日付プロパティを一括でずらす場合は、コード内の outputFields に複数の変数を定義し、それぞれのアクションでプロパティを更新するように構成してください。