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

Puede utilizar los puntos de extensión para personalizar el comportamiento de la pantalla emergente en Genesys Cloud para Salesforce. Los puntos de extensión utilizan el lenguaje de programación Salesforce Apex. 

Nota: Este artículo de personalización avanzada está destinado a desarrolladores que estén familiarizados con Salesforce.

Prerrequisitos

  • Una versión del paquete administrado que incluye la sección Configuración de punto de extensión. Para más información, ver Configurar puntos de extensión.

En Salesforce, cree un solo archivo Apex con una clase Apex que implemente la purecloud.CTIExtension.ScreenPop interfaz. Defina la clase Apex como global para que la integración pueda llamar al código.

interfaz purecloud.CTIExtension.ScreenPop

Contiene una firma de método que puede definir para personalizar la función de pantalla emergente en Genesys Cloud para Salesforce.

Uso

Utilice la firma del método en el purecloud.CTIExtension.ScreenPop interfaz para definir cómo funciona la función emergente de pantalla.

método onScreenPop

Se utiliza para controlar la lógica emergente de la pantalla.

Este método se llama para una interacción de alerta entrante. onScreenPop solo se llama una vez para cada agente para cada interacción de alerta. El método puede devolver datos que cambian el comportamiento predeterminado de la pantalla emergente.

Si el código Apex desencadena una excepción, la integración realiza el comportamiento de pantalla emergente predeterminado. Si no se devuelve ningún valor, la integración suprime el comportamiento de la pantalla emergente.

Propiedades de entrada

Las siguientes propiedades se incluyen en los datos JSON que se pasan al método.

Nombre Tipo de datos Descripción Notas
searchValue Cuerda Valor de búsqueda. Valores de ejemplo: dirección de correo electrónico (para interacciones de chat y correo electrónico), número de teléfono (para interacciones de voz y SMS).
Interacción Objeto Objeto de datos que representa datos de interacción. Para obtener más información, consulte el formato del objeto de datos en Información de conversación condensada.

Propiedades de salida

Importante: Utilice solo una de las siguientes propiedades en los datos JSON devueltos por onScreenPop método.
Nombre Tipo de datos Descripción Notas
url Cuerda URL de una página en Salesforce.  Puede ser una página estándar de Salesforce, una página de Visualforce o una nueva página de registro con datos rellenados previamente de un flujo de arquitecto.
searchValue Cuerda Valor buscado en los registros de Salesforce. 

Puede ser un número de caso, un número de teléfono, un nombre de contacto u otros elementos. 

Para obtener más información, consulte la sección de configuración de diseño de Softphone en Pantalla emergente en Genesys Cloud para Salesforce.

defaultScreenPop Booleano Realiza una pantalla emergente predeterminada (verdadero) o no realiza una pantalla emergente predeterminada (falso).

Para obtener más información, consulte la sección Comportamiento predeterminado de la pantalla emergente en Pantalla emergente en Genesys Cloud para Salesforce.

Para más información, ver Pantalla emergente en Genesys Cloud para Salesforce.

Ejemplo

Importante:
  • Defina la clase Apex como global para que la integración pueda llamar al código.
  • Si implementa más de un punto de extensión (o interfaz), colóquelos todos en el mismo archivo Apex.
global class MyCTIExtensions implements purecloud.CTIExtension.ScreenPop {
    public String onScreenPop(String data) {
        // Example: Find a recent Case record by phone number. if not found, fall back to default screen pop behavior.
        Map<String, Object> screenPopData = (Map<String, Object>) JSON.deserializeUntyped(data);
        Map<String, Object> dataToReturn = new Map<String, Object>();
        String phoneNumber = (String) screenPopData.get('searchValue');
        if (String.isNotBlank(phoneNumber)) {
            List cases = [SELECT Id FROM Case WHERE ContactPhone =: phoneNumber ORDER BY LastModifiedDate DESC LIMIT 1];
            if (cases.size() > 0) {
                dataToReturn.put('url', cases.get(0).Id);
                return JSON.serialize(dataToReturn);
            }
        }
        dataToReturn.put('defaultScreenPop', true);
        return JSON.serialize(dataToReturn);
    }
}

Para más información, ver Puntos de extensión en Genesys Cloud para Salesforce.

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