この記事の目次
SalesforceとIBMVerseの連携に必要な環境とは?

Salesforceにインポート可能なIBMVerseデータの種類
IBMVerseとはIBM社が発表したメール機能を中心としたデジタルソリューションです。 SalesforceにIBMVerseのデータを活用できる範囲はメールだけでなく、会議やプロジェクトのスケジュールやメンバー同士のファイル共有システム、メッセンジャー、複数人でのビデオコミュニケーションなど、取得できる範囲は多岐に渡ります。 SalesforceにIBMVerseのデータをインポートすることで、Salesforceの基本的な機能とIBMVerseの機能を統合することが可能です。 次の章からSalesforceにIBMVerseのメールデータを連携する基本的な方法について解説していきます。SalesforceにIBMVerseのメールデータを取得するための準備
SalesforceにIBMVerseのメールのデータを連携するためには、IBMVerseのメールのデータが保存されている領域にSalesforceからアクセスを促す必要があります。 IBMVerseのデータはnode.jsアプリに保存されています。そのためSalesforceからnode.jsアプリにアクセスしてデータを取得してください。 Salesforceからnode.jsアプリに連携するには、LightningコンポーネントとLightningOutを利用しましょう。必要な環境の準備
SalesforceとIBMVerseを連携させるためには、最低限以下の環境を揃えておく必要があります- Salesforce Developer Editionアカウント
- Salesforce Connected App
- CORS definition(Appを遠隔操作するために必要)
コンポーネントの構成
SalesforceとIBMVerseを連携させるときは、3つのコンポーネントを準備します。- node.jsアプリ
- Verse拡張アプリ
- Lightning Out アプリ(Apexが利用できる環境)
Herokunode.jsアプリがnode.jsからデータを取得する記述
ローカル環境でIBMVerseアプリケーションを利用する場合は、Herokunode.jsアプリとの連携が推奨されています。 Herokuにデプロイすれば、寛容にテスト環境を構築できます。HerokuアプリがHTMLヘッダーにレンダリングを行う例
以下の例ではHerokunode.jsアプリがnode.jsからデータを取得し、HTMLヘッダーにレタリングをしている様子を確認するために、HTMLヘッダーの抜粋を記述しています。 < html lang=""en"">
< head>
< meta charset=""UTF-8"">
< title>< %= title % >< /title>
< link rel=""stylesheet"" type=""text/css"" href=""/assets/styles/salesforce-lightning-design-system.css"" / >
< script >
window.addEventListener(""message"", function(event) {
if (!""< %= verseSourceServer % >"".includes(event.origin)){ //
return;
}
_verseObject = event.data;
if (_verseObject.verseApiType === ""com.ibm.verse.ping.application.loaded"") {
var loaded_message = {
verseApiType : ""com.ibm.verse.application.loaded""
};
event.source.postMessage(loaded_message, event.origin);
}
}, false);
< /script >
< /head >
上記の記述のうち<%= verseSourceServer %>によってHerokuの環境変数から取得するデータを取得しています。
_verseObject = event.data;= event.data;
verseのデータはJavaScriptによって格納されているので、上記JavaScriptの記述(変数”_verseObject ”)によって簡単にアクセスが可能です。
このようにForce.comとHerokuを利用することで、効率的に連携できます。
salesforce-ibm-verseの全体ソースコードや仕様について確認したい方はGItHubにアクセスしてください。
IBMVerseのメールデータをSalesforceのログに記録する記述
node.jsアプリに保存されているIBMVerseのデータをSalesforceのLightningコンポーネントにレンダリングしていきます。 データをレンダリングする際には必ずLightning OutというLightningコンポーネントを外部連携する機能を利用します。以下の例ではIBMVerseで取得したメールデータをSalesforceのログに反映させるための記述を紹介しています。 IBMVerseの構成を設定する記述は以下のとおりです。 {
""app_id"": ""com.winkelmeyer.salesforce"",
""name"": ""Salesforce Verse integration"",
""url"": ""https://salesforce-ibm-verse.herokuapp.com/verse"",
""extensions"": [
{
""type"": ""com.ibm.verse.action"",
""ext_id"": ""com.winkelmeyer.salesforce.logMail"",
""name"": ""Salesforceへログを記録する"",
""payload"": {},
""path"": ""mail.read"",
""title"": ""Salesforceへログを記録する""
}
],
""payload"": {
""features"": [
""core""
],
""renderParams"": {
""width"": ""1200"",
""height"": ""500""
}
},
""services"": [
""Verse""
]
}
出力の結果としては、IBMVerseのメールクライアント上で設定タブをクリックすると「Salesforceへログを記録する」の項目が追加されます。
以下の記述により、リンク先のURLが新たに設定されています。
""url"": ""https://salesforce-ibm-verse.herokuapp.com/verse"",
SalesforceとIBMVerseとの連携をさらに発展させるには
本記事ではLightningコンポーネントとLightningOutを介して、node.jsからIBMVerseのメールデータを取得する方法について解説してきました。 IBMVerseはメール以外にも、会議やプロジェクトのスケジュールやメンバー同士のファイル共有システム、メッセンジャー、複数人でのビデオコミュニケーションなど、取得できる範囲は多岐に渡ります。 SalesforceとIBMVerseをさらに連携するためにも、まず本記事に記載した必要な環境の準備について把握しておきましょう。]]>この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞