PureCloud for Salesforce 用のカスタム Visualforce ページにクリックツーダイヤルを作成


メモ: Lightning Experience は、カスタム ページでのクリック-to-ダイヤル機能をサポートしていません。

統合により、連絡先やアカウント ページなど、デフォルトの Salesforce ページでクリックツーダイヤル機能を有効にできます。エージェントがデフォルトの Salesforce ページの電話番号をクリックすると、クライアントは自動的にその電話番号をダイヤルするか、[コールを発信] テキスト ボックスに自動的に入力します。(クリック-to-ダイヤルの動作は、エージェントのクリック-to-ダイヤル設定によって異なります。)クライアントにより、Salesforce ページから関連性のあるオブジェクトが [名前] テキスト ボックスと [関連付け] テキスト ボックスに自動入力されます。 

カスタム Visualforce ページにクリックツーダイヤル コンポーネントを追加することで、これらのページでもクリックツーダイヤル機能を使用できます。 

ヒント: 開発モードで Visualforce ページを作成する場合、ページ作成後に、開発モードを終了します。 クリック-to-ダイヤル イベントは、開発モードが有効になっていると動作しません。

以下は、Visualforce ページでクリックツーダイヤル コンポーネントを使用し、また Apex コントローラーを使って Salesforce からデータをプルする例です。クリック-to-ダイヤル コンポーネントApex JSON に関する詳細は、Salesforce のドキュメントを参照してください。

クリックツーダイヤル コンポーネント

クリック-to-ダイヤル コンポーネントにより、カスタムの Visualforce ページにクリック-to-ダイヤル機能が追加され、ユーザーは entityId 属性と params 属性に値を割り当てることができます。 これらの 2 つの属性により Apex コントローラーからデータが取得され、クライアントの [名前] ボックスと [関連付け] ボックスに情報が入力されます。entityId と params の属性は、[名前] テキスト ボックスと [関連付け] テキスト ボックスの Salesforce ページのアクティビティへの自動での関連付けも行います。 

<apex:page standardController="Account" extensions="CustomClickToDialController" showHeader="true"> <support:clickToDial number="3172222222" entityId="{!id}" params="{!json}"/> </apex:page>
  • 番号:ダイヤルする番号
  • entityId (オプション):アクティビティに自動的に関連付ける、連絡先やアカウントなど関連性のあるオブジェクトの ID 
  • params (オプション):アクティビティに自動的に関連付けるオブジェクト(群)の JSON 文字列

    params 属性の下記の形式を使用します:

    { “Id”:“00AB0000001C2dE”, “Name”:“John Smith”, “attributes”: { “type”:“Contact” } } 

    Salesforce JSON.serialize API はこの形式で連絡先やアカウントなどのオブジェクトをシリアライズします。

メモ: entityId 属性は 1 つのレコードのみに使用します。コール ログの [名前] と [関連付け] にレコードを追加するには、params 属性を使用します。

このコンポーネントの詳細は、Salesforce ドキュメントを参照してください。

Apex コントローラー

Apex コントローラーは以下のアクションを実行します。

  • Salesforce からバックエンド データの取得
  • Salesforce JSON.serialize API を使った JSON 文字列の生成
  • カスタム Visualforce ページのクリック-to-ダイヤル コンポーネントに、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(){ Account account = [SELECT id, name FROM Account LIMIT 1]; return JSON.serialize(account); } } 

返された Who レコードはすべてコール ログの [名前] リストに表示されます。Who レコードが 1 つのみ返された場合には、そのレコードはコール ログ内の [名前] テキスト ボックスに自動的に関連付けられています。

返された What レコードはすべてコール ログの [関連付け] リストに表示されます。What レコードが 1 つのみ返された場合には、そのレコードはコール ログ内の [関連付け] テキスト ボックスに自動的に関連付けられています。

Auto associations in Name and Related To text boxes