カスタムVisualforceページでクリックツーダイヤルを作成する

 メモ:   この記事は、Salesforce向けGenesys Cloudに適用されます。

この統合により、連絡先ページやアカウントページなど、デフォルトのSalesforceページでクリックツーダイヤル機能が有効になります。 エージェントがデフォルトのSalesforceページで電話番号をクリックすると、クライアントは自動的に電話番号をダイヤルするか、または[名前]または[番号]ボックスに自動入力します。 (クリックしてダイヤルする動作は、[キュー設定]の下のエージェントの選択によって異なります。 詳細については、 クリックダイヤルを設定する。) クライアントは、これらのSalesforceページの関連オブジェクトを[名前]ボックスと[関連先]ボックスに入力します。 

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

ヒント:   開発モードで Visualforce ページを作成する場合、ページ作成後に、開発モードを終了します。  Click-to-Dialイベントは、開発モードが有効になっていると機能しません。

以下は、Visualforceページでクリックダイヤルコンポーネントを使用し、Apexコントローラを使用してSalesforceからデータを取得する例です。 詳細については、以下を参照してください。 サポート:ClickToDial[サポート:clickToDial] および Apex JSONを使ってみる Salesforceドキュメントで確認できます。

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

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

属性 必須/オプション 説明 メモ  
番号 必須 ダイヤルする番号
entityId 任意 連絡先やアカウントなど、アクティビティと自動関連付けする関連オブジェクトのID。  entityId 属性は単一レコード専用です。 対話ログの名前と関連先にレコードを追加するには、 協会 paramsオブジェクトのproperty。
パラーム 任意 クリックダイヤルの追加データのJSON文字列。 見る paramsオブジェクト
<apex:page standardController="Account" extensions="CustomClickToDialController" showHeader="true">
   <support:clickToDial number="3172222222" entityId="{!id}" params="{!json}"/>
</apex:page>

paramsオブジェクト

プロパティ データ・タイプ 説明 メモ  
オートプレイス ブール型 trueまたは設定されていない場合、統合は自動的に電話をかけます。 falseの場合、統合は[名前]または[番号]ボックスに電話番号を入力します。
発信者ID 文字列  電話の受信者に表示される電話番号 Telcoのサポート 発信者ID 不定。
callerIdName 文字列  電話の受信者に表示される名前。 Telcoのサポート callerIdName 不定。
interactionAttributes オブジェクト インタラクションに追加する属性のキーと値のペア。
interactionType 文字列  相互作用のタイプ

値: 電話、SMS。

いいえの場合 interactionType 提供され、デフォルトはcallです。

queueId 文字列  電話をかける、またはSMSメッセージを送信するキューのID。
協会 オブジェクト アクティビティに自動的に関連付ける単一のオブジェクトまたはオブジェクトの配列。

以下のフォーマットを使用してください。 パラーム オブジェクト 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について.