カスタムコードアクションは、ワークフロー内で、JavaScript(Node.js)や一部環境では Python(ベータ)を実行できるアクションです。
Data/Operations Hub Professional または Enterprise で利用可能な「プログラマブルオートメーション」の一部です。
例えば次のようなことができます。
活用目的
- 標準アクションでは足りない複雑なデータ処理をしたいとき
- 複数のプロパティーから独自のスコアを計算する
- 文字列を細かく分解・結合して独自フォーマットに整形する
- 配列・オブジェクトをループ処理して集計値を出す
など、HubSpot標準の「レコードを編集」「データを書式設定」だけでは実現しづらい処理を、JavaScript(Node.js)や一部環境でのPython で自由に書けるのがカスタムコードアクションです。
- ワークフローから外部システムやAPIと直接連携したいとき
- ワークフロー内のイベントをきっかけに、自社システムのREST APIにデータをPOSTする
- 外部サービスから情報を取得して、その内容に応じてHubSpot側のプロパティーや分岐を変える
- Webhookトリガーで受け取ったJSONをコードで整形し、別システム向けの形式に変換する
- 高度なビジネスロジックや条件分岐を実装したいとき
- 「この条件ならAを、別の条件ならBとCを同時に実行」といった複雑なif/elseロジック
リストや履歴データをループしながら、「最新の◯件だけを評価する」といった処理
日付・時刻の演算(タイムゾーン・営業日計算など)を細かく制御する
ワークフローの標準分岐だけでは表現が難しいロジックを、コード側で完結させて結果だけワークフローに返す用途でよく使われます。
- 受信したWebhookやカスタムイベントデータの「変換・検証」を行いたいとき
Webhookトリガーや外部イベントで受信したJSONは、そのままだとプロパティーに格納しづらい場合があります。以下のような、「受信データの整形・検証」を中間処理として行うのに、カスタムコードアクションが適しています。
- 文字列の日付を yyyy-MM-dd やUNIXタイムスタンプに変換してプロパティーに保存する
- 受信データをバリデーションし、想定外の値のときはフラグを立てる
設定項目
実際のUIでは複数のフィールドがありますが、設計レベルでは
「どのデータを入力に渡すか」→「そのデータで何の処理をするか(コード)」→「結果をどうワークフローに返すか」
の3点をきちんと決めて設定することが、カスタムコードアクションを正しく動かすための必須事項になります。
設定方法
-
画面上部メニューから [自動化] > [ワークフロー] をクリックする
-
既存のワークフローを開くか、[ワークフローを作成] から新規ワークフローを作成する
-
ワークフローエディターで、処理を追加したい位置の [+] アイコンをクリックする
-
左側パネルのアクション一覧から、[カスタムコード](Data/Operations Hub向けアクション)を選択する
- 言語を指定する
通常は JavaScript(Node.jsランタイム) を使用する
環境によっては Python(ベータ)も利用可能
- 入力(インプット)データを指定する
そのワークフローに登録されているレコード(コンタクト/会社/取引など)のプロパティーや、前段アクションの出力を「このコードに渡すパラメーター」として指定する
- コードを書く
エディター内に JavaScript を記述する
関数内で「入力」から値を取り、処理結果を callback あるいは return で返すイメージ(詳細は上記ドキュメントを参照)。
- 出力(アウトプット)を定義する
コードの実行結果として返した値に名前を付け、後続のアクション(「レコードを編集」「データを書式設定」など)で使えるようにする
- テストして保存する
サンプルレコードやテストデータで実行し、期待通りの出力になっているか確認してから [保存] する
参照元
HubSpot Developers|ワークフロー | カスタムコードアクション
HubSpot|自動化API | カスタムワークフローアクション
HubSpot|HubSpotでワークフローアクションを選択する方法