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


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

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

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

先端注:開発モードで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オブジェクト

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

値: 呼び出し、SMS。

ない場合 interactType 提供され、デフォルトで呼び出します。

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

次の形式を使用して 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について.