OmniOut について知る
学習の目的
この単元を完了すると、次のことができるようになります。
- OmniOut とは何かを定義する。
- OmniOut のしくみを理解する。
- OmniOut を使用する場合の自身のアプローチを特定する。
OmniOut とは?
組織への OmniStudio の導入を決めたとき、情報を表示する FlexCard の開発や、エンドユーザーがレコードの作成や更新を直観的に行えるようにする OmniScript の作成に多大な時間を費やしました。Lightning Web コンポーネント (LWC) の FlexCard や OmniScript を標準の Web コンポーネントにコンパイルして、プラットフォーム外にあるサードパーティの Web サイトやアプリケーション上で実行できたらよいのにと思ったことはありませんか?
朗報があります! OmniOut を使用すれば、FlexCard や OmniScript をカスタムアプリケーションの内部に埋め込むことや、コンテンツ管理システム (CMS) にデプロイして、その CMS を Salesforce に接続することができます。つまり、OmniOut があれば、OmniScript や FlexCard を標準の Web コンポーネントとして Adobe Experience Manager (AEM)、Heroku、その他のクラウドアプリケーションプラットフォームにデプロイし、Salesforce プラットフォーム外で実行できるということです。
そのしくみを見てみましょう。
OmniOut のしくみ
OmniOut を使用すると、LWC から Web コンポーネントを自動生成できるため、コードを記述する必要がありません。この点が重要なのはなぜでしょうか? Web コンポーネントがフレームワークで相互運用可能であるためです。iFrame を使わずに組み込むこともできます。便利ですよね?
OmniOut を使用すると、顧客がオフプラットフォームでプロセスを開始した後で中断して保存した場合、エージェントがそのプロセスをオンプラットフォームで完了させることができます。たとえば、顧客がオフプラットフォームの Web サイトにログインし、アカウントの状況を表示したとします。そこでスマートフォンのアップグレードのオファーを目にし、新しいスマートフォンを選択するプロセスを開始しましたが、用事ができたため中断しました。疑問点があったため、数時間後にカスタマーサービスセンターに電話をかけました。ここで、顧客がアップグレードの途中であることをエージェントが見て取り、オンプラットフォームでこのアップグレードプロセスを完了させることができます。
さらに、OmniOut では Omnistudio Data Mapper や Integration Procedure など、OmniStudio の標準ツールが使用されます。
このアーキテクチャを詳しく見ていきましょう。
- OmniOut の Web フォームやアプリケーションは、データの表示やユーザー入力の処理を実行して、そのデータを CMS または Web サーバー上にあるクライアント側の JSON オブジェクトに保存します。
- この Web フォームやアプリケーションから Salesforce へのコールはすべて Apex REST を使用します。
- OmniScript や FlexCard が OmniOut プロジェクトに追加されます。次に、この OmniOut プロジェクトがアプリケーションに統合され、CMS または Web サーバーにデプロイされます。
- セキュリティ上の理由により、実装にプロキシサーバーが必要な場合は、CMS または Web サーバーと連動するプロキシサーバーを設定できます。
- CMS または Web サーバー上の OmniOut Web コンポーネントが、npm リポジトリから連動関係を取得します。
Salesforce や他の API からデータが送受信されますが、ソリューションのパフォーマンスを最適化するために、データはローカルに保存されます。また、API ゲートウェイを追加して Salesforce からの応答をキャッシュしたり、API 要求数を制限したりすれば、パフォーマンスをさらに向上させ、コストを削減することができます。
OmniOut で使用するアプローチ
Robert Bullard を紹介します。Robert は Get Cloudy Consulting のテクニカルアーキテクトで、Salesforce コミュニティの中でも特に知識が豊富なユーザーです。Robert は「Bullard Report」というブログを執筆し、毎週何千ものビューを獲得しています。
OmniOut は CMS に依存しないため、Robert は OmniScript や FlexCard を柔軟な方法でデプロイできます。この高い柔軟性により、Robert はアプリケーションを Salesforce 外にデプロイしたいという OmniStudio のクライアントに OmniOut を使用しています。プロジェクトの規模は関係ありません。
では、OmniOut を使用してオフプラットフォームにデプロイする Robert の現行の OmniStudio プロジェクトを見ていきましょう。Robert は終了後にこのプロセスに関するブログを執筆し、多くのフォロワーに参考にしてもらいたいと考えています。
Simply Solar: JSforce を使用して Heroku にデプロイする
Simply Solar はエネルギー業界の OmniStudio ユーザーです。顧客が各自のパネルで生成されたエネルギーを追跡し、グリッドに送電できるようにサポートするカスタマーサービス担当者向けの OmniScript を作成しています。
Simply Solar は Robert に、この OmniScript をオフプラットフォームで Heroku アプリケーションにデプロイしてもらいたいと考えています。比較的シンプルなプロジェクトで、Robert は難なくこなすことができます。この案件には Salesforce JSforce を使おうと考えています。JSforce は、Salesforce API を使用する Isomorphic JavaScript ライブラリです。詳細は、「リソース」を参照してください。
Europa Communications: 多言語サポートをデプロイする
Europa Communications はドイツに拠点を置く通信サービスプロバイダーで、欧州全域の顧客に対応しています。Europa Comm は Robert の助けを借りて、FlexCard を使って顧客の現在の携帯電話やサービスプランの情報をサービスエージェントに表示するコンソールを開発しました。エージェントはコンソールから多言語の OmniScript を起動し、その指示に従って顧客に対応しています。
現在 Europa Comm は、そのクライアント Web サイトに FlexCard と OmniScript を追加でデプロイすることを望んでいます。Robert は過去に OmniOut をデプロイしたことがありますが、多言語の OmniScript サポートという新たな要件への挑戦にワクワクしています。
Healthy Benefits: AEM にデプロイする
Healthy Benefits は、米国に拠点を置く大手の医療保険会社です。OmniStudio の FlexCard を使用して保険代理店に顧客の現在の保険契約を表示し、OmniScript を使用して代理店が現行の契約の更改や新規契約の追加を実行できるようにしています。
Healthy Benefits は AEM にカスタマーセルフサービスサイトを開設しており、そのサイトに FlexCard と OmniScript をデプロイしたいと考えています。このプロジェクトの焦点は AEM で、Robert が AEM アプリケーションを扱うのは今回が初めてです。そのため、OmniOut の AEM へのデプロイについて念入りに調べています。
Bull Market Investments: CSS を自社アプリケーションにデプロイする
Bull Market Investments はファイナンシャルサービスのグローバル企業です。Robert は長年 Bull Market と仕事をしてきたため、その複雑なセキュリティ要件を理解し、カスタムスタイルシートを愛用していることも認識しています。カスタマーセルフサービスサイトに FlexCard と OmniScript をデプロイして欲しいという難題を Bull Market から打診されたとき、Robert は二つ返事で引き受けました。
これは最も厄介なシナリオです。Bull Market に固有のセキュリティ要件を満たすために、Salesforce とカスタマーセルフサービスサイトの間にミドルウェア接続を構築する必要があります。このミドルウェア接続は OmniOut 外に配置されますが、以前にもこのような接続を構築したことがあるため、Robert はうまくいくと確信しています。
お客様ごとに異なる要件に対応する
上記のとおり、OmniOut ソリューションに対するニーズは企業ごとに異なりますが、Robert はそのすべてに対応できます。
Robert はどのお客様の案件でも、オフプラットフォームにデプロイする FlexCard や OmniScript をダウンロードする前に組織の準備を整えるという同様のアプローチを取っています。次の単元で、前提条件を詳しく見ていきます。