Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Siga y complete un trailmix de Learn MOAR Winter '23 para administradores o desarrolladores antes del 30 de noviembre de 2022 a las 11:59 p. Se aplican restricciones. Aprenda cómo participar y revise las reglas oficiales visitando la página de Trailhead Quests .
Introducción de acciones externas
Con las acciones externas disponibles en Winter '23, Salesforce permite a las empresas aprovechar los servicios externos y las aplicaciones de terceros fuera de Salesforce desde sus programas de Engagement Studio. Por ejemplo, es posible que desee registrar prospectos para un seminario web en su nombre o utilizar un servicio externo para enviar un mensaje SMS. Asegúrese de consultar laGuía de la API de Pardot para obtener más información.
La clave para usar Acciones externas radica en la capacidad de invocar Acciones invocables de Salesforce. Las acciones invocables le permiten agregar más funciones a su aplicación, ya sea con acciones estándar, como publicar en Chatter y enviar un correo electrónico, o acciones personalizadas mediante Apex que puede escribir usted mismo para satisfacer sus necesidades únicas. También puede empaquetar sus acciones invocables personalizadas e implementarlas en AppExchange para que otros puedan usar su función.
En esta publicación, veremos cómo crear su propia acción invocable personalizada con un servicio externo que luego puede usar con Acciones externas.
Comience con las acciones externas
Para este ejemplo, crearemos una integración con Twilio para enviar mensajes SMS desde Engagement Studio. Veamos primero los pasos que un administrador debe seguir para crear la credencial con nombre, el servicio externo, la clase Apex de acción invocable y la extensión de la aplicación de marketing. Después de eso, veremos los pasos que tomaría un vendedor para crear un nodo de acción en un programa de Engagement Studio que usa la acción externa recién creada.
Pasos para el administrador
1) Configuración de autenticación
Para comenzar, diríjase a la sección Configuración en Salesforce, donde crearemos la credencial con nombre y el servicio externo para Twilio. Necesitaremos saber el nombre de usuario y la contraseña de la API que hemos configurado en el servicio Twilio (Twilio incluso ofrece una cuenta de prueba gratuita para que podamos darle una vuelta). Cuando esté listo, cree una credencial con nombre como en la imagen a continuación (usando el nombre de usuario/contraseña mencionados).
Nota: una credencial con nombre especifica la URL de un extremo de llamada y sus parámetros de autenticación requeridos en una definición.
A continuación, cree un servicio externo (que también se encuentra en la sección Configuración) utilizando esa credencial con nombre. Al crear servicios externos, necesitaremos definir un esquema para ese servicio, que se basa en las especificaciones de OpenAPI 2.0 . La mayoría de los proveedores proporcionan documentación de Swagger para su API, que se puede convertir a la especificación de API abierta. Aquí hay un esquema de ejemplo en formato JSON:
Al crear el servicio externo y colocar el esquema JSON, las páginas de configuración deberían verse así:
Luego, navegaremos por el resto de las pantallas, asegurándonos de que la operación que definimos en el esquema esté allí con los parámetros de entrada y salida correctos.
La última página es solo un resumen del servicio que hemos creado. Una vez que presionamos Listo, nuestro nuevo servicio está listo.
2) Crear una acción invocable
Lo siguiente que debemos hacer es crear la clase de Apex que usará nuestro nuevo servicio externo y realizará llamadas a la API de Twilio. No necesariamente necesitamos crear una clase de Apex; en muchos casos, podríamos simplemente usar el servicio externo que creamos como la acción invocable y omitir esta sección. Sin embargo, es posible que tengamos una lógica comercial única, manejo de errores, registro, etc. que querríamos realizar. En ese caso, crearíamos una clase de Apex para hacer ese tipo de trabajo.
Para hacer esto, abra su consola de desarrollador, cree una nueva clase de Apex y SendTwilioSmsMessageActionMessage
.
<dx-code-block title language code-block="public class SendTwilioSmsMessageActionMessage { @InvocableMethod(label='Send SMS via Twilio' description='Sends an SMS message via TwilioES') public static void sendSms(List twilioReq){ Map payload = new Map{ ‘To’ => twilioReq[0].To, ‘MessagingServiceSid’ => twilioReq[0].messageServiceSid, ‘Body’ => twilioReq[0].Body }; HttpRequest req = new HttpRequest(); req.setEndpoint(‘callout:TwilioNC/2010-04-01/Accounts/’ + twilioReq[0].accountSid + ‘/Messages.json’); req.setMethod(‘POST’); req.setHeader(‘Accept’, ‘application/json’); req.setHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’); req.setBody(urlEncode(payload)); Http http = new Http(); HTTPResponse res = http.send(req); System.debug(‘========== res.getBody():’ + res.getBody()); } public static String urlEncode(Map vals) { String result = »; for(String thisKey : vals.keySet()) { result += EncodingUtil.urlEncode(thisKey, ‘UTF-8’) + ‘=’ + EncodingUtil.urlEncode(vals.get(thisKey), ‘UTF-8’) + ‘&’; } return result.removeEnd(‘&’); } public class TwilioSmsMessageActionRequest { @InvocableVariable(required=true) public String accountSid; @InvocableVariable(required=true) public String messageServiceSid; @InvocableVariable(required=true) public String To; @InvocableVariable(required=true) public String Body; }
}»>
Hay algunas cosas notables en esta clase de Apex:
- La anotación
@InvocableMethod
(ver documentos ) es necesaria para cualquier acción externa que dependa de la funcionalidad de las acciones invocables. - Al enviar un mensaje SMS de Twilio, hay ciertas cosas que son exclusivas de ese mensaje o del remitente, por lo que queremos que sean configurables. Es por eso que hemos usado la anotación
@InvocableMethod
para lasaccoundSid
,messageServiceSid
,To
yBody
. Estos se utilizarán como variables de entrada en nuestro programa Engagement Studio. - La credencial con nombre que creamos anteriormente (
TwilioNC
) se usa al crear el punto final de la siguiente manera:- req.setEndpoint('llamada:TwilioNC/2010-04-01/Cuentas/' + twilioReq[0].accountSid + '/Messages.json');
3) Crear la extensión y configurar la acción externa
Una vez que hayamos guardado nuestra nueva clase Twilio SMS Apex, necesitaremos crear una nueva extensión de aplicación de marketing y una acción que la use.
Por lo tanto, vaya a la página Configuración de marketing y luego a la sección Extensiones de aplicaciones de marketing. Aquí, crearemos uno nuevo y lo llamaremos "Twilio".
Luego, necesitaremos agregar la clase Apex de acción invocable que creamos anteriormente como una acción en la pestaña relacionada de la extensión. Podemos ver eso cuando buscamos el nombre de clase de Apex que creamos antes ( SendTwilioSmsMessageActionMessage
); aparece en el cuadro Acción invocable para la acción.
El esquema de acción y los parámetros de acción se completan automáticamente para nosotros mediante la acción invocable que creamos antes, por lo que solo podemos aceptar los valores predeterminados. Pero para mayor claridad, el esquema de acción es el siguiente:
Podemos ver que el esquema se trata solo de definir las propiedades de entrada necesarias para pasar a la acción invocable, así como cuáles se requieren al llamar a la acción invocable.
Para nuestra acción de ejemplo, nos hemos tomado la libertad de completar los campos accountSid
, messageSid
y To
aquí en el esquema, para que nuestro vendedor no tenga que hacerlo. El accountSid
y messageServiceSid
son exclusivos de la cuenta de Twilio del remitente y deben recuperarse desde allí.
Si estuviéramos planeando empaquetar esto e implementarlo en AppExchange, no querríamos codificar de forma rígida el accountSid
y el messageSid
como lo hemos hecho aquí. Crearíamos una pantalla de configuración para capturar esos valores. Para el campo To
, hemos ingresado el valor HML (Lenguaje de marcado de la barra) que extraerá automáticamente el número de teléfono del destinatario de su cuenta.
Los parámetros de acciones en este ejemplo indican que hemos creado un tipo de Apex. Pero también podría ser estándar o Flow.
También debemos asignar esta extensión a la unidad de negocio correcta.
El siguiente paso habilita la extensión de la aplicación externa que creamos para sincronizar con Engagement Studio. Tendremos que asignar la clase de Apex ( SendTwilioSmsMessageActionMessage
) al perfil de usuario de integración B2BMA.
Por lo tanto, navegue hasta ese perfil de usuario, desplácese hasta la sección Acceso a clase de Apex habilitado y presione Editar . Aquí, podemos ver la clase de Apex en la columna de la izquierda, por lo que solo debemos presionar Agregar para agregarla a la columna de la derecha y habilitarla, y luego presionar el botón Guardar . Si regresamos a la página Perfil, podemos ver que la clase ahora está habilitada.
Eso es todo para el trabajo de administración. En este punto, podríamos entregárselo a nuestra gente de marketing, para que ahora puedan usar nuestra acción recién creada en Engagement Studio.
Pasos para el vendedor
Los especialistas en marketing querrán enviar mensajes SMS a sus clientes potenciales a través de Twilio, por lo que vamos a crear un programa simple que lo muestre. Primero, sigamos adelante y creemos nuestro nuevo programa. Luego, seleccionaremos nuestra nueva acción llamada TwilioSendSMS
.
Todo lo que tenemos que hacer ahora es ponerlo en el cuerpo del mensaje SMS y listo. ¡No queda nada más que hacer después de esto, excepto ejecutar nuestro nuevo programa Engagement Studio!
¿Eres un ISV?
Si somos un ISV que quiere que otros se integren fácilmente con nuestro servicio externo, querremos crear un paquete administrado y cargarlo en AppExchange. Esto permite que otros utilicen fácilmente la acción invocable que hemos escrito y les niega la necesidad de tener que escribir su propio código Apex. También nos gustaría crear una pantalla de configuración para nuestro paquete que solicite las credenciales de Twilio y la unidad de negocios para usar en la integración.
¡Vea estas nuevas funciones en acción!
No se olvide de ver la repetición de Winter '23 Developer Preview para ver demostraciones de un subconjunto de estas nuevas y emocionantes funciones. ¡Asegúrese de consultar Learn MOAR Winter '23 for Developers Trailmix para obtener más información sobre Learn MOAR!
Sobre el Autor
Gary Ogden es ingeniero en Salesforce. Ha estado creando grandes cosas para los clientes de Salesforce durante más de seis años. Sigue a Gary en LinkedIn .
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Agregar a Slack Suscríbete a RSS
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/09/learn-moar-in-winter-23-with-pardot-external-actions.html