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