HubSpot内で選択形式プロパティーを日付形式にする方法
概要
toCのビジネスで同じオンラインセミナー・説明会を週に何度も開催されている場合、画像のように申し込みフォームで何日に参加するかを選択する項目があると思います。
そういった時、各参加日程に合わせてステップメールを配信するためには、日程ごとにワークフローを作成しなければいけない面倒な事態が発生します。
フォームの項目を選択式から変えることは難しいと思うので、解決策としては選択形式で入ってきた値を日付形式に書き換えて別のプロパティーに保存させることです。
こうすることで、参加日程ごとにワークフローを作成しなくても、共通の日付形式プロパティーを利用したワークフロー1つで自動化が完成します。今回説明するプロンプトは、Breezeのカスタムプロンプトで利用できる1例になります。
実際のプロンプト・出力の例

【要件】
ラジオボタン形式のプロパティーに入っている値を、日付形式プロパティーに転記したい。
【データ形式】
- 入力元:ラジオボタン形式プロパティー
- 値の形式:「YYYY年M月D日(曜日)HH:MM〜HH:MM」
- 実際の値の例:
- 「2025年8月30日(土)09:50〜13:30」
- 「2025年8月31日(日)09:50〜13:30」
- 「2025年9月2日(火)09:50〜13:30」
- 注意:日付や曜日は毎回異なる動的な値です
【処理内容】
2. 日付出力(output_time):
- テキストの値から「年月日」の部分のみを抽出(例:「2025年8月30日」)
- 曜日「(土)」、時刻「09:50〜13:30」は除外
- 日付を00:00:00のDateオブジェクトに変換
- タイムゾーンはJST(Asia/Tokyo)として処理
- Dateオブジェクトを.getTime()でUNIXタイムスタンプ(ミリ秒)に変換
- 変換したタイムスタンプをoutput_timeに保存
【重要】
- HubSpotの日付プロパティーはUNIXタイムスタンプ(ミリ秒)形式で保存する必要がある
- 日付形式プロパティーには時刻部分を含めず、00:00:00で設定すること
- JST(UTC+9)を考慮して正確に変換すること
プロンプト内の「重要」でに触れていますが、HubSpotの日付形式プロパティーはUNIXタイムスタンプ(ミリ秒)で保存する必要があります。

アクション出力のテストをしてもらえばわかると思いますが、プロパティーの値はUNIXで出ます。なので、日付が表示されない!と驚く必要はございません。実際に稼働したら、日付形式で入っていますので。
注意点と自分の失敗談
今回使用している「データエージェント:カスタムプロンプト」は、1回のアクションにつき、HubSpotクレジットを10消費します。
私は一回のアクションでなるべくアクション出力を完結させようと思い、上記のプロンプトにさらに「ラジオボタン形式からテキスト形式を出力」も合わせて行おうとしました。その結果、テスト配信では実行ステータスが成功よりもエラーになることも多く、本番でもタイムアウト(勝手にアクションが7日間遅延となる)してしまいました。
この7日の遅延というのは、データエージェントのアクションが正しく完了できなかった場合にシステム側で自動的に設定される「タイムアウト」のようで、未完了状態だと何度も同じリクエストを繰り返してしまい、それによってクレジットが過大に消費されることを防ぐ仕組みのようです。
複雑なプロンプトを実行することは、今のBreezeのカスタムプロンプトでは失敗のリスクが高いため、こういった処理は単発で行うようにしましょう。
