Última actualización el 23 de febrero de 2022 por Rakesh Gupta
Gran idea o pregunta duradera:
No queremos trabajar los fines de semana o días festivos, ¡todos lo entendemos! Si es así, ¿cree que nuestros clientes o prospectos lo hacen ?
Si tiene dudas, intente enviar un correo electrónico a sus prospectos para comprar una casa en Navidad. ¿O qué tal enviar un correo electrónico de renovación de contrato a sus clientes en un fin de semana? Tasa de éxito si estas acciones no es demasiado difícil de estimar, ¿verdad?
Entiendes mi punto.
Uno de los principios cardinales del marketing es enviar un correo electrónico de solicitud a un cliente o prospecto en el momento más oportuno : los fines de semana o los días festivos no cumplen con los requisitos.
No es de extrañar, entonces, que una de las solicitudes más comunes que recibimos de Ohana sea consejos sobre cómo omitir la activación de alertas por correo electrónico , u otras automatizaciones de procesos comerciales, los fines de semana o días festivos .
Así como la probabilidad de que alguien busque comprar una casa en Navidad es baja. Aún menor es la probabilidad de que alguien revise su correo electrónico corporativo durante un fin de semana para firmar un documento de renovación de contrato.
Si es así, la pregunta es, ¿cómo podemos omitir el trabajo programado los fines de semana o días festivos?
O, ¿cómo podemos omitir el Flujo activado por programación los fines de semana o días festivos?
En otras palabras, ¿existe alguna manera de manejar tales escenarios en Salesforce? ¿Tiene Salesforce funciones, o trucos, para administrar fácilmente dichos requisitos?
Ahora bien, no se nos conoce como Salesforce Ninjas por nada: ¡ni aceptamos ni damos un 'no' como respuesta! Entonces, ¡comencemos usando nuestro sombrero para pensar listo para usar!
Comencemos con un caso de uso comercial.
Objetivos:
¡Esta publicación de blog nos ayudará a aprender cómo aplicar los siguientes conocimientos y herramientas para garantizar el mayor ROI en los puntos de contacto del cliente !:
- Cuándo usar la acción Invocable de Apex con Flow
- Comprender la clase BusinesshHours y sus métodos asociados
- Comprender la anotación @InvocableMethod
- Cómo llamar a un método de Apex usando Flow para omitir la activación de Flow los fines de semana o días festivos
Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). Desarrolló un proceso automatizado (que se ejecuta todas las mañanas a las 08:00 am). El proceso asigna automáticamente la aprobación pendiente al Director Financiero de la empresa.
El proceso funciona a la perfección hasta que Warren recibe una solicitud de mejora para omitir el trabajo automatizado los fines de semana y días festivos. ¡¡Ay!!
Lea primero estos artículos:
Enfoque de Campeón de Automatización (I-do):
En este artículo, utilizaremos la clase de base de datos llamada BusinessHours del código Apex. Asegúrate de revisarlo. Utilice los métodos BusinessHours para establecer el horario comercial en el que opera su equipo de atención al cliente. A partir del lanzamiento de Spring'22 , no es posible acceder directamente al método BusinessHours desde Flow, por eso estamos usando la clase Apex Invocable.
Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.
Práctica guiada (nosotros hacemos):
Hay 3 pasos para resolver el requisito empresarial de Warren mediante Salesforce Flow. Debemos:
- Establecer horario comercial y días festivos
- Crear clase de Apex y clase de prueba
- Flujo de fuerza de ventas
- Clonar un flujo existente
- Crear una variable para almacenar el resultado de la llamada de Apex
- Agregar acción: llame al método BusinessHours a través de Invocable Apex
- Agregue un elemento de decisión para verificar si la fecha/hora dada es feriado
Paso 1: Configuración del horario comercial y días festivos
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Horario comercial .
- Establezca el horario comercial y los días festivos , como se muestra en la siguiente captura de pantalla:
Paso 2: Cree una clase de Apex y una clase de prueba
Ahora, tenemos que entender una nueva anotación de Apex, es decir , . @MétodoInvocable . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde otro lugar que no sea Apex .
La clase CustomBusinessHourAndHolidayHandler contiene un único método que pasa la fecha/hora para encontrar si la fecha/hora objetivo especificada ocurre dentro del horario comercial, incluidos los días festivos. Cree la siguiente clase en su organización.
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Clases de Apex .
- Haga clic en el botón Nuevo .
- Copie el código de GitHub y péguelo en su clase de Apex.
- Haga clic en Guardar.
Paso 3.1: Flujo de Salesforce: clonar un flujo existente
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos y luego haga clic en el Nombre del flujo , que se modificará. En este caso, reasignar solicitudes pendientes de aprobación .
- Haga clic en el botón Guardar como en la parte superior derecha de la página de detalles del flujo.
- En la ventana emergente ingrese el Nombre . Se recomienda actualizar la descripción con una nota sobre lo que cambió. El nombre de la API no se puede actualizar.
- Para Versión de API para ejecutar el flujo , seleccione siempre la última versión, en este escenario, 54 .
- Haga clic en Listo .
Paso 3.2: Flujo de Salesforce: cree una variable para almacenar el resultado de la llamada de Apex
- En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para almacenar los resultados de las llamadas de Apex.
- Ingrese la siguiente información:
- Tipo de recurso : Variable
- Nombre de la API : varB_IsHoliday
- Tipo de datos : booleano
- Valor predeterminado : {!$Constante global.Falso}
- Comprobar disponible para entrada
- Comprobar disponible para la salida
- Haga clic en Listo .
Paso 3.3: Flujo de Salesforce: agregar una acción para llamar al método BusinessHours a través de Apex invocable
- En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
- Seleccione la clase de Apex CustomBusinessHourAndHolidayHandler .
- Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
- Establecer valores de entrada:
- Campo: Campo de fecha/hora
- Valor: {!$Flow.CurrentDateTime}
- Almacenar valores de salida
- Campo: outputIsBusinessHour
- Valor: {!varB_IsHoliday}
- Campo: outputIsBusinessHour
- Haga clic en Listo .
Paso 3.4: Flujo de Salesforce: uso del elemento de decisión para verificar si la fecha/hora dadas son días festivos
Ahora usaremos el elemento Decisión para verificar si la fecha/hora dada está dentro del horario comercial, incluidos los días festivos.
- En Flow Designer, haga clic en el icono + y seleccione Elemento de decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!$Record.StageName}
- Operador: Se Cambia
- Valor: {!$ConstanteGlobal.True}
- Fila 1:
Al final, Martin's Flow se verá como la siguiente captura de pantalla:
¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .
Evaluación formativa:
¡Quiero saber de ti!
¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
Correctora : - Munira Majmundar
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/02/23/scheduled-job-to-exclude-weekend-and-holidays/