HubSpotでワークフローを構築していると、かゆいところに手が届かずに歯がゆい思いをすることがあります。その代表例の一つが「特定時間帯の通知コントロール」です。
今回は、HubSpotの実務運用でよく直面する「時間外に溜まったトリガーが翌朝一気に発動してしまう問題」と、その具体的な解決策について解説します。
例えば、「営業時間内(10:00~19:00)に新規コンタクトが登録された場合のみ、営業担当者にSlackやメールで通知を送りたい」というケースを考えてみましょう。
通常であれば、ワークフローの「設定」タブから「特定の日時にのみアクションを実行」をオンにし、月曜から金曜の10:00~19:00を指定すればよいと考えがちです。
しかし、この設定には大きな落とし穴があります。
この設定は、「指定した時間外にトリガーされたレコードを破棄する」のではなく、「指定した時間が来るまで一時停止させる」という仕様になっています。
つまり、19:31から翌朝の9:59までに発生した新規コンタクトはすべて待機状態となり、翌朝10:00になった瞬間に一気にワークフローが進行します。結果として、営業担当者の元へ大量の通知が同時に押し寄せ、本来の目的である「リアルタイムな対応」の妨げになってしまいます。
私たちが実現したいのは、翌朝の一斉通知を防ぐことです。
・0:00~19:00にコンタクトが生成された場合: すぐに通知を送る
・19:01~翌9:59にコンタクトが生成された場合: 通知を送らない(そのまま処理を終了させる)
HubSpotの標準設定だけではカバーできないこの挙動は、「計算プロパティ」と「2つのワークフローの連携」を組み合わせることで実現可能です。
この仕組みは、以下の3つのステップで構築します。
まずは、コンタクトが生成されてから現在までにどれくらいの時間が経過しているかを判定するための「計算プロパティ」を作成します。
設定画面の「プロパティ」から、コンタクトプロパティを新規作成します。
フィールドタイプで「計算」を選択します。
計算タイプで「2つの値の間の時間」を選択します。
開始値を「作成日(Create Date)」、終了値を「今日の日付(Today's Date)」に設定します。
これで、「コンタクトが生成されてから何分経過したか」を数値として取得できるようになります。
次に、実際に通知を送る役割を持つワークフローを作成します。
登録トリガーは設定せず、手動または他のワークフローからの登録専用にします。
最初のアクションとして「if/then分岐」を追加します。分岐の条件を、ステップ1で作成した計算プロパティが「1(分)以下」であることに設定します。
条件を満たす場合(YESの分岐): 営業への通知アクション(Slack通知や内部メール送信など)を設定します。
条件を満たさない場合(NOの分岐): 何もアクションを設定せず、そのまま終了とします。
最後に、入り口となるワークフローを作成します。
登録トリガーを「コンタクトが生成されたとき」などの条件に設定します。
ワークフローの「設定」タブを開き、「特定の日時にのみアクションを実行」をオンにして、対象の時間帯(例:10:00~19:00)を指定します。
アクションとして「別のワークフローに登録」を選択し、ステップ2で作成した「ワークフローB」を指定します。
この設定を施すことで、コンタクトの生成時間によって以下のように処理が分岐します。
14:00(時間内)にコンタクトが生成された場合
ワークフローAが即座に実行され、ワークフローBへ渡されます。この時点で生成から1分以内のため、ワークフローBの分岐で「YES」となり通知が飛びます。
22:00(時間外)にコンタクトが生成された場合
ワークフローAに登録されますが、「特定の日時にのみアクションを実行」の設定により、翌朝10:00までワークフローA内で一時停止します。
翌朝10:00になるとワークフローBへ渡されますが、この時点でコンタクト生成からすでに12時間が経過しているため、ワークフローBの分岐では「NO(1分以下ではない)」と判定され、通知は送られません。
このように「時間差」を判定基準に組み込むことで、HubSpotの仕様をうまくハックし、理想通りの通知コントロールが可能になります。ぜひ自社の運用に合わせて設定してみてください。