デジタルファーストの時代が到来する中で、多くの企業が「多様化する顧客属性に合わせた個別化アプローチをどうすればよいか」、そして「それに比例して増え続ける様々な業務プロセスを最適化し、組織の生産性を向上させるにはどうしたらよいか」という悩みを抱えています。その解決方法の一つが複数のシステム間のデータ連携です。
本稿ではAmazon Relational Database Service(以下、Amazon RDS)のデータと、ビジネスアプリケーションを迅速に構築・展開できる仕組みを持つ Salesforce 上のデータを連携させることにより課題解決を図るというアプローチを紹介します。
これにより、Salesforce のビジネスアプリケーションを通じて、すべてのユーザーが生産性を向上させるだけでなく、顧客に対するアプローチの精度も高めるという、まさにデジタルトランスフォーメーション(DX)を加速させる為の強力なアプリケーションを迅速に構築・展開することが可能となります。
(※補足 : 本記事は、2023年6月28日にオンラインで開催されたイベント「ZDNET Japan Special Seminar feat.AWS & Salesforce 組織力強化、個客体験向上の実現の鍵はデータ活用にあり! Amazon RDS x Salesforce 連携のポイントとは」から、SalesforceとAmazon RDSによるデータ連携アプリケーション構築の勘所を紹介いたします)
目次
AWSとSalesforceのデータ連携ソリューションが強化された背景
現在、企業では様々なクラウド環境を活用していて、アプリケーションやデータが分散配置されています。その際にアプリケーションやデータを連携させるためには、それぞれの特性を理解した上で、個別に接続方法・連携方法を検討する必要があります。
連携を行う際には、大きく3つの課題が挙げられます。1つめは、連携の開発に時間がかかることです。カスタムで個々の連携開発を実現する際には、スピードが要求される一方で、膨大な開発とメンテンナンスが必要となり、時間が必要です。2つめは、スキルを持つ人的リソースが必要ということです。システム連携には様々な要素が絡んでくるため、ネットワークやセキュリティ、アプリケーションなど、幅広い知識やスキルを持つ人材が必要になります。3つめは、システムに対する高度な要求です。年々システムに対する要求が高まっている背景があり、必然的に難易度が高い連携を実現しなければなりません。
そのような市場背景のもと、2021年にSalesforceはAWSとのパートナーシップを拡大するという発表をしました。日本でもSalesforceを利用されているお客様において、AWS上に構成されたシステムとの連携ニーズは年々高まっています。このパートナーシップの目的は、SalesforceとAWS双方の機能を連携させることでIT資産の価値を最大限に引き出し、その効果を相乗的に高め、組織全体で同じデータに基づいた意思決定を迅速に行うための強力なビジネスアプリケーションを迅速に構築・展開することを可能にすること、複数の情報源を連携させることで情報の一貫性と正確性を確保することでより深い顧客理解を促進し、顧客に提供する価値の向上を促進することです。
これまでもSalesforceとAWSの接続は実現可能でしたが、SalesforceではAWSとのパートナーシップ強化により、より容易に、パフォーマンス良く連携ができるようにAWSとの連携機能を強化しています。
本稿ではAWSとSalesforceの連携機能の一つであるSalesforce Connect GraphQL Adapterという機能について紹介します。
Salesforce Connectの機能とGraphQL Adapterの概要
Salesforce Connect とは
Salesforceでは、Salesforce外のシステムのデータをSalesforceの中にインポートしてくることなく、プログラミング不要、設定作業だけでシームレスにデータ連携できる機能として、Salesforce Connectを提供しています。これにより、外部システム上のデータをSalesforceに取り込まずとも、あたかもSalesforce上にあるデータのように扱うことができるようになります。もちろん、外部システム上のデータにリアルタイムでアクセスすることによりSalesforceの画面にデータを表示したり、フローという自動化処理の機能を通じてこうしたデータを扱う業務を自動化し、効率化することも可能です。
Salesforce Connectの仕組み
Salesforceでは一般のデータベースにおけるテーブルに相当する「オブジェクト」という形でデータを保持しています。
コラム:オブジェクトについて
Salesforce では、データベーステーブルはオブジェクト、列は項目、行はレコードとみなされます。以下はスプレッドシートで表現したデータベーステーブルの例です。
Salesforce で扱うこれらのデータ(オブジェクト)は、Salesforceが標準で提供する商談やリード、取引先責任者といった「標準オブジェクト」と、お客様が作成する「カスタムオブジェクト」や Salesforce 組織外の外部システムに保存されたデータに対応付けられた「外部オブジェクト」などがあります。
各データそれぞれの詳しい情報を一目で把握したいとき、Salesforce は上記のようなスプレッドシートの代わりに、レコードの一覧表示であるリストビューやレコードの詳細画面が標準で提供されています。また、取引先などのオブジェクトと他のオブジェクトの関係性を主従関係や参照関係といった定義でデータモデルを表現し、それぞれのレコードに関連するレコードを画面から確認することができます。
Salesforce Connectを利用すると、外部システム上にあるテーブルを接続し、「外部オブジェクト」として Salesforce 組織上で検索や操作などが行えるようになります。外部オブジェクトは、Salesforce 自体では関連づけられたデータの実体は保存せず、データの構造(メタデータ)だけを保持する形で扱われます。そして Salesforce 上で画面表示または自動化処理などが行われるタイミングで、外部システムにSalesforce Connect を介してアクセスする仕組みとなっています。
コラム:外部オブジェクトについて
- 各組織は、最大 200 個の外部オブジェクトが設定可能です。なお、外部オブジェクトはカスタムオブジェクト数には含まれません。
- 外部システムで許可されている場合は、外部データソースを同期して、関連外部オブジェクトを自動的に作成することをお勧めします。
- 手動で外部オブジェクトを定義して、外部オブジェクト名をカスタマイズし、カスタム項目を手動で作成することもできます。
Salesforce Connect のアダプターの種類
Salesforce Connect には、Salesforce の組織間で接続する組織間アダプターや、OData に対応した外部のデータベースと接続するODataアダプターが用意されています。また、AWSとの連携では、専用アダプタとしてAmazon DynamoDB、Amazon Athenaアダプターに加えて、今回紹介するGraphQL アダプターが提供されています。
Salesforce Connect を使った AWS 連携のユースケース
ではこの Salesforce Connect を用いた AWS 連携はどのような時に使われるのでしょうか。主に3つのユースケースが挙げられます。
- 最新のAWS上のデータをSalesforceで活用する
- Salesforce の UI を通じて、AWS上のデータを元に自動化・判断を行う
- AWS 上に過去の履歴データのアーカイブをする
1. 最新のAWS上のデータをSalesforceで活用する
顧客が注文した商品の配送状況に対する確認や、購買などの履歴データの照会といった場面での活用などを目的として、AWSで保持しているデータをSalesforce側から確認したい場合などが挙げられます。
2. Salesforce の UI を通じて、AWS上のデータを元に自動化・判断を行う
Salesforceでは処理の自動化を行えるフローという機能がありますが、フローの中からAWS上のデータを参照し、そのデータを基に自動化処理を行いたいといった場合です。例えば、AWS上の購買履歴をもとに顧客ランクを計算したり、サポートの契約状況についてフローの中でAWS上のデータを参照することで、その後の処理を分岐させるという形で活用できます。
3. AWS 上に過去の履歴データのアーカイブをする
こちらは、例えば業務上の利用頻度はそれほど多くはないもののデータ容量が大きい場合など、データをAWSにアーカイブしておいて、必要な時にSalesforce側から参照するという使い方です。
SalesforceからGraphQL AdapterでRDSに接続する
GraphQL Adapter – Amazon RDS 同期の仕組み
一例として、Salesforce ConnectのGraphQL Adapterを使い、AWS側にあるRDSにあるデータにAmazon AppSyncを介して接続する形で、SalesforceとAWSを自動連携させる仕組みを紹介します。Amazon RDS上には取引先の注文情報や明細情報、商品の情報が格納されており、それらをSalesforceで外部オブジェクトとして参照する構成です。
SalesforceでGraphQL Adapterを設定することによって、AWS側のAppSyncにアクセスします。AWS側では、AppSyncのGraphQL APIの設定により、Lambdaのリゾルバーコードを介してRDSに接続する形になります。
接続を設定する
※こちらは設定の一例となります。設定方法は公式ヘルプを参照下さい
- AWS 側で Amazon RDS を見ると、Amazon RDS 上ではそれぞれのテーブルに注文、注文明細、製品のデータが格納されています。AppSyncの設定ではRDSのスキーマ定義などがGraphQLのAPIで定義されています。また、Lambdaによるリゾルバーのコードも設定されている状態です。
- Salesforce から AWSへの接続を設定する際には、Salesforce設定画面の[設定] – [指定ログイン情報] という画面から設定をしていきます。今回の場合、新規設定の際には、外部ログイン情報タブから新規で登録を行っていきます。表示ラベルと名前を設定し、認証プロトコルでカスタムを選択します。続いて設定に入り、APIパラメータなどを指定する画面の認証パラメータ領域で、AWS側のAPIのキーと値を設定します。
- 外部ログイン情報を登録した後、指定ログイン情報のタブから設定を行っていきます。表示ラベルと名前を設定し、URL部分にAWSのターゲットURLを設定します。続いて外部ログイン情報のボックスに、先ほど設定した外部ログイン情報を指定します。これで保存して、登録をする形になります。
- ログイン情報を登録したら、外部データソースの設定に移ります。この画面では、上記 (2) で指定した [指定ログイン情報] を使ってデータソースを設定していきます。
- 種別を選択するドロップダウンリストから、今回利用するSalesforce Connectのアダプタを選択します。リストではDynamoDBやAthena、OData接続などを選択できますが、ここではGraphQLを選択します。
- 指定ログイン情報で、上記 (2) で設定したものを選択して登録します。
- 登録が終わったら、外部データソースの画面の「検証して同期」というボタンを押すと、AWS側で設定されているRDSのテーブルの情報が、AppSyncを介してSalesforceで取得できるようになります。下図の画面には注文テーブル、明細テーブル、製品テーブルがありますが、この時点でSalesforceの外部オブジェクトとして、自動的に設定されている状態になっています。また、それぞれのテーブル項目などの情報も確認することができます。
外部オブジェクトの設定及び取引先などの標準オブジェクトとの関係設定を行った後、Salesforce側の取引先の画面を開くと、その取引先データに関連したRDS側の注文データが表示されています。表示されているデータはSalesforceは実際に持っておらず、AWSのRDSから取得しています。注文データや注文データに紐づいている明細データ、明細データが対象にしている製品情報も関連付けされており、Salesforceの画面上でそれぞれの関連リンクを辿る形で見ることができます。このように、Salesforce上でAWS上のデータを取引先レコードなどに紐づけて扱うことができます。また、RDS上に新たにデータが追加された場合には、Salesforce上の画面にも新しいデータが表示されます。
外部オブジェクトリレーション
この例では、Salesforceの内部データである取引先レコードと、外部オブジェクトの注文データを関連付けさせていますが、外部オブジェクトについては外部オブジェクトのデータにあらかじめSalesforceのレコードIDを持たせて関連付けをする「参照関係」、外部オブジェクトにある共通のIDを用いて関連付けする「外部参照関係」、Salesforceの内部データに外部データのIDを持たせて関連付けを行う「間接参照関係」という3種類のリレーションを設定することが可能です。これらの関連付けを行い、Salesforce上で外部オブジェクトのデータを、業務内容に合わせてより扱いやすくすることができます。
リレーション | 許可された 子オブジェクト | 許可された 親オブジェクト | レコードを照合する親項目 |
---|---|---|---|
参照 | 標準 カスタム 外部 | 標準 カスタム | 18文字の Salesforce レコード ID |
外部参照 | 標準 カスタム 外部 | 外部 | 外部 ID 標準項目 |
間接参照 | 外部 | 標準 カスタム | External ID および Unique 属性を使用して、カスタム項目を選択します |
今回は、Salesforce Connectの新たなアダプタであるGraphQLアダプタによるRDSとの接続について紹介させていただきました。今回紹介した内容を参考に、今後AWSとの連携に活用していただけるようにご検討いただければ幸いです。
ノーコードでセキュアに接続、SalesforceとAWSのデータ連携方法
AWS上のお客様環境とSalesforceのセキュアな接続や、SalesforceからAWS上のデータへのノーコードでのアクセスの実現など、ニーズに合わせてお使いいただけるSalesforceとAWSとの連携の最新ソリューションの概要をご紹介すると共に、その活用例をデモを交えてご紹介いたします。