Crear clic para marcar en páginas personalizadas de Visualforce

Nota: Este artículo se aplica a Genesys Cloud para Salesforce.

La integración permite la funcionalidad de hacer clic para marcar en las páginas predeterminadas de Salesforce, como las páginas de contactos o cuentas. Cuando un agente hace clic en un número de teléfono en las páginas predeterminadas de Salesforce, el cliente marca automáticamente el número de teléfono o completa automáticamente el cuadro Nombre o Número. (El comportamiento de hacer clic para marcar depende de la selección del agente en Configuración de cola. Para más información, ver Configurar clic para marcar.) El cliente completa los cuadros Nombre y Relacionado con con los objetos relevantes de estas páginas de Salesforce. 

También puede proporcionar la funcionalidad de clic para marcar en páginas personalizadas de Visualforce agregando el componente de clic para marcar a estas páginas. 

Propina: Si crea páginas de Visualforce en modo de desarrollo, después de crear las páginas, salga del modo de desarrollo. Los eventos de clic para marcar no funcionan con el modo de desarrollo habilitado.

El siguiente es un ejemplo que usa el componente de clic para marcar en una página de Visualforce y extrae datos de Salesforce usando un controlador Apex. Para más información, ver soporte: clickToDial y Introducción a Apex JSON en la documentación de Salesforce.

Componente de clic para marcar

El componente de clic para marcar agrega la funcionalidad de clic para marcar a una página personalizada de Visualforce y le permite asignar valores para la entityId y params atributos. Estos dos atributos extraen datos del controlador Apex para completar los cuadros Nombre y Relacionado con en el cliente. los entityId y params Los atributos también asocian automáticamente los cuadros Nombre y Relacionado con con una actividad en una página de Salesforce. 

Atributo Requerido / opcional Descripción Notas
número Requerido Número a marcar.
entityId Opcional ID de un objeto relevante, como un contacto o una cuenta, para asociarlo automáticamente con una actividad.  los entityId El atributo es solo para un único registro. Para agregar registros adicionales a Nombre y Relacionado con en los registros de interacción, use el asociaciones propiedad en el objeto params.
params Opcional Cadena JSON para datos adicionales para hacer clic para marcar. Ver objeto params.
<apex:page standardController="Account" extensions="CustomClickToDialController" showHeader="true">
   <support:clickToDial number="3172222222" entityId="{!id}" params="{!json}"/>
</apex:page>

objeto params

Propiedad Tipo de datos Descripción Notas
autoPlace Booleano Si es verdadero o no establecido, la integración realiza una llamada automáticamente. Si es falso, la integración completa el cuadro Nombre o Número con el número de teléfono.
identificador de llamadas Cuerda Número de teléfono que se muestra a los destinatarios de sus llamadas telefónicas. Soporte Telco para identificador de llamadas varía.
callerIdName Cuerda Nombre que se muestra a los destinatarios de sus llamadas telefónicas. Soporte Telco para callerIdName varía.
Interacción Atributos Objeto Pares de atributos clave-valor para agregar a la interacción.
InteracciónTipo Cuerda Tipo de interacción.

Valores: llamar, sms.

Si no InteracciónTipo se proporciona, el valor predeterminado es llamar.

queueId Cuerda ID de la cola para realizar una llamada o enviar un mensaje SMS en nombre de.
asociaciones Objeto Objeto único o una matriz de objetos para asociar automáticamente con una actividad.

Utilice el siguiente formato para params objeto. La API Salesforce JSON.serialize utiliza este formato para asociaciones para serializar objetos como contacto y cuenta.

{
    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'
            }
        }
    ]
}

Para obtener más información sobre este componente, consulte soporte: clickToDial en la documentación de Salesforce.

Controlador Apex

El controlador Apex realiza las siguientes acciones:

  • Recupera datos de backend de Salesforce.
  • Genera cadenas JSON utilizando Salesforce JSON.serialize API.
  • Agrega estos datos como valores para los atributos entityId y params en el componente de clic para marcar en las páginas personalizadas de Visualforce.
  • Devuelve quién / qué registros.
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();
    }
}

Todos los registros de Quién devueltos aparecen en la lista Nombre en el registro de interacción. Si solo se devuelve un registro de Quién, el registro se asocia automáticamente con el cuadro Nombre en el registro de interacción.

Todos devolvieron Qué registros aparecen en la lista Relacionados con en el registro de interacción. Si solo se devuelve un registro Qué, el registro se asocia automáticamente con el cuadro Relacionado con en el registro de interacción.

Asociaciones automáticas en los cuadros Nombre y Relacionado con

Para más información, ver Clic para marcar y Configurar clic para marcar.

Para obtener más información sobre la integración, consulte Acerca de Genesys Cloud para Salesforce.