HubSpotのカスタムオブジェクト機能を使ってサブスクリプション契約情報を管理する
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
カスタムオブジェクトとは
HubSpotには「会社」「取引」「コンタクト」「製品」といったオブジェクトが存在していますが、これらと同列な独自のオブジェクトを用意することができます。
これをカスタムオブジェクトと呼びます。
カスタムオブジェクトを使うためには最初APIでの操作が必要になりますが、公式の説明記事をご覧いただくか、他にも検索すれば記事が引っかかると思いますので手順はそちらをご確認ください。
サブスクリプション契約情報をカスタムオブジェクトで管理してみる
今回はサブスクリプション契約情報を対象としますが、カスタムオブジェクトを活用する上でまず考えることは、何をカスタムオブジェクトで管理するかということになります。
管理したい情報
以下のサブスクリプション契約情報を管理するというシチュエーションを想定します。
・どの会社が購入したか
・何の製品を購入したか
・契約期間はいつからいつまでか
・何回製品を購入したか
・いくつ製品を購入したか
図っぽく表現すると以下のような感じです。
クリエーションライン株式会社
|- 製品A (★)
|- 2019/1/1-2019/12/31 EnterpriseEdition 10ライセンス(新規) (☆)
|- 2020/1/1-2020/12/31 EnterpriseEdition 10ライセンス(更新) (☆)
今回は★、☆でそれぞれカスタムオブジェクトを定義することにします。
★をサブスクリプション、☆をライセンスという項目でカスタムオブジェクトを定義します。
オブジェクト間の関連図
オブジェクトの関連図はこのようになっています。
オブジェクト間で関連付けを行うことによって、HubSpotのUI上右ペインにその情報が表示されるようになります。
参考までにこちらがLegacyDocになりますがHubSpotのER図です。
HubSpot UI
実際のHubSpotのUIでは以下のように表示されます。
会社
どの会社が何の製品のサブスクリプションを契約しているか見れます。
取引
その取引で何の製品のサブスクリプションを契約しているか見れます。
サブスクリプション
どの会社のサブスクリプションか、またサブスクリプションに含まれるライセンスを見れます。
ライセンス
ライセンスがどのサブスクリプションのものか、どの取引で購入されたものか見れます。
レポーティング
上記のUIにて、各オブジェクトに対して紐づいているサブスクリプションやライセンスを確認できました。
HubSpotのレポーティング機能を用いてグラフィカルに情報を表示することも出来ます。
担当が欲しい条件を満たすレポートを作り、週次定例や朝会などでこういったレポーティングを見ながら仕事内容を確認していけるといいのかなと思います。
いくつか例を紹介しましょう。
2つ紹介しますが、データはいずれも擬似的なものになります。
2021年12月中に契約終了(更新)を迎えるサブスクリプション契約一覧
会社別に情報を見る例です。
2021年11月25日~2022年11月30日の間に12月中に契約終了(更新)を迎えるサブスクリプション契約一覧
製品別に情報を見る例です。
いずれの場合も棒グラフ内をクリックすると取引の一覧を確認することが出来ます。
こちらの例をご覧になって分かるとおり、カスタムオブジェクトもレポートの条件に含めることが出来ます。
HubSpotのレポーティング機能は最初ちょっと身構えるかもしれませんが、エクセルやスプレッドシートでグラフを作成したりピボットテーブルを使ったことがある人ならスムーズに使えるかと思いますので、いろいろなレポートを作ってみると良いと思います。
少し中身の話
ここまで出来上がったものを中心に見ていきましたが、少し中身の話を触れていきたいと思います。
カスタムオブジェクトのスキーマ(≒プロパティ)
いずれも「インポート日」というプロパティがありますが、既存で別システムで管理してた情報を一括でインポートする際の日付情報を残すフィールドなので、特に必要ではありません。
サブスクリプション
赤枠部分が独自に追加したプロパティになります。
大体見ての通りですが、一部ピックアップして補足します。
サブスクリプション名
先ほどの例では「クリエーションライン株式会社(GitLab):2019-01-01」となりましたが、「会社名(製品名):サブスクリプション開始日」としています。
会社名とサブスクリプション開始日を入れているのは、UI上で関連付けを追加したい場合に絞り込みやすくするためです。
あまり綺麗な形ではないのですが上記を考えるとこうするしかないのかなと思っていますが、何か良いアイデアがあれば教えてほしいです...
最新の契約終了日
ライセンスの契約が更新される度に最終の契約終了日が延長されるので、日付を延長したものを入れています。
ライセンス
ライセンスのプロパティは項目どおりなので説明は割愛します。
サブスクリプション、ライセンスのカスタムオブジェクトを作るタイミング
サブスクリプション契約が成立したらすみやかに作るのが望ましいかなと思います。
個別のサブスクリプションの契約状況を取引で管理している場合は、取引のステージとして「契約成立」のようなステージを用意しておき、そこに取引を移動したら作るのがベストでしょう。
サブスクリプション、ライセンスを作るために必要な情報
必要な情報はすべて取引から辿ることが出来ます。
- どの会社が → 取引に紐づいている会社
- 何の製品を → 取引に紐づいている商品項目
- どの期間 → 取引に紐づいている商品項目
- いくつ → 取引に紐づいている商品項目
自動でカスタムオブジェクトを生成する
作成するタイミングも明確になり、必要な情報がどこにあるかもこれで明確になりました。
手動で毎回カスタムオブジェクトを作っていたら大変なので、自動で生成するようにしておくのが望ましいでしょう。
こんなときはワークフローの出番になります。
困ったときのワークフロー
ワークフローの中でもカスタムオブジェクトを利用することが出来ます。
カスタムオブジェクトをトリガとすることも出来ますし、他のトリガのワークフローの中でカスタムオブジェクトを作成する、ということもできます。
ただ、この記事執筆時点では見積登録トリガの場合はレコード作成アクションの中でカスタムオブジェクトを選択することはできません。
取引登録トリガの場合はこのような形でカスタムオブジェクトを作成することが出来ます。
また、レコード作成においてカスタムオブジェクトのプロパティを設定することが出来ますが、トークン値で利用できるものは限られています。
今回のケースのようにライセンスに設定する契約期間は商品項目から情報を取得したい場合や、サブスクリプションの最新の契約終了日のように動的に値を判断、設定する必要がある場合は、
用意されているアクションでは機能的に足りていない形になるかと思います。
APIを使おう
こういったケースに対応する方法として、HubSpotにはカスタムオブジェクトを操作するAPIも用意されているので、そちらを利用しWebHookリクエストアクションから呼び出すがあります。
今回社内に取り入れる仕組みもAPIを利用して独自に実装を行う形をとりました。
HubSpot APIおよびWebHookリクエストに関してはこちらの記事でも少し触れていますのでご覧ください。
カスタムオブジェクトのAPIについてはこちらから情報を確認できますし、実際にcallすることも出来ます。
1点tipsというほどではないですが、カスタムオブジェクトはObjectTypeIDを指定し該当のカスタムオブジェクトの操作を行いますが、HubSpotUI上はURLに含まれているのでObjectTypeIDを忘れた場合はそちらを見ても良いでしょう。
赤枠で囲った部分で「2-XXXXXX」の文字列がObjectTypeIDになります。
実際の業務にカスタムオブジェクトを適用するにあたって、少し複雑なことをしたい場合はAPIでの実装が必要になってくるかなと思います。
是非これを機に一緒にHubSpot APIの世界に飛び込みましょう。
[:]