カスタムVisualforceページでクリックツーダイヤルを作成する
この統合により、連絡先ページやアカウントページなど、デフォルトのSalesforceページでクリックツーダイヤル機能が有効になります。エージェントがデフォルトのSalesforceページで電話番号をクリックすると、クライアントは自動的に電話番号をダイヤルするか、または[名前]または[番号]ボックスに自動入力します。(クリックしてダイヤルする動作は、[キュー設定]の下のエージェントの選択によって異なります。詳細については、 クリックダイヤルを設定する。)クライアントは、これらのSalesforceページの関連オブジェクトを[名前]ボックスと[関連先]ボックスに入力します。
クリックツーダイヤルコンポーネントをこれらのページに追加することによって、カスタムVisualforceページにクリックツーダイヤル機能を提供することもできます。
以下は、Visualforceページでクリックダイヤルコンポーネントを使用し、Apexコントローラを使用してSalesforceからデータを取得する例です。詳細については、以下を参照してください。 サポート:ClickToDial[サポート:clickToDial] および Apex JSONを使ってみる Salesforceドキュメントで確認できます。
クリックダイヤルコンポーネント
クリック ダイヤルコンポーネントが追加されますクリック ダイヤル 機能性カスタムVisualforceページに、あなたがのために値を割り当てることができます entityId そして params 属性。これら2つの属性は、Apexコントローラからデータを取得して、クライアントの[名前]ボックスと[関連先]ボックスに入力します。の entityId そして params 属性は、[名前]ボックスと[関連先]ボックスをSalesforceページのアクティビティに自動的に関連付けます。
属性 | 必須/オプション | 説明 | メモ |
---|---|---|---|
数 | 必須 | ダイヤルする番号。 | |
entityId | オプショナル | アクティビティに自動関連付けする連絡先やアカウントなどの関連オブジェクトのID。 | の entityId 属性は単一のレコード専用です。対話ログの名前と関連先に追加のレコードを追加するには、 協会 paramsオブジェクトのプロパティ。 |
params | オプショナル | 以下のための追加データのJSON文字列クリック ダイヤル 。見る paramsオブジェクト。 |
<apex:page standardController="Account" extensions="CustomClickToDialController" showHeader="true">
<support:clickToDial number="3172222222" entityId="{!id}" params="{!json}"/>
</apex:page>
paramsオブジェクト
次の形式を使用して params オブジェクト。Salesforce JSON.serialize APIは、この形式を使用して 協会 連絡先やアカウントなどのオブジェクトをシリアル化します。
{
autoPlace: true,
callerId: '317-555-0123',
callerIdName: 'Some Name Here',
interactionAttributes: {
CustomAttribute: 'Data here'
},
interactionType: 'call',
queueId: 'Queue id GUID',
associations: [
{
Id: '00000000000',
Name: 'AccountName',
attributes: {
type: 'Account'
}
},
{
Id: '11111111111',
Name: 'John Smith',
attributes: {
type: 'Contact'
}
}
]
}
このコンポーネントの詳細については、 サポート:clickToDial Salesforceドキュメントにあります。
アペックスコントローラー
Apexコントローラは以下のアクションを実行します。
- Salesforceからバックエンドデータを取得します。
- Salesforce JSON.serialize APIを使用してJSON文字列を生成します。
- このデータをカスタムVisualforceページのクリックダイヤルコンポーネントのentityIdおよびparams属性の値として追加します。
- Who / Whatレコードを返します。
public class CustomClickToDialController {
public CustomClickToDialController(ApexPages.StandardController stdController){}
// Returns an ID of a Who/What record (for the entityId attribute).
public String getId(){
Contact contact = [SELECT id, name FROM Contact LIMIT 1];
return contact.id;
}
// Returns a JSON string representation of Who/What record(s) (for the params attribute).
// It could be a single Who/What record or a list of Who/What records.
public String getJson(){
List accountList = [Select id, name FROM Account LIMIT 1];
String accounts = JSON.serialize(accountList);
JSONGenerator gen = JSON.createGenerator(false);
gen.writeStartObject();
gen.writeStringField('associations', accounts);
gen.writeStringField('callerId', '317-555-0123');
gen.writeStringField('callerIdName', 'Some Name Here');
gen.writeStringField('interactionType', 'call');
gen.writeBooleanField('autoPlace', true);
gen.writeStringField('queueId', 'Queue id GUID);
gen.writeFieldName('interactionAttributes');
gen.writeStartObject();
gen.writeStringField('CustomAttribute', 'Data here');
gen.writeEndObject();
gen.writeEndObject();
return gen.getAsString();
}
}
返されたWhoレコードはすべて、インタラクションログの[Name]リストに表示されます。Whoレコードが1つだけ返された場合、そのレコードはインタラクションログの[Name]ボックスに自動的に関連付けられます。
すべて返されたレコードインタラクションログの[関連先]リストに表示される内容Whatレコードが1つだけ返された場合、そのレコードはインタラクションログのRelated Toボックスに自動的に関連付けられます。
詳細については、 クリックダイヤル そして クリックダイヤルを設定する。
統合の詳細については、以下を参照してください。Salesforce向けGenesys Cloudについて.