HubSpotワークフローのカスタムアクションの「入力」と「出力」について

HubSpotを使っていると、ワークフローのデフォルトアクションではちょっと足りないなって思うこと ありませんか?
「便利!!いろいろできることが広がりそう🥺」と意気込んで 、カスタムコードに挑戦してみたものの、
実際に使ってみると名前や変数を何度も定義する必要があって、「何がどうなってるの?」って私は混乱しました😂

ようやく 手を動かして触ってみたたとろ なんとなく理解できた気がするので、
今日は 私なりの「入力(input)」 と「出力(output)」の理解を、ゆるっとシェアしたいと思います。

私なりの理解
カスタムコードの前後に 入出力に関する設定をする箇所があって、JavaScript/Pythonコードの中でも定義しなきゃいけないように見えるんですが、正直 なんで入力も出力も2ステップあるのか理解してなかったので、正しいか自信がありませんでした。自分の中で消化できないと 何かに書いてあることしかできないので、今回 検証する時間をとってみました。
検証プロセスについてはYouTubeにアップしましたで、よかったらこちらからご確認ください😊


私なりの理解をざっくりまとめると、こんな感じです:

  1. 「コードに含めるプロパティー」欄を設定することで、前のアクションから値を引っ張ってくる
    • まず、これは準備の段階ですね。
      カスタムコードの中で使用するために、CRMレコードのプロパティーや前のアクションから値を取得します。
      この欄を設定することで、CRM APIを省略して 値の取得ができます。

  2. コード内の変数に渡す
    • 次に、その入力値をJavaScriptやPythonのコード内で使えるように、変数で名前をつけます。
    • 具体的には event.inputFields['コードに含めるプロパティー']` という形で  「コードに含めるプロパティー」で引っ張っていた値を 変数に割り当てます。これにより、データを操作する準備が完了しました。
  3. 結果として出来上がった値に 出力用の名前を付ける
    • データを操作したら、その結果で発生した値に名前をつけます。
      outputFields:の中で、「出力する際の名前:コードの中で利用した変数」を設定することで、「コードの中の、どの値を次のアクションに使用するか」をシステムが理解します。
    • つまり、これは他のステップで再利用するためのラベル付けみたいなと思います。
  4. 出力したそれぞれのデータの種類を指定する。
    • 出力するデータがどんなタイプなのかを指定します。
    • 例えば、数値 1691359627 がタイムスタンプなのか、ただの数値なのかを指定してあげないと
      次のアクションでどう扱うかが変わる気がします。
    • ちなみに、この型を指定しただけでは、(プロパティの内部名と出力フィールド名が同じでも)
      自動的にCRMに上書きされるわけではないので気をつけてくださいね!
      CRMに値を渡したい場合は、後で「プロパティ値をコピー」アクションを別途で設定する必要があります。

補足:

ちなみに、②変数に値を受け渡す際や ③出力する際に 値を追加したり加工することも可能です。動画の後半では、失敗例・成功例も説明しているので、よかったらお時間のある際に見てください!

10-5

undefined(定義されてません)のエラーが出てしまった時は
入力と出力の何かが欠けてしまっていないか、確認してみてくださいね!

今回は、私なりに感じた「こういうことなのか〜」っていう考えをシェアしてみました。
同じような疑問でモヤモヤしてる方のヒントになれますように⭐️

*ブログ記載時(2024年8月25日)にテストした際の情報となります。