Trialforceの概要と使い方
(修正:2023/08/31)
AppExchange上のトライアル組織にインストールするボタンの位置が間違っていたので画像と説明を修正しました。
こんにちは。木村です。
今回はAppExchangeアプリのトライアル提供法の一つであるTrialforceの概要と使い方をまとめました。想定読者はAppExchangeアプリ開発・運用に関わる方です。
Trialforceとは
AppExchangeアプリのトライアル提供方法は以下の3つの方法があり、Trialforceはその一つです。
インストール可能トライアル: 顧客自身の組織にアプリをインストールしてトライアルします。
機能制限トライアル: アプリとデータを設定したただ一つのトライアル用組織を顧客に提供します。
Trialforce: トライアル申し込みごとにアプリとデータを設定済みの新しい組織を自動作成して提供します。
それぞれ下記の比較表のような特徴があり、Trialforceが最も柔軟なトライアル環境を提供できますが、最も設定が大変です。
この特徴から、ISVアプリではインストール可能トライアル、OEMアプリではTrialforceを利用するのが一般的です。ISVアプリはSalesforceユーザ向けのアプリなので、既に顧客が組織を持っているのでインストール可能トライアルでもあまり困りません。対して、OEMアプリはSalesforceユーザ以外にも販売するので、組織から提供可能なTrialforceを利用するということです。
実際設定するとAppExchangeリストの「今すぐ入手」ボタンを押したときにのダイアログに以下のように「トライアル組織にインストール」というボタンが表示されるようになります。
日本のAppExchangeでTrialforceを設定しているアプリを探したのですが、この「CORRESSA」さん一つしか見つけられませんでした…
おそらく自社サイトからトライアル申し込み可能にしているOEMアプリは多いと思うのですが、OEMアプリだとAppExchangeサイトで申し込み可能にするメリットはあまり感じないのだと思います。そして、前述のようにISVアプリはインストール可能トライアルでよいので、AppExchange上のTrialforceはあまり利用されていないと推測されます。
Trialforceによるトライアル組織提供の流れ
登場組織/機能が多くてややこしいです。まず簡単に流れを説明します。用語は後で説明するので一旦読み流してください。
パートナービジネス組織(PBO)またはTrialforce管理組織(TMO)を準備します。
PBO or TMOでTrialforceソース組織(TSO)を作成します。
TSOにアプリのインストール/デモデータ作成などを行い、トライアルできるような環境にします。
TSOでTrialforceテンプレートを作成します。
PBO or TMOで4.のテンプレートを指定したSignupRequestレコードを作成します。
無料トライアル組織が自動で作成されます。
これらの内容を図示すると下図(AppExchangeの「きほんのき」販売編からの引用)のようになります。
Trialforceの登場組織/機能の紹介
前節に出てきた様々な組織/機能を説明します。用語がわからなくなったらこの節に戻ってきてください。
TMO(Trialforce管理組織)
TSOおよびSignupRequestを管理するための組織。
Partner DE組織にケース申請で機能追加してもらう。
ブランド設定(ロゴ, メールテンプレート)をしないならばPBOで問題ない。
TSO(Trialforceソース組織)
Trialforceテンプレートのマスタとなる組織。
この組織にデモ環境を作成し、そのスナップショットをTrialforceテンプレートとして作成できる。
トライアル組織の設定を何か変えたい場合は、この組織の設定を変更し、再度テンプレートを作成する。
TSOはPBO or TMOから作成できる。手順が異なるので注意。
注意事項
TSOへのパッケージインストール前にパッケージをLMOに関連付けないと、リードが生成されない。
TSOは1年で削除される。延長にはケース申請が必要。
Trialforceテンプレート
TSOのある時点でのスナップショット。
Trialforceテンプレートと同じ設定/データで無料トライアル組織を作成できる。
AppExchangeでトライアルを提供するにはテンプレートのレビュー(無料)に合格する必要がある。テンプレートに入れられるリソースに制限がある。(詳細)
SignupRequest
SignupRequestオブジェクトのレコードを作成することで、Trialforceテンプレートから無料トライアル組織を作成することができる。
PBO or TMOで作成するのが一般的だが、SignupRequestが有効化されていればどの組織でもよい。
外部Webサイトから無料トライアル組織を自動作成するにはAPI経由でSignupRequestレコードを作成すればよい(SignupRequest APIと呼称されているが、他のオブジェクトのレコードをAPIで作成するのと同じです)。
PBO以外では有効にするにはケース申請が必要。環境ハブでも使用する機能なのでPBOであれば既に有効化されている。
無料トライアル組織
Trialforceテンプレートから作成されたある時点のTSOのコピーとなる組織。
デフォルトの設定では組織が作成されると、顧客にサインアップメールが届く。
Trialforceによるトライアル組織提供の基本手順
この節ではゼロから無料トライアル組織を一つ作成するところまでをチュートリアル形式で説明します。
Trialforceによるトライアル組織提供の基本手順は以下の通りです。
TSO作成
TSO承認申請
TSOでデモ環境を構築
Trialforceテンプレート作成
SignupRequestレコード作成
無料トライアル組織を確認
手順1〜4は本番運用でも必ず手作業で行いますが、「5. SignupRequestレコード作成」は本番運用ではあまり手動で行うことはありません。しかし、ここでは仕組みを理解するために手作業でやっていきます。また、今回はTMOは使用せず、PBOを使用します。
1. TSO作成
PBOの環境ハブから以下のような設定で組織を作成します。(詳細)
目的: Trialforceソース組織
以下を使用して作成: Standard Edition
エディション: Enterprise TSO
他は適当に記載してください。
作成されたTSOにログインして、「Trialforce」という設定があればOKです。
2. TSO承認申請
1.のTrialforce設定の画面で「現在、このTrialforceソース組織は、サインアップAPIの使用が承認されていません。この組織でサインアップAPIを有効にするには、パートナーポータルでケースを登録してください。」と警告が表示されています。
この状態でTrialforceテンプレートを作成すると以下のエラーメールが届き、作成が失敗します。
ドキュメントに記載が見つからないのですが、「TSO承認申請」というものが必要なようです。Partner Base Campから辿れる「ケース起票方法」に記載がありますので手順に従い申請してください。(こちらはおそらく非公開サイトなのでリンクは貼りません。Salesforceのアライアンス担当にお聞きください。)
申請が通ると、以下のようにメッセージが変わり、Trialforceテンプレートが作成できるようになります。
3. TSOでデモ環境を構築
TSOにトライアル対象のAppExchangeアプリをインストールし、必要に応じてサンプルレコード、ユーザ、カスタムプロファイルなどを作成します。
今回は弊社のCalsketをインストールして、適当にデータを入れています。
4. Trialforceテンプレート作成
Trialforce設定画面の「新規Trialforceテンプレート」ボタンからTrialforceテンプレートを作成します。(詳細)
[コラム]
ここで、「組織作成日付に相対的に結果組織のすべての日付を調整します。」という設定がおもしろくて、これを有効にすると日付項目はトライアル組織の作成日から相対的に計算されます。フォーラム情報ですが、計算ロジックは以下のようになるそうです。
作成完了すると以下のようなメールが届きます。
Trialforce設定画面でもTrialforceテンプレートIDは確認できます。このIDは次の手順で使用します。
5. SignupRequestレコードを作成
この後はPBOで何らかの手段でSignupRequestオブジェクトのレコードを作成します。今回は標準画面から作成します。しかし、ClassicでしかSignupRequestオブジェクトタブを開けないのでClassicで作業する必要があります。
SignupRequestオブジェクトタブで「新規」ボタンをクリックし、以下のように入力し、保存します。
テンプレート: 先ほど作成したテンプレートのID
国: JP
言語: 日本語
他の必須項目を適当に埋めてください。(その他の項目の詳細)
以下のようにレコード詳細画面のSignup Requests履歴に状況が表示されます。
完了すると組織作成したときのサインアップメールと同じ形式のメールが届きます。
6. 無料トライアル組織を確認
メールの「アカウントを確認」ボタンからパスワードを設定して作成された無料トライアル組織にログインしましょう。
ちゃんとCalsketがインストールされ、レコードも存在するのが確認できます。
AppExchangeでの無料トライアルの提供
無料トライアルはAppExchange上から提供するのが最も簡単な方法です。AppExchange Partner Console上で以下のたった3つの設定で有効にすることができます。
1. AppExchangeにTSOを接続する(詳細手順)
2. Trialforceテンプレートのセキュリティレビューを申請する(詳細手順)
3. 使用するTrialforceテンプレートを選択する(詳細手順)
この提供方法ではトライアルが申し込まれると自動でSignupRequestレコードが作成されるので、非常に設定は簡単です。ただし、テンプレートをレビューしてもらう必要があるので、入れられるリソースに制限が発生します。
Webサイトでの無料トライアルの提供
特にOEMアプリの場合は、動線としてAppExchangeからの流入よりも自社サイトからの流入を重視するべきでしょう。AppExchange上で無料トライアルを提供するのではなく、自社サイト上から無料トライアルに申し込めるようにすることもできます。
Webサイトで無料トライアルを提供する方法
その方法として、ドキュメントでは以下の4パターンが紹介されています。
HerokuでホストされるNode.jsおよびReactアプリケーション
Experience Cloud サイトでホストされる Lightning コンポーネント
サイトでホストされる Visualforce ページ
プロセスビルダーを使用した Web-to-リードフォーム
これらの方法についてはAppExchangeブログでサンプルコードも紹介されています。ただ、2018年の記事でjsforce使ってない、Aura使っている、プロセスビルダー使っているなどだいぶ内容が古いので、参考程度に見るのがよいでしょう。
上述したようにSignupRequestレコードを作成すればいいだけでそう難しくないので、環境に合わせて好きな方法で実装するのがよいです。
Web-to-リード + フローで無料トライアル提供サイトを作る
ここではほぼコーディングなしで実現可能なWeb-to-リード + フローで実現する手順を説明します。と言いながら、Web-to-リードはあまりセキュアではないので、可能であれば他の方法がおすすめです。
1. Web-to-リードを設定する
PBO(または別のSignupRequest有効組織)でWeb-to-リードを設定します。(詳細手順)
Web-to-リードの設定画面で「Web-to-リードフォームの作成」ボタンをクリックします。
適当に設定して、作成ボタンをクリックします。
生成されたHTMLを使用したページを作成します。
ブラウザで開くとシンプルなフォームが表示されます。
試しに入力して送信するとリードレコードが作成されます。
2. リードにレコードトリガーフローを作成
以下のような単純なレコードトリガーを作成します。
開始条件は以下のように設定します。
オブジェクト: リード
フローをトリガする条件: レコードが作成された
あとはデフォルトでよいです。本来は条件はWeb-to-リードから作成されたときだけ動くようにする方がよいです。
レコードの作成アクションは以下のように設定します。
Usernameはユニークである必要があるので、実際は数式を使って日付を入れたり、DEのようにランダムな単語を付け加えるようにした方がよさそうです。
3. 動作確認
Webフォームからリードを作成すると、フローによってSignupRequestレコードが作成され、しばらくすると組織へのサインアップメールが来ることが確認できます。
疑問点
調べてて自分も疑問に思った点をいくつか記載しておきます。
TSOに新バージョンを転送アップグレードしたらテンプレートも自動アップグレードされるの?
されません。Trialforceテンプレートを再作成する必要があります。(関連)
TSOからはどんな設定が引き継がれるの?
基本的に全部引き継がれそうです。以下を試してみましたが、全部無料トライアル組織にコピーされていました。
レコード
新規ユーザ
カスタム項目
項目セット
Apexクラス
レコードトリガーフロー
ただし、AppExchangeでトライアルを提供するにはTrialforceテンプレートのレビューを通過する必要があり、その場合はテンプレートに含められるものに制限があります。(出典)
⭕️ セキュリティレビューに合格した管理パッケージ
⭕️ フローなどの宣言型(ノーコード,ローコード)のカスタマイズ
❌ レビューに合格していない管理パッケージ
❌ 未管理コード(Apex, Visualforceなど)
終わりに
TrialforceはOEMアプリでは重要な機能ですが、ISVアプリでは少し馴染みが薄い機能でした。しかし、弊社のMatchingMapもそうですが、ISVアプリにおいても製品の良さを体感するためには、そこそこの設定やある程度のデータが必要なケースもあります。そういう際にはTrialforceは非常に有用です。また、特定顧客用のデモ環境をさっと用意する手段としてもTrialforceは非常に便利に使えそうです。今後は弊社でも取り入れていきたいと思います。皆様もこの記事を参考にぜひ試してみてください。
関連リンク
AppExchange ソリューションの無料トライアルの提供 | ISVforce ガイド | Salesforce Developers
Partner Base Campの「Trialforceの設定と配布」
SignupRequest | Object Reference for the Salesforce Platform | Salesforce Developers