こんにちは。
SalesforceとAmazonConnectを連携して、AC CTI AdapterのScriptでカスタマイズする内容をあまり見かけないので、記載方法などを記述します。
まず、ScriptはJavaScriptで記載していきます。
Amazon Connect の関数が用意されているので、そちらを使用していきます。
※関数については、ガイドラインのP.112あたりからリファレンスが記載されています。
例として、電話番号からSalesforce内を検索し、IDを取得して、Todoの新規入力画面に、取引先を設定します。
今回は着信があったら、新規Todoを登録するようにしようと思うので、onConnectingでScriptを作成します。
Scriptには以下を追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// 電話番号をAmazon Connect のcontact情報から取得 ・・・① let phoneNumber = ac.Utils.Contact.getCustomerPhoneNumber(contact); // フォーマット ・・・② let formatPhoneNumber = ac.Utils.Common.formatPhoneNumber(phoneNumber, 'JP'); //SOSL作成 ・・・③ let searchQuery = 'find {' + formatPhoneNumber + '} in Phone fields RETURNING Account(name, id)'; // 検索 ・・・④ let retValue = ac.Utils.Salesforce.searchAsync(searchQuery); // 検索結果戻り値処理 ・・・⑤ retValue.then(function(res) { let resList = res.getArray("searchRecords"); let record; for (var i=0; i<records.length; i++) { record = records[i].record; } // TodoにIDをセットして画面を表示 ac.Utils.Salesforce.screenPopNewRecord( 'Task', { 'WhatId': record.Id, 'Description': '' }); }); |
①②:電話番号をAmazon Connect のcontactから取得してフォーマットしています。
(おそらく元から入っているロジックなので、すでに記載されていれば追加しなくていいです。)
③:電話番号でAccountを検索するSOSLを作成
④:SOSLを実行
⑤:④の結果取得後、取引先のIDを取得し、Todoの新規登録画面にセットして画面を表示
実行結果は以下のとおり
無事、取引先が設定された新規Todo登録画面を表示することができました。
この実装を実現するために、自分で模索していったことを以下に記載します。
調べ方などわかれば、皆さんも実装できると思いますので、参考にしてみてください。
実装するまでの流れ
ガイドラインを見ると、
と記載されていますが、これだけではよくわからないですよね。Seeのリンクを開いてみても、SalesforceのAjaxについての説明が出てきますが、ガイドラインの記述とどう関係しているのかが不明でした。
そこで、とりあえず静的リソースを探してみました。
すると、、、
やはりありました。
中身のファイルを開くと
となっており、関数の内部で、SalesforceのAjaxを呼び出しているようです。
(他の関数ではコールセンターの関数も呼び出しているようでした。)
1 |
sforce.connection.search |
を使用しているようなので、使用方法を開発者ドキュメントで調べてみると、以下のとおりでした。
このサンプルを、参考に処理を記載して、無事に実装ができました。
なお、お試しの感じで、作ったので、エラーの考慮などは入れてません。
所感
ガイドラインに使用可能な関数が記載されていますが、関数と戻り値のみで具体的な実装方法が記載されていないので、少々、戸惑いました。Salesforceで使用する関数については、開発者ドキュメントのサイトを見てとリンクが貼ってありますが、これを見てすんなり実装は難しいんじゃないかなと思いました。
コメント