ROBOT PAYMENT TECH-BLOG

株式会社ROBOT PAYMENTのテックブログです

Salesforce appexchangeの稼働分析にApp Analyticsを使ってみた

はじめまして、こんにちは。 請求管理ロボ for Salesforceのプロダクトマネージャーを担当しております、立石と申します。

Salesforce界隈でコンサルタント/プリセールス等、複数のお仕事を経て、現在は自社製品をSalesforceエコシステムに紹介する/たくさんファンになってもらうための活動を主務としております。

本日は、App Analyticsのご紹介をいたします。 まだカジュアルな実践情報があまりないのですが、とてもパワフルなツールなので、ご一読いただき是非利用チャレンジしていただければと思います。

※ もし手順だけご興味ある方は、【3.App Analyticsのセットアップ】だけ読んでいただければと思います。

0.この記事は

この記事は、
- 「Salesforce appexchange開発者/カスタマーサクセス」向けに
- 「appexchange稼働ログ取得ツール」の紹介を行う
記事です。

1.ことのおこり

#1 2023年夏 「見積書発行機能のインボイス対応、いる?」

請求管理ロボ for Salesforceは、その名の通り請求書発行システムです。 ここ一年の請求書関連のほっとトピックといえば、そう、インボイス制度です。 昨年は、弊社もその対応で大わらわでした。

そうした中で一つ、議論になったことがあります

「見積書機能のインボイス対応、要る?」

実は、請求管理ロボ for Salesforceには、見積書発行機能があります(!) Salesforce.comご利用各社のありがちなニーズに、「見積書を作成したのち、請求書に転用したい」というものがあります。 こちらをカバーするために作られた、” for Salesforce”独自機能です!

ですが・・・

色々な制約により、残念ながら利用企業様がいない、と言われていました。 制度開始までの期間が厳しい中、本丸である請求書以外にインボイス対応が必要なのか?どうせほぼ使われていないのに・・・? 議論の末、「やらない。ニーズがあればやる」として、昨年10月の制度開始を迎えました。

#2 2024年冬「見積書発行機能、そもそも使われてる?」

制度開始から3カ月、見積書発行機能に関するお問合せはありませんでした。我々は賭けに勝ったのです! となると。。。当然気になるのは、「この機能自体要る?」ということです。

しかし。 ” for Salesforce”独自機能であるがゆえに、請求管理ロボのシステム基盤では利用実績が取れません。 さてさてどうやって判断すればいいのか。。。

というのを議論の日々の中で、立石が日課のTrailheadを進めていたところ、以下のモジュールに出会います。

AppExchange パートナーインテリジェンスの基本

ここにはこうあります。

AppExchange App Analytics とは? Robert は潜在顧客が AppExchange リスティングをどのように操作しているかに関するデータを取得しました。次に Robert が必要としているのは、登録者が Cloudy Health ソリューションとそのコンテンツをどのように利用しているかに関するデータです。

つまり、弊社なら「請求管理ロボ for Salesforceを使っているお客様組織の状態ログが取れる」ということですね! まさに今必要なものそのものじゃん!ということで試してみることにしました。

2.App Analyticsとは

具体的なセットアップ手順に行く前に、まずは、App Analyticsとは何かをざっと説明させてください。

#1 App Analyticsの概要

簡単にいうとApp Analyticsは、 ”appexchangeパートナー向け”の”顧客SF組織内の製品利用状況を取得できるツール” です。

appexchangeパートナーの自社SFにセットアップすることで、”顧客SF組織の利用状況ログをリクエストする口”ができます。 - リクエスト結果は、csv形式ログで返却されます。 - 結果のcsv形式ログは、自社SFのデータストレージに格納されません。 自社SFに戻ってくるのはcsvのダウンロードリンクのみです。

これなら、自社のSFデータを汚す心配はありませんね。気楽にリクエストしていきましょう! ※ 逆に、定期でログ取りをしたり、DB格納して分析するためには一工夫必要となります。

#2 App Analyticsで取得できるデータ

App Analytics経由では、以下のデータが取得できます。

  1. 登録者のスナップショット・・・ appexchange製品に含まれるカスタムオブジェクトの指定日のレコード件数
  2. パッケージ利用状況概要 ・・・ appexchange製品に含まれる月別ユーザー別エンティティ別のアクティビティ件数統計
  3. パッケージ利用状況ログ ・・・ appexchange製品に含まれる時系列のトランザクションデータ

それぞれ細かい内容を見ていきましょう ※ 合わせてAppExchange App Analytics (AppExchange アプリケーションの Analytics)をご覧ください。

① 登録者のスナップショット

指定日のカスタムオブジェクトのレコード件数が取得できます。

登録者のスナップショット

請求管理ロボ for Salesforceの場合は、 「2024年2月1日~2月10日間の、請求書登録件数推移」 のようなデータが分かります。

② パッケージ利用状況概要

指定一か月の間の、あるユーザーのカスタムオブジェクトのCRUD回数や、APEXクラス&メソッドの呼び出し回数のログが取得できます。 パッケージ利用状況概要

請求管理ロボ for Salesforceの場合は、 「2024年2月の、請求書オブジェクトのRead件数」・「2024年2月の、請求書送付処理稼働回数」 のようなデータが分かります。

登録者のスナップショットは、「実際のオブジェクト件数」が返ってくるのに対して、 こちらは、「Insert件数」などが分かります。 登録者のスナップショットで、月初月末の件数の差分を計算したものと、 こちらのInsert件数・Delete件数の差分比較をしたものが等しくなるわけですね。

月次サマリなので、先月以前の分しか取れない点は注意が必要です。

③ パッケージ利用状況ログ

指定期間の時系列ログが取れます。 リクエストIDや、ユーザーID、セッションIDなどが付帯しているので、時系列の横ぐしをさしてログが見られるところはポイントです。 APEX呼び出しや、DML操作、Query操作がログされています。

パッケージ利用状況ログ

請求管理ロボ for Salesforceの場合は、 「2024年2月5日10時~11時の間のユーザーA氏の操作」が時系列で分かります。 ※ ユーザー単位でIDが振ってありますが、IDはハッシュされており誰のログかはわかりません。 ※ サンプルスクリーンショットは、APEXスケジュールバッチで、請求書明細を取得した場合の一連です。   マスクしているcustom_entityには、オブジェクトAPI参照名が入っています。

#3 紛らわしいこと

似たような名前の製品がたくさんあるので立石は大混乱しました。 今後読み進めるにあたって、以下の点を心にとめておいてください。

  • App Analyticsは、それ自体がappexchangeとして提供されています。 つまり、「App Analyticsという名前の、appexchangeパートナー向けの、appexchange製品があります」ということです。 ややこしいですね!
  • App Analyticsの紹介資料では、「App Analyticsのログは、CRM Analyticsに取り込んで分析することをお勧めします」とあります。 ご存じの通り、CRM AnalyticsはSFDC社のBI製品です。「利用ログはBIに取り込んで分析してね」ということです。 ややこしいですね!!

3.App Analyticsのセットアップ

では、実際に、App Analyticsのセットアップを行っていきましょう。

セットアップ手順の概要

App Analyticsのセットアップは、大きく以下の2ステップです。

  1. appexchangeパートナーのLMOにApp Analyticsをインストールする。
  2. appexchangeパートナーのパッケージ化組織で管理パッケージに対して、App Analyticsを有効化する。

LMOとパッケージ化組織は異なることが多いかと思います。作業の実施先が異なることをご注意ください。


手順①:LMOにApp Analyticsをインストールする。

あ)appexchangeのインストール

まずは、appexchange【App Analytics】を取得しましょう。

  • グローバルの、appexchangeサイトで、App Analyticsのページを開きます。
  • 【Get It Now】ボタンで、Salesforce組織へのインストールを行います。
    • インストール先は、LMOです。appexchangeパートナー各社の本番SF組織であるケースが多いだろうと思います。
    • インストール先プロファイルは、システム管理者に絞って大丈夫です。この後、権限セットを作成します。

い)権限セットの作成

appexchange【App Analytics】には、権限セット【App Analytics】が含まれているのですが、大変残念なことに利用するための権限に不足があります。 このため、権限セット【App Analytics】をコピーして権限セットを自作します。

これをコピって・・・

コピー元権限セット【App Analytics】

こんな感じ・・・ コピー後権限セット【App Analytics(拡張)】

追加する権限はこちら・・・

オブジェクト【アプリケーション分析クエリ要求(AppAnalyticsQueryRequest)】に、 【参照】・【作成】・【編集】・【削除】・【すべて表示】・【すべて変更】 をすべて付与します。

オブジェクトへの権限追加

注意!

上記オブジェクトむけにLightning ページ タブが用意されています。 ほぼ同名で大変紛らわしいので、作業時は勘違いしないように注意してください。

  • オブジェクト:アプリケーション分析クエリ要求(AppAnalyticsQueryRequest)
  • カスタムタブ:App Analytics Query Requests

カスタムタブ:App Analytics Query Requests

う)権限セットの割り当て

作成したカスタム権限セットを、利用ユーザーに割り当てます。


手順②:パッケージ化組織で管理パッケージに対して、App Analyticsを有効化する。

ここからは、LMOではなく、パッケージ化組織で作業します。 ※ と書きましたが、パッケージが第一世代か、第二世代かで作業手順が異なります。   ここで書いているのは第一世代の例です。詳細は下記をご参照ください。   Salesforce Winter '24 リリースノート:第一世代 (1GP) および第二世代 (2GP) パッケージでの AppExchange App Analytics の自己有効化 ※ 見ての通り、直近でセルフ有効化できるようになりました。24年3月時点では、Trailhead上、「ケース起票が必要」と記載されています。ご注意ください。

  1. パッケージ化組織の【設定】>【パッケージマネージャー】から、App Analyticsを有効化したいパッケージを選択
  2. 【編集】メニューを開き、【AppexchangeApp Analytics】を有効化します。

App Analyticsを有効化

4.App Analyticsの仕組み

#1.ログ収集の仕組み

セットアップが終わったところで、仕組みを理解しておきましょう。 簡単にいうと・・・ - 顧客組織から、SFDC社のデータレイクにログ収集している - パートナーLMOから、SFDC社データレイクにログ出力リクエストを投げる - SFDC社データレイクからパートナーLMOにリクエストが返ってくる

という仕組みになっているとのことです。 このため、実際にログを取得できるようになるまでタイムラグがあります。 詳細はこちらをご参照ください:ISVforce ガイド>AppExchange の App Analytics のデータフロー

詳しいアーキテクチャ図などは、SFJ社ご担当にリクエストしてください。

#2.パッケージ内容物

次に、先ほどインストールしたappexchange【App Analytics】の内容物を見ていきましょう。 パッケージには以下のものが含まれています。 - 権限セット - ライトニングアプリケーション - 専用のリクエスト登録画面(LWC) - APEX画面コントローラー

App Analyticsを構成する重要パーツである、オブジェクト【アプリケーション分析クエリ要求(AppAnalyticsQueryRequest)】は、appexchangeパッケージ物件でなく、オブジェクトマネージャーに表示されない標準オブジェクトのようです。 - カスタム項目の設定もできず、ページレイアウト編集もできません。 - APIでのリクエストや、フローでの自動化は問題なく実施できます。

5.App Analyticsの利用方法

利用手順の概要

ではセットアップが終わり、ログ収集処理が動くだけの時間がたちました。 いよいよ実際にリクエストしていきましょう。

アプリケーション【App Analytics】>タブ【App Analytics Query Requests】を開く。

App Analytics Query Requests

【Submit New Request】ボタンを押す。

リクエストを登録しましょう 指定するのは以下の4種です - 取得ログ種別 - リクエスト期間 - パッケージ - 取得対象組織

リクエスト登録

以下、補足です - 上記でマスクしている、Package部分は、LMO内の、sfLmaPackageオブジェクトで指定しているパッケージ名が表示されます。 - 【Subscriber Orgs】では、OrgsIdのほか、組織名でも検索できます。 - 組織名で検索する際は、LMO内の、sfLmaLicenseオブジェクト内でAccount要ひもづけ。 ライセンスオブジェクト - 上記リクエスト登録画面は、使わなくても大丈夫です。例えばデータローダーで直接データロードしても動作します。

リクエストをDLして分析

リクエスト結果は、すぐに返ってきます。URLからDLして分析しましょう。

リクエスト結果

6.まとめ

所感

取得できるログは、だいぶ有用です。 - ISVの場合、自社SaaSとの接続用アプリである場合が多いと思います。 そうした場合、”SF側でどう動作したかのログがあとからとれる”は、カスタマーサポートでかなり強力な武器になります。 - OEMの場合、シンプルに”この機能は使われているのか”をトレースするのに有用でしょう。カスタマーサクセス活動や、プロダクト成果検証に利用できると思います。

ただ、以下の点は要手当です。

  1. ログの保持期間が短い
  2. データリクエストの自動化は、今のところセルフインプリが必要
  3. 特に、パッケージ利用状況ログは大量ボリュームになる。分析用にRDBが欲しくなる。

上記2、3に対する手当として、さらなる拡張appexchange【Partner Intelligence Starter Pack】が提供されている様です。

こちらは現在検証中ですが、 - リクエストの自動化 - AWS S3に自動格納する仕掛け

が含まれている様です。 ※ 別途CRM Analyticsのデータ処理レシピも公開されているので、その手順通りやれば、CRM Analyticsで分析できる、、、はず。

つまづきポイントのまとめ

ここまでですでに記載したことも含めてつまづいたポイントをまとめておきます。 作業実施時に戸惑ったら、ここをご一読ください。

  • 名前がややこしい:App Analytics/appexchange/CRM Analytics、と似たような名称がたくさんある。混同注意。
    • appexchange【App Analytics】は、appexchange製品の利用企業のログを収集する仕組み
    • CRM Analyticsは、BI製品。完全に別物。
  • 関連appexchangeが二つある
  • 機能の有効化について
    • 【App Analytics】有効化作業は、パッケージ毎に実施。自己有効化可能
    • 【Partner Intelligence Starter Pack】の方でも、機能有効化作業が必要。
  • 権限セットの権限不足:appexchangeバンドルの権限セット上、必要なオブジェクト権限が不足している
  • 名前のよく似たコンポーネントが二つある。
    • オブジェクト:アプリケーション分析クエリ要求(AppAnalyticsQueryRequest)
    • カスタムタブ:App Analytics Query Requests

謝辞と関連リンク

本記事執筆および本記事の作業実施時、co-meeting社様・TeamSpirit社様の技術ブログに大いに助けられました。 この場を借りてお礼申し上げます。

関連リンクをまとめておきます。ご参考にされてください。

公式ヘルプ類 - AppExchange パートナーインテリジェンスの基本 - AppExchange App Analytics (AppExchange アプリケーションの Analytics) - Salesforce Winter '24 リリースノート:第一世代 (1GP) および第二世代 (2GP) パッケージでの AppExchange App Analytics の自己有効化 - ISVforce ガイド>AppExchange の App Analytics のデータフロー - Partner Intelligence Starter Packセットアップガイド

appexchangeパッケージ配布URL - 【App Analytics】 - 【Partner Intelligence Starter Pack】

先行企業さまの技術ブログ - co-meeting社様:AppExchangeアプリの分析ツール「AppExchange App Analytics」触ってみた - TeamSpirit 社様:Partner Intelligence Starter Packのはじめかた

そのた SFDC社パートナーコミュニティでも、紹介資料などが配布されています。 クローズドコミュニティなので、ここではURLは張らずに置きます。 貴社SFJご担当にリクエストしていただければと存じます。

  • 紹介資料【AppExchange App Analytics紹介】2020年11月 27日付
  • Quip記事【AppExchange 「App Analytics 」活用ガイド】

終わりに

Salesforce.comのバージョンアップは、我々appexchangeパートナー向けのものもコツコツ実施されているんだ、というのをしみじみと実感しました。 appexchangeパートナー関連機能は、恩恵を受ける人が少ない分、実践情報が少ないと感じますが、どうせたくさん投資しているのですから、がっつりプラットフォーム機能を使い倒したいものですね。

本記事が皆さんのSalesforceライフの一助となれば幸いです! それでは、また!

で、結局見積機能は利用されていたの?

本記事の執筆で忙しかったのでまだ調べていません(笑 これが公開されたら調べます。



We are hiring!!

ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!

speakerdeck.com
www.robotpayment.co.jp