2020年12月11日にSaaS x Salesforce Developersというイベントで、「SaaSベンダーがAppExchangeアプリを作るときの連携パターン」のタイトルで発表をしてきました。その時の発表資料を共有します。
動画もアーカイブ配信されていますので、お時間あればそちらもご覧ください。私の発表は42分頃からです。https://youtu.be/Pbhi2IFchXI?t=2531 から行くと私の発表のところからご覧いただけます。
一部抜粋して以下に解説を書いておきます。お時間のない方は以下の解説ご覧ください。全編は上の動画やスライドをご覧ください。
はじめに
AppExchangeアプリは一般的なSaaSと仕組みが違います。ここがSaaSベンダーがAppExchangeアプリを作ろうとしたときにまず戸惑うところだと思います。動画でも言っていますが、自動アップグレード機能のあるオンプレ(orASP)パッケージがイメージに近いと思います。
自社サービスとSalesforceを連携するには4つの方法があります。
1. Salesforce→自社API
普通にSalesforceにインストールされたAppExchangeアプリから自社サービスのAPIをコールする方法。
認証方法はいろいろありますが、自社サービスAPIでOpenID Connectを実装し、Salesforceの指定ログイン情報という機能(ノーコードで認証処理を実現)を使う方法がおすすめです。
2. 自社サービス→Salesforce API
逆に自社サービスからSalesforceのAPIをコールする方法。認証はOAuth 2.0 認可コードフローがおすすめです。
3. 自社サービスの画面埋め込み(Canvas)
3番目にCanvasという方法があります。これはWebアプリをSalesforceの画面にiframeで埋め込むことができます。ただし、Salesforceが近年推奨している雰囲気がないので、使うかは悩みどころです。
4. プラットフォームイベント
4番目はプラットフォームイベントです。こちらはPubSub型のメッセージングアーキテクチャで、自社サービスでイベントを購読していると、Salesforceから送信したイベントをリアルタイムに受信できます。こちらは弊社もあまりノウハウがありませんが、制限を考えるとAppExchangeでは優先度の下がる選択肢だと考えています。
おすすめの連携方法
おすすめの連携方法は「Salesforce→自社API」です。この方法が一番Salesforceの組織の制限に引っかかりにくいことがその理由です。ただし、要件的にこの方法では満たせない場合は、他の方法も組み合わせて使うとよいと思います。各方法のメリット/デメリットはスライド/動画で説明していますので、そちらをご覧ください。