Categories
Developers

Integración de API de zona horaria de Salesforce y Google: traducción de coordenadas a información de zona horaria

Última actualización el 29 de junio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede aprovechar la API de zona horaria de Google para actualizar automáticamente la información de zona horaria de un cliente potencial en función de sus coordenadas geográficas?

Objetivos:

Después de leer este blog, podrá:

Jestilla Zetkin se desempeña actualmente como arquitecta de Salesforce en Gurukul On Cloud (GoC). El Director Comercial le ha confiado a Jestilla un desafío único. El objetivo es asegurarse de que, en el momento de la creación, los prospectos de Salesforce (creados a través de Web-to-lead) reciban los detalles exactos de la zona horaria, que se determinan en función de sus respectivas coordenadas geográficas.

  1. El caso de uso comercial requiere que usemos la API de zona horaria de Google para actualizar automáticamente cuatro campos específicos en los clientes potenciales:
    1. dstOffset (la compensación del horario de verano en segundos)
    2. rawOffset (el desplazamiento de la hora universal coordinada para la zona horaria de la ubicación dada)
    3. timeZoneId (una cadena que identifica de forma única la zona horaria)
    4. y timeZoneName (el nombre largo de la zona horaria)
  2. En caso de una respuesta fallida, instituya una acción de contingencia para crear una tarea para el propietario designado del cliente potencial.

¿Qué es la API de zona horaria de Google?

Hay muchas posibilidades de que su base de clientes esté repartida en varias zonas horarias. Este factor puede influir en gran medida en sus interacciones con ellos, especialmente al programar llamadas, reuniones o enviar mensajes automáticos. La plataforma de Salesforce ofrece un entorno altamente adaptable para almacenar y administrar datos de clientes, pero de forma predeterminada, no proporciona una forma de registrar automáticamente la zona horaria del cliente potencial en función de sus coordenadas geográficas.

La API de zona horaria de Google es un servicio ofrecido por Google como parte de su plataforma Google Maps. La API proporciona datos de zona horaria para cualquier ubicación en todo el mundo en función de las coordenadas de latitud y longitud. Este servicio puede ser particularmente útil para los desarrolladores que necesitan ajustar la comunicación de acuerdo con la ubicación geográfica de un cliente potencial o contacto o para empresas que operan en diferentes zonas horarias.

La API de zona horaria proporciona la siguiente información:

  • El ID de la zona horaria , según lo define la base de datos de zonas horarias de la IANA (por ejemplo, America/New_York ).
  • El nombre de la zona horaria (por ejemplo, hora de verano del este ).
  • La diferencia horaria con respecto a la hora universal coordinada (UTC) sin tener en cuenta el horario de verano (rawOffset).
  • El desfase horario debido al horario de verano (dstOffset).

Tenga en cuenta que la API de zona horaria de Google está sujeta a cargos, por lo que es importante comprender las implicaciones de costos antes de implementarla.

¿ Cómo funciona la API de zona horaria de Google?

La API de zona horaria de Google funciona tomando coordenadas de latitud y longitud y devolviendo datos de zona horaria en formato JSON. Aquí hay un ejemplo básico de cómo usarlo.

La siguiente solicitud HTTP GET obtiene información de zona horaria para una ubicación en la latitud 40.712776 y longitud -74.005974 (ciudad de Nueva York), y asume que está realizando la solicitud en una determinada marca de tiempo (marca de tiempo UNIX).

 https://maps.googleapis.com/maps/api/timezone/json?location=40.712776,-74.005974&timestamp=1458000000&key=YOUR_API_KEY

En la URL de solicitud anterior, reemplace YOUR_API_KEY con su clave API real.

Aquí hay una respuesta de muestra en formato JSON que la API podría devolver:


{ "dstOffset": 3600, "compensación sin procesar": -18000, "estado": "OK", "timeZoneId": "América/Nueva_York", "timeZoneName" : "Hora de verano del Este"
}

La respuesta incluye la siguiente información:

  1. dstOffset : La compensación del horario de verano en segundos. Será cero si la zona horaria no está en el horario de verano durante la marca de tiempo especificada.
  2. rawOffset : el desplazamiento de UTC (sin contar el horario de verano) en segundos.
  3. estado : una cadena que indica el estado de la solicitud. “OK” significa que la solicitud fue exitosa.
  4. timeZoneId : una cadena que contiene el ID "tz" de la zona horaria (por ejemplo, "América/Nueva_York").
  5. timeZoneName : una cadena que contiene el nombre de forma larga de la zona horaria (por ejemplo, "hora de verano del este").

Recuerde, en la URL de solicitud, se requiere el parámetro de marca de tiempo y el parámetro de ubicación espera coordenadas de latitud y longitud.

  1. Marca de tiempo : el tiempo deseado en segundos desde la medianoche del 1 de enero de 1970 UTC. La API de zona horaria utiliza la marca de tiempo para determinar si se debe aplicar o no el horario de verano, según la zona horaria de la ubicación.
  2. Ubicación : una tupla de latitud, longitud separada por comas, ubicación = 40.712776, -74.005974, que representa la ubicación para buscar.

Además, no olvide incluir su clave API.

Beneficios de usar la API de zona horaria de Google

La API de zona horaria de Google ofrece una serie de beneficios significativos, especialmente para desarrolladores y empresas que necesitan operar en diferentes zonas horarias. Estos son algunos de los beneficios clave:

  1. Precisión : la API de zona horaria de Google proporciona datos de zona horaria precisos para cualquier ubicación en todo el mundo. Tiene en cuenta tanto la zona horaria 'sin procesar' como el horario de verano, lo que garantiza que siempre tenga la hora local correcta.
  2. Facilidad de uso : la API es fácil de usar y solo requiere la latitud y la longitud como entradas. Devuelve datos en un formato JSON estructurado, que es fácil de analizar y usar en varias aplicaciones.
  3. Cobertura global : la API proporciona datos de zona horaria para ubicaciones en todo el mundo, lo que la hace útil para empresas globales y aplicaciones con bases de usuarios internacionales.
  4. Confiabilidad : como servicio proporcionado por Google, es altamente confiable, lo que garantiza que tenga acceso constante a los datos de la zona horaria cuando los necesite.
  5. Integración : se puede integrar en una variedad de aplicaciones y plataformas, incluidas aplicaciones móviles, servicios web y plataformas de CRM como Salesforce. Esto permite funcionalidades como la programación de comunicaciones en diferentes franjas horarias, etc.
  6. Información actualizada : Google actualiza continuamente sus bases de datos, lo que garantiza que los datos devueltos por la API de zona horaria, como los cambios de horario de verano, estén siempre actualizados.

Al aprovechar estos beneficios, las empresas pueden mejorar la experiencia del cliente, aumentar la eficiencia operativa y garantizar un registro de datos preciso, entre otras ventajas.

Antes de comenzar a usar la API de zona horaria, necesita un proyecto con una cuenta de facturación y la API de zona horaria habilitada. Aquí hay una guía paso a paso para configurar su proyecto de Google Cloud y habilitar la API de zona horaria:

Paso 1: crea o selecciona tu proyecto

  1. Navegue a Google Cloud Console .
  2. Si ha creado un proyecto anteriormente, puede seleccionarlo de la lista desplegable en la parte superior. De lo contrario, haga clic en Nuevo proyecto en la parte superior derecha.
  3. Asigne un nombre a su proyecto y, opcionalmente, también puede editar el ID del proyecto.
  4. Haga clic en Crear para crear el proyecto.

Paso 2: configurar una cuenta de facturación

Debe vincular una cuenta de facturación a su proyecto para usar la API de zona horaria de Google. Así es cómo:

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y haga clic en Facturación .
  2. Si tiene una o más cuentas de facturación, elija una cuenta y asóciela con su proyecto. De lo contrario, haga clic en Crear cuenta , complete el formulario para crear una nueva cuenta de facturación y luego asóciela con su proyecto.

Paso 3: habilite la API de zona horaria

Una vez que haya configurado su proyecto y su cuenta de facturación, puede habilitar la API de zona horaria.

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | biblioteca
  2. En la biblioteca de API, busque API de zona horaria y selecciónela.
  3. En la página de la API de zona horaria, haga clic en Habilitar .

Paso 4: Genere su clave API

Finalmente, necesita una clave de API para autenticar sus solicitudes en la API de zona horaria.

  1. En Google Cloud Console, abra el menú del lado izquierdo de la consola y vaya a API y servicios | Cartas credenciales.
  2. Haga clic en el botón + CREAR CREDENCIALES en la parte superior y seleccione Clave API .
  3. Su nueva clave de API se creará y se mostrará. Cópielo y guárdelo de forma segura. Necesitará esta clave para realizar solicitudes a la API de zona horaria.

Ahora, su proyecto de Google Cloud está todo configurado y puede comenzar a usar la API de zona horaria de Google.

👉 Si bien la API de zona horaria es compatible con OAuth 2.0 y la cuenta de servicio para la autenticación, esta guía se enfoca en el método de clave de API más simple por razones de brevedad. Si necesita un método de autenticación más seguro o complejo, consulte la documentación de autenticación oficial de Google.

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver utilizando varias herramientas de automatización como Apex Trigger y otras, utilizaremos Salesforce Flow y la función de flujo HTTP Callout (GET) recientemente introducida .

HTTP Callout extrae o envía datos entre la base de datos de Salesforce y un sistema externo a través de Flow Builder sin usar código. Puede configurar integraciones directas según sea necesario sin tener que trabajar con un desarrollador o llamar a una herramienta de middleware, como Mulesoft. Después de configurar la acción de llamada HTTP en un flujo, Flow Builder genera automáticamente un registro de servicio externo , una acción invocable y una clase de Apex que puede usar para crear un recurso definido por Apex para flujos. A continuación, puede utilizar la salida de datos de la solicitud de la API como entrada en Flow Builder y en Salesforce.

Puede usar HTTP Callout para conectar un flujo a una variedad de API.

  • Obtener información de direcciones usando una API de mapa
  • Obtén las condiciones meteorológicas con una API de servicios meteorológicos
  • Genere el código de barras con una API de servicio de código de barras
  • Obtenga información de autorización de pago con una API de procesamiento de pagos
  • y mucho más

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.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Jestilla mediante Record-Triggered After-Save Flow . Debemos:

  1. Cree campos personalizados en el cliente potencial para almacenar la respuesta
  2. Crear una credencial con nombre
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue una fórmula para calcular la marca de tiempo
    3. Configurar una llamada HTTP GET para la API de zona horaria
    4. Agregue un elemento de decisión para verificar el código de respuesta
    5. Agregue un elemento Actualizar registros para actualizar el prospecto
    6. Agregue un elemento Crear registros para crear una tarea para que el propietario del cliente potencial maneje la respuesta de error

Paso 1: Cree campos personalizados en el objeto principal para almacenar la respuesta

En este paso, hemos establecido campos personalizados dentro del objeto principal. Estos servirán como repositorios para los datos de respuesta de la API de zona horaria de Google.

Etiqueta de campo Nombre de API de campo Tipo de datos
dstOffset dstOffset __c Número (18,0)
rawOffset rawOffset__c Número (18,0)
Posición actual Posición_actual__c Geolocalización
Identificación de zona horaria Time_Zone_Id__c Texto (255)
Nombre de zona horaria
Nombre_de_la_zona_horaria__c Texto (255)

Paso 2: crear una credencial con nombre

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, ingrese Credenciales con nombre y luego seleccione Credenciales con nombre .
  3. Haga clic en Nuevo legado .
  4. Rellene la página con la URL y los parámetros de autenticación del extremo de la llamada.
  5. Haga clic en Guardar .

Paso 3.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos , luego haga clic en Nuevo flujo .
  4. Seleccione la opción Flujo activado por registro , haga clic en Crear
    1. Objeto: Plomo
    2. Activar el flujo cuando: se crea un registro
    3. Establecer condiciones de entrada: se cumplen todas las condiciones (Y)
    4. Fila 1:
      1. Campo : Posición_Actual__Latitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    5. Haga clic en + Agregar condición
    6. Fila 2:
      1. Campo : Posición_Actual__Longitud__s
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
    7. Optimizar el flujo para : acción y registros relacionados
    8. Elija la opción para incluir una ruta de ejecución asíncrona para acceder a un sistema externo después de que la transacción original para el registro de activación se confirme con éxito .
  5. Haga clic en Listo.

Paso 3.2: fórmula para calcular la marca de tiempo

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para calcular los segundos desde la época de Unix (1 de enero de 1970, 00:00:00).
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forN_Timestamp
    3. Tipo de datos : Número
    4. Lugares decimales : 0
    5. Fórmula : RONDA((AHORA() – FECHAHORAVALUE(“1970-01-01 00:00:00”)) * 24 * 60 * 60, 0)
  3. Haga clic en Listo.

Paso 3.3: configurar una acción de llamada HTTP GET

HTTP Callout lo guía a través de la introducción de los detalles sobre el servicio HTTP basado en web o el punto final de la API REST al que se está conectando. Después de completar la configuración, invoca la acción en un flujo.

  1. En el nodo Ejecutar asincrónicamente , seleccione Acción .
  2. Haga clic en + Crear llamada HTTP .
  3. Configure el servicio externo que conecta Salesforce con la API basada en HTTP.
    1. Introduzca un Nombre para el servicio externo.
    2. Seleccione la credencial con nombre que creó en el paso 2 .
    3. Haga clic en Siguiente .
  4. El siguiente paso es configurar la acción invocable que puede usar en Flow Builder o en Salesforce.
    1. Para Etiqueta , ingrese la acción que realiza la llamada.
    2. Método : OBTENER
    3. Agregue el extremo de la URL para la solicitud.
      1. Ruta URL : /maps/api/timezone/json
    4. Agregue claves de parámetros de consulta si la API a la que está llamando las tiene. Cuando usa esta acción en un flujo, ingresa valores para las claves definidas.
      1. Haga clic en Agregar clave
        1. Clave : ubicación
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
      2. Haga clic en Agregar clave
        1. Clave : marca de tiempo
        2. Tipo de datos : entero
        3. Requerido : Verdadero
      3. Haga clic en Agregar clave
        1. Clave: clave
        2. Tipo de datos : cadena
        3. Requerido : Verdadero
  5. Proporcione un cuerpo de respuesta de API de muestra. Salesforce genera una estructura de datos a partir de la respuesta de muestra.
    1. Vaya a la sección Proporcione una respuesta de muestra .
    2. Haga clic en Nuevo .
    3. Pegue una respuesta JSON de muestra .
       { "timeZoneName": "cadena de muestra", "compensación sin procesar": 1, "timeZoneId": "cadena de muestra", "errorMessage": "cadena de muestra", "dstOffset": 1, "estado": "cadena de muestra"
      }

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/06/29/salesforce-and-googles-time-zone-api-integration-translating-coordinates-into-time-zone-info-2/

Categories
Developers

Eliminación definitiva de registros con Salesforce Flow

Última actualización el 22 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo eliminar registros de Salesforce utilizando Flow?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la anotación @InvocableMethod
  • Más información sobre el método database.emptyRecycleBin
  • Configurar la acción de Apex para eliminar registros de forma permanente de Flow
  • Configurar el flujo de pantalla con el elemento Eliminar registro
  • Y mucho más

¿Qué es la eliminación completa?

La eliminación definitiva es la eliminación permanente de los registros especificados de la Papelera de reciclaje. Cuando los datos se eliminan de forma permanente, es casi imposible recuperarlos. Esto generalmente se logra a través de los métodos Database.EmptyRecycleBin .

Al vaciar los contenedores de reciclaje, tenga en cuenta las siguientes reglas y pautas:

  • Una vez que los registros se eliminan de la Papelera de reciclaje mediante esta llamada, se pueden consultar mediante queryAll() durante algún tiempo. Por lo general, este tiempo es de 24 horas, pero puede ser más corto o más largo.
  • Una vez que los registros se eliminan mediante la llamada Database.EmptyRecycleBin , no se pueden recuperar.

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Warren tiene un requisito para eliminar clientes potenciales sin correo electrónico. Está construyendo un flujo de pantalla:

  1. Descubra todos los clientes potenciales sin correo electrónico
  2. Eliminar definitivamente tales clientes potenciales

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras, usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

En este artículo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El método EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al método EmptyRecycleBin 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.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito comercial de Warren usando Screen Flow . Debemos:

  1. Cree una clase de Apex y una clase de prueba para eliminar registros de forma permanente de la Papelera de reciclaje.
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue un elemento Obtener registros para encontrar todos los clientes potenciales sin dirección de correo electrónico
    3. Agregue un elemento de decisión para verificar los clientes potenciales encontrados o no (del paso 2)
    4. Agregue el elemento Eliminar registros para eliminar clientes potenciales
    5. Agregar acción: llame a Empty RecycleBin Invocable Apex Class

Paso 1: Cree una clase de Apex y una clase de prueba

Ahora, tenemos que comprender una nueva anotación de Apex, es decir, @InvocableMethod . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.

La anotación InvocableVariable identifica una variable de clase utilizada como parámetro de entrada o salida para la acción invocable de un método InvocableMethod. Si crea su propia clase personalizada para usarla como entrada o salida de un método invocable, puede anotar variables de miembros de clase individuales para que estén disponibles para el método.

La anotación de variable invocable admite los modificadores que se muestran en este ejemplo.


@InvocableVariable(label='variableLabel' description='variableDescription' requerido=(verdadero | falso))

La clase EmptyRecycleBin contiene dos variables, una para eliminar un solo registro y otra para manejar la eliminación de varios registros. Siéntase libre de pasar el valor a una o ambas variables según sea necesario. Cree la siguiente clase en su organización.


clase pública EmptyRecycleBin { @InvocableMethod(label='Papelera de reciclaje vacía' description='Eliminar permanentemente los registros de la Papelera de reciclaje.' iconName='slds:estándar:record_delete' categoría = 'Acciones de Apex personalizadas') ejecución de vacío estático público (Lista <Solicitudes> lista de solicitudes) { List<SObject> recordstoDelete = New List<SObject>(); para (Solicitudes req: lista de solicitudes) { if(req.obj != null){ recordstoDelete.add(req.obj); } if(req.listofSObjects != null){ recordstoDelete.addAll(req.listofSObjects); } } if(registrosparaEliminar.tamaño()>0){ Database.emptyRecycleBin(registrosparaEliminar); } } Solicitudes de clases públicas{ @InvocableVariable (descripción ='Aceptar un registro de tipo SObject.' requerido=falso) objeto público SObject; @InvocableVariable (descripción ='Aceptar múltiples registros de un tipo SObject.' requerido=falso) public List<SObject> listofSObjects; }
}

Copie el código de GitHub o instálelo usando esta URL .

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2.2: Adición de elementos Obtener registros para encontrar clientes potenciales sin correo electrónico

El siguiente paso es usar el objeto Prospecto para encontrar los prospectos sin dirección de correo electrónico.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Prospecto de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Correo electrónico
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.EmptyString}
  6. Cuántos registros almacenar:
    1. Seleccionar todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .

Paso 2.3: uso del elemento de decisión para verificar la variable de recopilación de registros (del paso 2)

Ahora usaremos el elemento Decisión para comprobar la Variable de recopilación de registros del paso 2 para saber si devuelve el cliente potencial o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Leads}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.4: Agregar acción: eliminar registros para eliminar clientes potenciales

El siguiente paso es eliminar los clientes potenciales que encontramos en el Paso 2.2 . Para ello utilizaremos el elemento Eliminar Registros .

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Eliminar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
  4. Selecciona el   {!Get_Leads} de la lista desplegable.
  5. Haga clic en Listo.

Paso 2.5: Adición de una acción para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex invocable EmptyRecycleBin .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Objeto para “listofSObjects” (Entrada) : Lead
    2. Objeto para "obj" (Entrada) : Plomo
  5. Almacenar valores de entrada
    1. listofSObjects : {!Get_Leads}
  6. Haga clic en Listo .

Al final, Warren's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, guarde el flujo.

Prueba de concepto

  1. Creé 201 clientes potenciales sin una dirección de correo electrónico para probar el flujo anterior.
  2. Ahora ejecute el flujo de pantalla y espere a que se complete el flujo.
  3. Vuelva a la Papelera de reciclaje para asegurarse de que los clientes potenciales se hayan eliminado definitivamente.

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/05/22/hard-delete-records-using-salesforce-flow-2/

Categories
Developers

Buscar el siguiente día hábil a partir de una fecha específica

Última actualización el 7 de abril de 2023 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 el fin de semana? Tasa de éxito si estas acciones no es demasiado difícil de estimar, ¿verdad?

Entiendes mi punto.

Este blog es una continuación de mi blog anterior, Omitir el flujo programado en fines de semana y días festivos , donde discutimos cómo averiguar si la fecha objetivo especificada ocurre dentro del horario comercial. Este artículo irá un paso más allá y explicará cómo determinar el siguiente día hábil a partir de la fecha indicada teniendo en cuenta el horario comercial y los días festivos.

Comencemos con un caso de uso comercial.

Objetivos:

En este artículo, el lector aprenderá lo siguiente:

  • 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 averiguar la próxima fecha en que el horario comercial está abierto

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). Creó la automatización para enviar la notificación automática por correo electrónico al cliente después de la creación de la oportunidad.

El proceso funciona a las mil maravillas hasta que Warren recibe una solicitud de mejora para enviar alertas por correo electrónico sobre el horario laboral de la empresa. ¡¡Ay!! Ayudaremos a Warren a averiguar el siguiente día hábil y lo almacenaremos en un campo personalizado Next_workday__c en el objeto de oportunidad .

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras , usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

En este artículo, utilizaremos la clase de base de datos call BusinessHours . Asegúrate de revisarlo. Utilice el
método nextStartDate que devuelve la próxima fecha cuando el horario comercial está abierto. Si la fecha objetivo especificada se encuentra dentro del horario comercial, se devuelve esta fecha objetivo. A partir del lanzamiento de Spring'23 , 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.
Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito empresarial de Warren utilizando el flujo activado por registro después de guardar . Debemos:

  1. Establecer horario comercial y días festivos
  2. Cree un campo personalizado en el objeto Oportunidad para almacenar el próximo día laboral
  3. Crear clase de Apex y clase de prueba
  4. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar acción: llame a NextStartDate Invocable Apex Class
    3. Agregue el elemento Actualizar registros para actualizar la oportunidad

Paso 1: Configuración del horario comercial y días festivos

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Horario comercial .
  3. Establezca el horario comercial y los días festivos , como se muestra en la siguiente captura de pantalla:

Paso 2: cree un campo personalizado en el objeto de oportunidad para almacenar el próximo día laboral

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Fecha/Hora como Tipo de datos, luego haga clic en Siguiente .
  5. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
    1. Ingrese los detalles:
      1. Como práctica recomendada, introduzca siempre una descripción y un texto de ayuda .
      2. Haga clic en el botón Siguiente .
  6. Establezca la seguridad a nivel de campo para los perfiles .
  7. Agregue este campo a Diseño de página .
  8. Haga clic en Guardar .

Paso 3: 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 Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.

La clase NextStartDate contiene un único método que pasa la Fecha/Hora para encontrar si la fecha objetivo está dentro del horario comercial dado, se devuelve la fecha objetivo. La hora devuelta está en la zona horaria local. Cree la siguiente clase en su organización.

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Clases de Apex .
  3. Haga clic en el botón Nuevo .
  4. Copie el código de GitHub y péguelo en su clase de Apex.
  5. Haga clic en Guardar.

público sin compartir clase NextStartDate { @InvocableMethod(label = 'Encuentra la próxima fecha a partir de la fecha objetivo cuando se reabre el horario comercial' iconName='slds:custom:custom63') public static List<response> calculeNextStartDate(List<Request> requestList) { List<response> finalList = new List<response>(); BusinessHours bh = [SELECCIONE Id FROM BusinessHours WHERE IsDefault=true]; para (Solicitud de solicitud: lista de solicitudes){ respuesta resp = nueva respuesta(); resp.nextStart=Horarios.nextStartDate(bh.id, req.targetDate); finalList.add(resp); } volver listafinal; } Solicitud de clase pública{ @InvocableVariable(etiqueta = 'Fecha objetivo' requerido = verdadero) fecha y hora pública fecha de destino; } Respuesta de clase pública { @InvocableVariable (etiqueta='Siguiente Inicio') fecha y hora pública nextStart; }
}

Paso 4.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 4.2: Adición de una acción para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex invocable NextStartDate .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Campo : Fecha objetivo
    2. Valor : {!$Record.CreatedDate}
  5. Almacenar valores de salida
    1. Campo : Siguiente inicio
    2. Valor : {!$Record.Next_Workday__c}
  6. Haga clic en Listo .

Paso 4.3: Adición de un elemento Actualizar registros para actualizar la oportunidad

El siguiente paso es actualizar el campo siguiente día laborable de la oportunidad. Usaremos los registros de actualización   elemento.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Actualizar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para obtener información sobre cómo encontrar registros para actualizar y establecer sus valores, seleccione Usar los ID y todos los valores de campo de un registro o colección de registros.
  4. Seleccionar registro(s) para actualizar
    1. Registro o colección de registros: {!$Record}
  5. Haga clic en Listo.


Al final, Warren's Flow se verá como la siguiente captura de pantalla:


Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de entrevista : Próxima fecha de inicio {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .

Prueba de concepto

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/04/07/find-next-business-day-from-a-specified-date-2/

Categories
Developers Tutoriales de Salesforce

Comience a crear aplicaciones de Salesforce ahora con un nuevo proyecto de Trailhead ☁️

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.

Comience a crear aplicaciones de Salesforce ahora con un nuevo proyecto de Trailhead | Blog de desarrolladores de Salesforce

Los desarrolladores valoran y confían en Salesforce Platform porque simplifica el proceso de creación de soluciones empresariales seguras. Al utilizar las herramientas y los servicios integrados de la plataforma para la automatización, la integración y más, los desarrolladores pueden lograr el éxito comercial más rápido. Los desarrolladores de Salesforce abordan problemas comerciales complejos escribiendo código y utilizando herramientas sin código que ofrecen funciones simples rápidamente. Las herramientas sin código de la plataforma reducen la necesidad de que los desarrolladores escriban código repetitivo, para que puedan concentrarse en escribir código para funciones de mayor valor.

Para iniciar su viaje de desarrollo de Salesforce, hemos creado un nuevo Proyecto Trailhead: Comience con el desarrollo de Salesforce . Este blog le presenta el proyecto y proporciona una descripción general de lo que puede esperar de él.

Además de Salesforce Platform, el ecosistema más amplio de tecnologías de Salesforce incluye Heroku, MuleSoft, Marketing Cloud, Tableau, Slack y otros. El proyecto Trailhead del que hablaremos aquí está diseñado específicamente para desarrolladores que estén interesados en comenzar con Salesforce Platform.

requisitos previos

El único requisito previo para este proyecto es crear una cuenta en Trailhead , nuestra plataforma de aprendizaje en línea gratuita y divertida. Una vez que llegue a Trailhead, haga clic en el proyecto Comenzar con el desarrollo de Salesforce y siga las instrucciones del proyecto.

Si tiene experiencia previa en ingeniería de software, puede encontrar las instrucciones paso a paso fáciles de navegar. Sin embargo, los estudiantes sin experiencia en programación también deberían poder completar este proyecto.

Panorama de herramientas para desarrolladores de Salesforce

La plataforma Salesforce permite a los equipos de desarrollo elegir la herramienta adecuada para el trabajo adecuado. La combinación de herramientas sin código con código escrito hace que los desarrolladores sean más productivos y acelera el desarrollo.

Herramientas sin código: las herramientas sin código vienen listas para usar dentro del entorno de Salesforce. Los desarrolladores usan estas herramientas para crear modelos de datos de aplicaciones (Schema Builder), configurar la seguridad de los datos, escribir automatización sin código y mucho más.

Herramientas de código : como cualquier otra tecnología de desarrollo de software, los desarrolladores de Salesforce Platform utilizan herramientas de línea de comandos y un IDE. La CLI de Salesforce es la herramienta de línea de comandos que ejecuta comandos en organizaciones de Salesforce y funciona con archivos de origen en su máquina local. El paquete de extensión de Salesforce para Visual Studio Code contiene funciones que agilizan aún más el desarrollo y brindan una experiencia IDE.

Su primer paso hacia el desarrollo de Salesforce es aprender a instalar estas herramientas. La primera unidad del proyecto, Prepárese para desarrollar , está diseñada para ayudarlo a configurar el entorno de desarrollo y prepararse para crear aplicaciones.

El poder de menos código

Las aplicaciones modernas suelen necesitar una interfaz de usuario intuitiva, API para integrarse con otros sistemas y procesos, y una seguridad robusta, todo lo cual requiere un código complejo. La buena noticia es que Salesforce Platform proporciona herramientas integradas para ayudarlo a incorporar estas funciones en sus aplicaciones sin necesidad de escribir y mantener una gran cantidad de código.

La segunda unidad del proyecto, Crear un modelo de datos mediante clics , le presenta herramientas sin código para crear modelos de datos y también proporciona una descripción general de algunas de las capacidades listas para usar de la plataforma Salesforce.

Ampliación de los servicios listos para usar y las capacidades de la plataforma

Los desarrolladores pueden personalizar la plataforma Salesforce para resolver problemas comerciales complejos. Una de las formas en que pueden hacerlo es escribiendo código para ampliar las capacidades de las herramientas sin código de la plataforma.

JavaScript y Apex son los dos lenguajes más destacados en Salesforce Platform para escribir personalizaciones. Apex es el lenguaje de back-end más ampliamente adoptado en el ecosistema de Salesforce, y JavaScript se utiliza para el desarrollo de front-end que aparece a través de Lightning Web Components.

Escribiendo lógica de negocios en Apex

El lenguaje de programación de Apex está optimizado para ejecutarse en el entorno multiusuario de Salesforce. Está fuertemente tipado y orientado a objetos, y permite a los desarrolladores automatizar procesos comerciales de back-end complejos cuando se necesita código.

Apex se integra con la capa de persistencia de datos de Salesforce y tiene soporte integrado para trabajar con datos de Salesforce, lo que permite a los desarrolladores ser más productivos. Y además de eso, Apex fomenta automáticamente las buenas prácticas de codificación al hacer cumplir los límites del regulador y los requisitos de prueba .

Los desarrolladores de Salesforce necesitan conocer Apex, ya que les permite ampliar la funcionalidad lista para usar proporcionada por la Plataforma de Salesforce. La tercera unidad del proyecto, Write Business Login in Apex , cubre cómo escribir y probar el código Apex.

Personalización de la interfaz de usuario de Salesforce con componentes web Lightning

Los componentes web Lightning son elementos HTML personalizados que utilizan los estándares de los componentes web y están creados con HTML y JavaScript moderno. Un componente web Lightning (LWC) se ejecuta en el navegador de forma nativa y permite a los desarrolladores crear nuevas aplicaciones o personalizar la interfaz de usuario lista para usar de las aplicaciones existentes.

Saber cómo trabajar con LWC es una habilidad de desarrollo clave de Salesforce, ya que le permite crear experiencias personalizadas en la plataforma de Salesforce. La última y última unidad, Crear un componente de interfaz de usuario reutilizable con componentes web Lightning , lo guiará paso a paso a través del proceso de creación de un componente web Lightning.

¿Qué más puedes aprender?

Además del proyecto Trailhead que se analiza en este blog, tiene la oportunidad de aprender habilidades de desarrollo aún más importantes en Trailhead . Algunos que recomendamos incluyen:

Flujo de fuerza de ventas

Salesforce Flow le permite automatizar los procesos comerciales con poca o ninguna codificación, lo que le permite ahorrar tiempo y recursos. Puede interactuar con Apex y LWC. Por ejemplo, como desarrollador, puede escribir clases de Apex que Flow puede invocar. También puede crear una interfaz de usuario de flujo personalizada usando LWC, o tener su flujo alojado en la página en un LWC. Al combinar Flows, Apex y LWC, puede crear rápidamente soluciones que agreguen valor comercial.

Funciones de la fuerza de ventas

Para el código de escala elástica, puede utilizar Funciones de Salesforce . Estas unidades de código de funciones como servicio (FaaS) le permiten ampliar Salesforce utilizando lenguajes de código abierto como Java, JavaScript y Python. Las funciones de Salesforce también le permiten conectarse fácilmente a servicios de bases de datos administrados en Heroku. Escalar su aplicación Salesforce con código nunca ha sido tan fácil.

Cliente 360

La plataforma de Salesforce permite el éxito inmediato al trabajar sin problemas con Salesforce Customer 360 y proporcionar beneficios rápidos de tiempo de valor de código bajo. Sin embargo, las habilidades de desarrollador también son útiles cuando se trabaja con gran parte del panorama tecnológico de Salesforce. Esto incluye la creación de experiencias y recorridos personalizados con Marketing Cloud, la creación y el escalado de escaparates y sitios web de comercio electrónico con Commerce Cloud , la visualización de análisis basados en datos con Tableau o la creación de aplicaciones conectadas con Slack .

Conclusión

El proyecto Trailhead, Primeros pasos con el desarrollo de Salesforce , le brinda una descripción general de lo que es ser un desarrollador que trabaja con las capacidades de la plataforma Salesforce. Pero esto es sólo el comienzo. Cada una de las unidades dentro del proyecto tiene enlaces a otros recursos para brindarle una comprensión más profunda.

Finalmente, si te quedas atascado, recuerda que no estás solo. El grupo de desarrolladores de Salesforce en Trailblazer Community es donde puede colaborar, conectarse en red, crear conexiones y aprender con otros desarrolladores a nivel mundial.

Recursos

Comience con el desarrollo de Salesforce

Sobre el Autor

Mohith Shrivastava es promotor de desarrollo en Salesforce con una década de experiencia en la creación de productos a escala empresarial en la plataforma de Salesforce. Actualmente se está enfocando en las herramientas para desarrolladores de Salesforce, Apex y Lightning Web Components en Salesforce. Mohith se encuentra actualmente entre los principales contribuyentes en Salesforce Stackexchange, un foro de desarrolladores donde los desarrolladores de Salesforce pueden hacer preguntas y compartir conocimientos. Puedes seguirlo a través de su Twitter @msrivastav13.

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/11/get-started-building-salesforce-apps-now-with-a-new-trailhead-project.html

Categories
Developers

Crear automáticamente un caso a partir de la palabra clave utilizada en Chatter

Última actualización el 2 de junio de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede crear automáticamente un caso a partir de una publicación de Chatter si incluye una palabra clave específica?

Objetivos:

Después de leer este blog, podrá:

  • Comprender qué son los tipos de metadatos personalizados y cuándo se deben usar
  • Trabaje con tipos de metadatos personalizados en el flujo de Salesforce
  • Evite el código duro de Id usando el elemento de obtención de registros
  • Utilice el elemento de decisión para comprobar los valores de registro
  • Trabaja con el bucle para aumentar tu flujo
  • Implementar la lógica de bucle while en el flujo
  • y mucho más

Pamela Kline trabaja como administradora de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Chatter ampliamente para la comunicación interna para administrar Ventas y Soporte. Los usuarios comerciales a menudo usan Chatter para solicitar ayuda al equipo interno de Salesforce sobre cómo usar algunas funciones.

Pamela ha recibido un requisito para crear automáticamente un caso siempre que una nueva publicación de Chatter (no un comentario) contenga una palabra clave. Recibió una lista de palabras clave (casi 11 palabras) de su gerente. La tarea de Pamela es garantizar que solo se cree un único caso, incluso si las publicaciones de Chatter contienen numerosas palabras clave.

Lista de palabras clave:

  1. Ohana
  2. Ayuda de Salesforce
  3. ayuda
  4. TrailheadDX
  5. MidwestDreamin
  6. SuresteDreamin
  7. IndiaDreamin
  8. TDX17
  9. SalesforceOhana
  10. JDF17
  11. soñarOlé

¿Qué es un tipo de metadatos personalizados?

¿Qué es un tipo de metadatos personalizados? ¿Por qué uno debería usarlo? ¿Cómo se debe usar? Y, por último, pero no menos importante, ¿en qué se relaciona el tipo de metadatos personalizados o en qué se diferencia del objeto personalizado? Bueno, ¡exploremos estos conceptos juntos!

El tipo de metadatos personalizados es similar a un objeto personalizado: permite a los desarrolladores de aplicaciones crear conjuntos de datos personalizados, así como crear y asociar datos personalizados con una organización. Todos los datos de tipos de metadatos personalizados están disponibles en la memoria caché de la aplicación . Como resultado, permite un acceso eficiente a los datos sin el costo de consultas repetidas (SOQL) a una base de datos. El tipo de metadatos personalizados se utiliza principalmente para almacenar información a la que se accederá con frecuencia desde el código Apex.

El tipo de metadatos personalizados funciona mejor que un objeto personalizado porque está disponible en caché; y por lo tanto, no tiene que ser consultado. La otra diferencia, que notará entre el tipo de metadatos personalizados y un objeto personalizado, es la diferencia en el sufijo. El tipo de metadatos personalizados tiene el sufijo __mdt al final del tipo de metadatos personalizados , a diferencia del __c habitual para los objetos personalizados .

Enfoque de Campeón de Automatización (I-do):

Hay varias formas de resolver los requisitos comerciales anteriores. Algunos de ellos son los siguientes:

  1. Cree un disparador de Apex en el objeto FeedItem: trabajaremos en esta opción en nuestra próxima serie de Apex.
  2. Utilice las 11 palabras clave en un criterio de entrada de flujo activado por registro (en el objeto feedItem) y utilice la acción Crear un registro para crear automáticamente un caso. El problema con este enfoque, sin embargo, es que si, después de unos días, la empresa desea agregar o eliminar algunas palabras clave, debe comenzar de nuevo desde cero.
  3. Use la configuración personalizada para almacenar las palabras clave y luego use el flujo activado por registro para administrar su lógica.
  4. Use el tipo de metadatos personalizados para almacenar las palabras clave y luego use un flujo activado por registro para administrar su lógica. Los metadatos personalizados brindan la flexibilidad de agregar o eliminar palabras clave sin tener que cambiar su Flujo.

Para resolver el requisito comercial anterior, tomaremos el cuarto enfoque. Usaremos: (i) tipo de metadatos personalizados para almacenar las palabras clave; use (ii) Flujo para comparar las palabras clave con el cuerpo de la publicación de Chatter; y crear un caso.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Pamela mediante el flujo activado por registro . Debemos:

  1. Cree tipos de metadatos personalizados para almacenar las palabras clave
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Fórmula para determinar si el registro se crea o actualiza
    3. Agregue un elemento de decisión para verificar si la publicación de chat se crea o edita
    4. Agregue un elemento de obtención de registros para encontrar las palabras clave del tipo de metadatos personalizados
    5. Agregue un elemento de decisión para verificar si la variable de recopilación de registros contiene palabras clave o no (del paso 2.4)
    6. Agregue un elemento de bucle para recuperar registros de la variable de colección de registros (del paso 2.4)
    7. Agregue un elemento de decisión para verificar si la publicación de chat contiene palabras clave o no
      1. Agregue un elemento de asignación para indicar el final del bucle
    8. Agregue un elemento de decisión para verificar la variable booleana EndLoop para encontrar si queremos crear un caso o no
    9. Agregue un elemento Crear registros para crear un caso

Paso 1: cree tipos de metadatos personalizados para almacenar palabras clave

  1. Primero, crearemos un tipo de metadatos personalizados para almacenar palabras clave .
  2. Para crear un nuevo tipo de metadatos personalizados, vaya a Configuración | Código personalizado | Tipos de metadatos personalizados y haga clic en el botón Nuevo tipo de metadatos personalizados . Ahora complete el formulario como se muestra en la siguiente captura de pantalla:
  3. Una vez que haya terminado, haga clic en el botón Guardar .
  4. Cree una palabra clave de campo de texto para almacenar las palabras que desea rastrear en una publicación de Chatter y convertir este campo en un campo obligatorio. Al final, el tipo de metadatos personalizados de la palabra clave de Chatter debería parecerse a lo que se muestra en la siguiente captura de pantalla:
  5. El siguiente paso es insertar algunos registros en el tipo de metadatos personalizados. Para hacerlo, haga clic en el botón Administrar palabras clave de Chatter en la página de detalles del tipo de metadatos personalizados y luego haga clic en Nuevo para insertar algunos registros, como se muestra en la siguiente captura de pantalla:

Paso 2.1: Definir propiedades de flujo

El siguiente paso es crear un Flujo para implementar el requisito empresarial, es decir, crear un caso a partir de una palabra clave utilizada en una publicación de Chatter.

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: FeedItem
    2. Activar el flujo cuando: se crea y actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: Fórmula para determinar si el registro se crea o actualiza

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro se crea o actualiza.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forB_IsNew
    3. Tipo de datos : booleano
    4. Fórmula : EsNuevo()
  3. Haga clic en Listo .

Paso 2.3: uso del elemento de decisión para comprobar si la publicación de Chatter se ha creado o editado

Ahora usaremos el elemento Decisión para comprobar si la publicación de chat ha sido creada o editada por un usuario.

  1. En Flow Designer, debajo del nodo Ejecutar inmediatamente , haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!forB_IsNew}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.4: agregar un elemento Obtener registro para encontrar las palabras clave del tipo de metadatos personalizados

El siguiente paso es obtener todas las palabras clave del tipo de metadatos personalizados. Para ello utilizaremos el elemento Obtener Registros .

  1. En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Chatter_Keyword__mdt de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Palabra clave__c
      2. Operador : no es igual
      3. Valor : {!$ConstanteGlobal.EmptyString}
  6. Cuántos registros almacenar:
    1. seleccione Todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.5: uso del elemento de decisión para verificar si la variable de recopilación de registros contiene palabras clave o no (del paso 2.4)

La siguiente tarea es comprobar si la variable Colección de registros contiene palabras clave o no. Podría ser posible, todavía no hay ningún registro insertado en el tipo de metadatos personalizados. Para verificar esto, usaremos el elemento Decisión .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Keywords}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.6: agregue un elemento de bucle para recuperar registros de la variable de colección de registros (del paso 2.4)

Si la variable Record Collection no es nula, eso significa que contiene algunas palabras prohibidas. Usaremos el elemento Loop para extraer registros de la variable Record Collection y almacenarlos en la variable Record. Para ello, utilizaremos el elemento Loop .

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Bucle .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Variable de colección, seleccione {!Get_Keywords} .
  4. Para Especificar dirección para iterar sobre la colección, seleccione la opción Del primer elemento al último elemento.
  5. Haga clic en Listo .

Paso 2.7: uso del elemento de decisión para verificar si la publicación de Chatter contiene palabras clave o no

La siguiente tarea es verificar si la publicación de Chatter contiene palabras clave o no. Para verificar esto, usaremos el elemento Decisión .

  1. En Flow Designer, debajo del nodo Para cada , haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.Body}
      2. Operador: Contiene
      3. Valor: {!Loop_Over_Keywords.rakeshistomMVP__Keyword__c}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.7.1: agregar un elemento de asignación para indicar el final del bucle

  1. Cree una variable varB_EndLoop de tipo booleano para indicar el final del ciclo.
  2. En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de variables
    1. Fila 1:
      1. Campo: {! varB_EndLoop }
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.True}
  5. Haga clic en Listo .

Paso 2.8: uso del elemento de decisión para verificar la variable booleana EndLoop para ver si queremos crear un caso o no

El siguiente paso es verificar la variable booleana creada en el paso 2.7.1. si es cierto, queremos crear un caso; de lo contrario, queremos terminar el flujo aquí. Para verificar esto, usaremos el elemento Decisión .

  1. En Flow Designer, debajo del nodo Después del último , haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!varB_EndLoop}
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.True}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.9: Agregue el elemento Crear registros para crear un caso

El paso final es crear un caso. Para ello, utilizaremos el elemento Crear registros .

  1. En Flow Designer, debajo del nodo Continuar con la creación de casos , haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Cuántos registros crear : uno
    2. Cómo establecer los campos de registro : use recursos separados y valores literales
    3. Objeto : Caso
    4. Establecer valores de campo para el caso
    5. Fila 1:
      1. Campo : Origen
      2. Valor : Charla
    6. Haga clic en Agregar campo
    7. Fila 2:
      1. Campo : Estado
      2. Valor : Nuevo
    8. Haga clic en Agregar campo
    9. Fila 3:
      1. Campo : Tipo
      2. Valor : Otro
    10. Haga clic en Agregar campo
    11. Fila 4:
      1. Campo : Descripción
      2. Valor : Verifique esta publicación {!$Record.Id}
  4. Haga clic en Listo .

Al final, Pamela's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 55
  5. Etiqueta de entrevista : Crear un caso desde la publicación de Chatter {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

Ahora, si alguien hace una publicación en Chatter y contiene una palabra clave de la Lista de palabras clave mencionada anteriormente, Flow creará automáticamente un caso para ella, como se muestra en la siguiente captura de pantalla:

Captura de pantalla del caso recién creado.

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/06/02/auto-create-a-case-from-keyword-used-in-chatter-2/

Categories
Developers

¿Perfil? ¡Asi que ayer! – Asignar automáticamente un grupo de conjuntos de permisos a un usuario

Última actualización el 3 de abril de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede usar Flow para asignar automáticamente el grupo de conjunto de permisos a nuevos usuarios?

¿Han pasado solo cinco años desde que escribí ' auto-asignar conjunto de permisos a nuevos usuarios'? . El artículo fue escrito usando Flow Trigger , ahora, una funcionalidad obsoleta. Puedes leerlo aquí . ¡Guau! ¡Cómo pasa el tiempo! De manera similar, hace solo dos años, escribí otro artículo que mostraba cómo se puede asignar un conjunto de permisos a nuevos usuarios que usan Process Builder y Flow.

Salesforce continúa transformándose a la velocidad del rayo; sí, es un eufemismo, ¡lo sé! ¡Tres lanzamientos al año me mantienen alerta! – ¡lo que hace que sea cada vez más difícil mantener mis blogs al tanto de las nuevas características y funcionalidades! ¡Uf! Recién salido del horno viene: ¡ Grupo de conjunto de permisos ! Ahora, esto es caliente, de hecho!

¡Vamos a saborearlo juntos!

¿Qué es un grupo de conjuntos de permisos?

Disfrutemos el momento y entendamos el Grupo de Conjunto de Permisos . Para el acceso/administración de usuarios, asignamos múltiples conjuntos de permisos a los usuarios, ya sea manualmente o mediante la automatización. ¡El inicio de 'Permission Set Group' muestra cuán lentos son estos dos métodos! Blog 96.2

Blog 96.2 ¿Qué sucede si agrupamos conjuntos de permisos, basados en (1) grupos de usuarios lógicos; o (2) en las tareas realizadas por los usuarios – en una sola entidad y luego, asignar la entidad a los usuarios? Bueno, ¡ahora podemos! Como se muestra en la siguiente imagen, el Grupo de conjunto de permisos hace precisamente eso. Blog 96.3 El grupo de conjuntos de permisos comprende varios conjuntos de permisos que necesita un usuario. ¡Espera, esto no es todo! ¡Se pueden agregar y eliminar permisos individuales de un grupo de conjuntos de permisos, utilizando la función de silenciamiento de permisos, para garantizar que los usuarios no obtengan permisos que no sean relevantes para sus funciones laborales!

Por ejemplo, puede compilar tres conjuntos de permisos: usuario de CRM, usuario de la consola de Salesforce y conjunto de permisos personalizado Ver y editar Convertir clientes potenciales en un grupo; también conocido como el grupo de conjunto de permisos. Puede etiquetar el grupo como Grupo de conjunto de permisos 'Usuarios de gerente de ventas'; vea la imagen a continuación.

Luego, puede asignar el grupo de conjuntos de permisos 'Usuarios de gerentes de ventas', como una sola entidad , a sus usuarios en lugar de los tres conjuntos de permisos diferentes

Blog 96.1.1

Blog 96.1.1

Ahora suponga que asignó el grupo de conjuntos de permisos 'Usuarios de gerentes de ventas' al usuario A. Luego viene el usuario B. Además de todos los conjuntos de permisos contenidos en el grupo de conjuntos de permisos 'Usuarios de gerentes de ventas', el usuario B también necesita el permiso Administrar usuarios externos colocar.

¿Ahora que? ¡No hay problema! ¡Clone el grupo de conjunto de permisos 'Usuarios del administrador de ventas' y agréguele el conjunto de permisos 'Gestionar usuarios externos' y guárdelo como un nuevo grupo de conjunto de permisos! Podría decir, nombre el nuevo grupo de conjunto de permisos como 'Usuarios de administrador de ventas externo'. ¡Sencillo!

Explore este artículo para obtener más información sobre el grupo de conjuntos de permisos.

Martin Jones es administrador de sistemas en Gurukul on Cloud (GoC). Hoy estaba revisando las notas de la versión y descubrió que el Grupo de conjunto de permisos ahora está disponible de forma general (GA). Acaba de crear un grupo de conjunto de permisos llamado 'Usuarios del administrador de ventas'. Ahora, Martin tiene el requisito de asignar automáticamente el grupo de conjunto de permisos 'Usuarios de gerente de ventas' a todos los usuarios nuevos con la función de gerente de ventas.

Enfoque de Campeón de Automatización (I-do):

Para resolver este requisito, utilizaremos los Tipos de metadatos personalizados y el Flujo desencadenado por registro después de guardar . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.

Antes de continuar, adelante, el objeto PermissionSetAssignment (Representa una asociación entre un Usuario y un PermissionSet) en Salesforce.

Nombre del campo Detalles
ID del cesionario El ID del usuario para asignar el conjunto de permisos.
PermissionSetGroupIdPermissionSetGroupId Si está asociado con un grupo de conjunto de permisos, este es el ID de ese grupo.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Crearemos una automatización que no solo funcionará para el escenario actual, sino que también funcionará para otros roles. Esto significa que, si Martin quiere automatizar la asignación del grupo de conjuntos de permisos para otras funciones (representante de ventas, director de ventas, vicepresidente de ventas), debería funcionar sin que él tenga que modificar la automatización .

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Martin mediante Record-Triggered Flow . Debemos:

  1. Cree tipos de metadatos personalizados para almacenar la función de usuario y la asignación de grupos de permisos
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Fórmula para determinar si el usuario es creado o actualizado
    3. Agregue un elemento de decisión para verificar si el usuario se creó y tiene una función de usuario poblada
    4. Agregue un elemento de obtención de registros para encontrar el Id. del conjunto de permisos para un rol determinado
    5. Agregue un elemento de decisión para verificar la variable de registro (del paso 2.3)
    6. Agregue un elemento Crear registros para asignar un grupo de conjunto de permisos a un usuario

Paso 1: Cree tipos de metadatos personalizados para almacenar la asignación de grupos de conjuntos de permisos y funciones de usuario

  1. Primero, crearemos un tipo de metadatos personalizados para almacenar el nombre de rol y la asignación de ID de grupo de conjunto de permisos .
    1. Para crear un nuevo tipo de metadatos personalizados, vaya a Configuración | Código personalizado | Tipos de metadatos personalizados y haga clic en el botón Nuevo tipo de metadatos personalizados . Ahora complete el formulario como se muestra en la siguiente captura de pantalla: Blog 96.4
    2. Una vez que haya terminado, haga clic en el botón Guardar .
    3. Cree un Id. de grupo de PS de campo de texto para almacenar el Id. de grupo del conjunto de permisos para cada rol de usuario. Al final, el tipo de metadatos personalizado de Asignación de grupos de PS de función de usuario debería verse de la siguiente manera: Blog 96.5
    4. El siguiente paso es insertar algunos registros en el tipo de metadatos personalizados. Haga clic en el botón Administrar asignación de grupos de PS de funciones de usuario en la página de detalles del tipo de metadatos personalizados y luego haga clic en Nuevo para insertar algunos registros, como se muestra en la siguiente captura de pantalla: Blog 96.6.1

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Usuario
    2. Activar el flujo cuando : se crea y actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: fórmula para determinar si el usuario está creado o actualizado

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro se crea o actualiza.
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forB_IsNew
    3. Tipo de datos : booleano
    4. Fórmula : EsNuevo()
  3. Haga clic en Listo .

Paso 2.3: uso del elemento de decisión para comprobar si el usuario se ha creado/actualizado y tiene un rol de usuario completado

Ahora usaremos el elemento Decisión para verificar si el usuario se creó o actualizó y tiene un rol de usuario completo.

  1. En Flow Designer, debajo del nodo Ejecutar inmediatamente , haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!forB_IsNew}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Recurso : {!$Record.UserRoleId}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.4: Adición de un elemento Obtener registro para encontrar el Id. de grupo del conjunto de permisos para un usuario determinado

El siguiente paso es usar el elemento Obtener registros para encontrar el ID de grupo del conjunto de permisos para un rol determinado.

  1. En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Asignación de grupo de PS de rol de usuario de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Etiqueta
      2. Operador : Igual
      3. Valor : {!$Record.UserRole.Name}
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.5: uso del elemento de decisión para comprobar si se encontró o no el ID de grupo del conjunto de permisos  

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 2.3 para encontrar si se encontró o no la identificación del grupo del conjunto de permisos.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Find_Permission_Set_Group}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.6: Agregue el elemento Crear registros para asignar un grupo de conjuntos de permisos a un usuario

A continuación, utilizaremos el elemento Crear registros para asignar un grupo de conjuntos de permisos a un usuario.

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Cuántos registros crear : uno
    2. Cómo establecer los campos de registro : use recursos separados y valores literales
    3. Objeto : asignación de conjunto de permisos
    4. Establecer valores de campo para la asignación de conjunto de permisos
    5. Fila 1:
      1. Campo : ID asignado
      2. Valor : {!$Record.Id}
    6. Haga clic en Agregar campo
    7. Fila 2:
      1. Campo : PermissionSetGroupId
      2. Valor : {!Find_Permission_Set_Group.PS_Group_Id__c}
  4. Haga clic en Listo .

Al final, Martin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de entrevista : Grupo de conjunto de permisos de asignación automática {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

La próxima vez, cuando un administrador del sistema cree un usuario en Gurukul on Cloud, el proceso que creamos (usando un flujo activado por registro) se activará y asignará un grupo de conjunto de permisos al usuario en función de su rol (en este escenario, Rol del Gerente de Ventas).

  1. Cree un usuario y asígnele el rol de gerente de ventas. Luego, verifique Grupo de asignación de conjunto de permisos: Blog 06.17

¡Estupendo! ¡Estás listo!

¡Ahora puede optimizar su proceso de administración/acceso de usuarios aprovechando el grupo de conjuntos de permisos! La disponibilidad del grupo de conjuntos de permisos transformará a un superadministrador en un superadministrador. ¡Ya no tendrá que cargar con múltiples conjuntos de permisos individuales! ¡¿Qué hay que no amar?!

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/04/03/auto-assign-permission-set-group-to-a-user/

Categories
Developers

Publicar automáticamente un mensaje en Chatter cuando se crea un evento

Última actualización el 6 de abril de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo se publica automáticamente un mensaje en el mensaje del grupo de Chatter cuando un usuario crea un evento?

En Salesforce, Chatter Group representa el grupo de personas. Es una excelente manera de impulsar la colaboración en su organización. Puede agregar un número ilimitado de miembros a un grupo de Chatter , pero un usuario solo puede unirse a un máximo de 100 grupos . En el artículo Publicar detalles de oportunidades en un grupo de Chatter , analicé cómo publicar información de oportunidades cerradas en un grupo de Chatter mediante el flujo. En el artículo actual, analizaremos cómo publicar un mensaje en el grupo de Chatter mediante Salesforce Flow.

Objetivos:

Después de leer este blog, podrá:

  • Utilice el flujo desencadenado por registro después de guardar para publicar un mensaje en Chatter
  • Use el elemento Obtener para evitar la codificación rígida de Id.
  • Use el elemento Decisión para validar el resultado de obtener registros
  • Crear automáticamente una publicación en Chatter cuando se crea un evento

Brandon Schaefer trabaja como administrador de sistemas en Gurukul on Cloud (GoC). Su organización desea publicar un mensaje en los anuncios internos de UC de Chatter Group cada vez que se crea un evento para el calendario público Universal Container Conference Rooms.

Enfoque de Campeón de Automatización (I-do):

Los calendarios y recursos públicos son para administrar actividades de grupo o recursos compartidos . Mediante el uso de calendarios públicos, un grupo de personas puede realizar un seguimiento de eventos de interés para todos ellos (p. ej., eventos de ventas, sesiones semanales de intercambio de conocimientos o clases de capacitación) o programar una actividad común (p. ej., un calendario de vacaciones del equipo).

Por ejemplo , con los calendarios de recursos, varias personas pueden coordinar el uso de un recurso compartido, como una sala de conferencias, etc. Una organización puede crear una cantidad ilimitada de calendarios.
Antes de continuar, comprenda el objeto CollaborationGroup en Salesforce . Representa un grupo de Chatter. Si bien esto se puede resolver utilizando varias herramientas de automatización como   Apex Trigger, o Flow , usaremos After-save Record-Triggered Flow . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Brandon mediante Record-Triggered Flow . Debemos:

  1. Crear un grupo de chat
  2. Crear un calendario público
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar una plantilla de texto para construir el cuerpo del mensaje de publicación de chat
    3. Crear una fórmula para determinar si el evento se crea o actualiza
    4. Agregue un elemento de decisión para verificar si un evento es propiedad de un calendario público
    5. Agregue un elemento de obtener registros para encontrar los detalles del grupo de chat (Anuncios internos de UC)
    6. Agregue un elemento de decisión para verificar si se encontró o no el grupo de chat.
    7. Agregar publicación de acción a la charla: para publicar un mensaje en el grupo de charla

Paso 1: Cree un grupo de Chatter

  1. Navegue hasta el Iniciador de aplicación y haga clic en Grupos .
  2. Da clic en el botón Nuevo .
  3. Asigne un nombre al grupo y asegúrese de seleccionar el tipo de acceso privado .
  4. Haga clic en Guardar.

Paso 2: crear un calendario público Universal Container Conference Rooms

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Calendarios y recursos públicos .
  3. Da clic en el botón Nuevo .
  4. Asigne un nombre al calendario y asegúrese de seleccionar la casilla de verificación Activo .
  5. Haga clic en Guardar.

Paso 3.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Evento
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 3.2: Agregue una plantilla de texto para crear un mensaje de publicación de Chatter

Ahora crearemos una plantilla de correo electrónico utilizando la plantilla de texto . La plantilla de texto le permitió especificar los mensajes de varias líneas. También le permite utilizar código HTML.

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para crear una plantilla de texto.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : plantilla de texto
    2. Nombre de la API : textT_MessageBody
    3. Seleccione Ver como texto sin formato
    4. Cuerpo
      1. Se crea un evento para el calendario público "Universal Container Conference Rooms" haga clic en el enlace a continuación para obtener más información al respecto.
      2. URL > https://rakeshistom1234-dev-ed.lightning.force.com/ {!$Record.Id}
  3. Haga clic en Listo .

Paso 3.3: fórmula para determinar si el evento se crea o actualiza

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro se crea o actualiza.
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forB_IsNew
    3. Tipo de datos : booleano
    4. Fórmula : EsNuevo()
  3. Haga clic en Listo .

Paso 3.4: uso del elemento de decisión para verificar si el evento es propiedad del calendario público

Ahora usaremos el elemento Decisión para verificar si el evento es propiedad del calendario público Universal Container Conference Rooms .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Owner:Calendar.Name}
      2. Operador : Igual
      3. Valor : salas de conferencias de contenedores universales
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Recurso : {!forB_IsNew}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 3.5: Adición de un elemento Obtener registro para buscar un grupo de chat: anuncios internos de UC

El siguiente paso es usar el elemento Obtener registros para encontrar los detalles de los anuncios internos de UC del grupo de chat.

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Grupo (CollaborationGroup) de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Nombre
      2. Operador : Igual
      3. Valor : Anuncios Internos UC
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 3.6: uso del elemento de decisión para verificar si se encontró o no un grupo de Chatter  

Ahora usaremos el elemento Decisión para verificar la Variable de registro del paso 3.5 para encontrar si devuelve los Anuncios internos de UC del grupo Chatter o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Chatter_Group}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 3.7: Agregar la acción Publicar en Chatter para publicar un mensaje en un grupo de Chatter

Ahora usaremos la acción estática Publicar en Chatter para publicar un mensaje en los anuncios internos de UC del grupo de chat.

  1. En Flow Designer, debajo del nodo Grupo encontrado , haga clic en el ícono + y seleccione el elemento Acción .
  2. Busque y seleccione Publicar en Chatter en el menú desplegable
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada
    1. Mensaje : {!textT_MessageBody}
    2. Nombre o ID de destino : {!Get_Chatter_Group.Id}
  5. Haga clic en Listo .

Al final, Brandon's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de entrevista : Publicar un mensaje en el grupo de Chatter {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, si un usuario crea un evento para el calendario público Universal Container Conference Rooms , el flujo activado por registro publicará automáticamente un mensaje en los anuncios internos de UC del grupo Chatter . Es hora de probar el proceso.

  1. Crear un nuevo evento en el calendario público Universal Container Conference Rooms
    1. Haga clic en el Iniciador de aplicaciones .
    2. En el cuadro Buscar aplicaciones y elementos, escriba Calendario y haga clic en él.
    3. Agregue un nuevo evento haciendo clic en un intervalo de tiempo en el calendario.
    4. Para el campo Asignado a, seleccione Universal Container Conference Rooms .
    5. Complete los detalles restantes para el evento como se muestra en la captura de pantalla a continuación, luego haga clic en Guardar .
  2. Consulte los anuncios internos de UC de Chatter Group . La siguiente publicación se agregará automáticamente al muro del grupo.

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/04/04/auto-post-a-message-to-chatter-when-an-event-is-created-2/

Categories
Developers

Cambiar condicionalmente el color de los valores de campo de texto en Salesforce


Gran idea o pregunta duradera:

  • ¿Cómo se muestran los valores de los campos de texto en diferentes colores según la etapa de la oportunidad?

Objetivos:

Después de leer este blog, podrá:

  • Comprender cuándo usar el flujo antes de guardar
  • Usa la fórmula para mostrar textos en diferentes colores
  • Use la función SUSTITUIR para eliminar etiquetas HTML del área de texto enriquecido
  • Utilice el elemento de asignación para actualizar el campo del área de texto enriquecido
  • y mucho más

Olivia Rodrigo trabaja como administradora de sistemas en Gurukul on Cloud (GoC) . Olivia ha recibido un requerimiento de su director de ventas para mostrar el texto del campo Análisis de acuerdos en color verde si la oportunidad está abierta o ganada; de lo contrario, muestra el texto en rojo.

Enfoque de Campeón de Automatización (I-do):

Hay algunas soluciones posibles para el escenario empresarial anterior. Sin embargo, nuestro propósito, en este blog, es aprender sobre Flow y sus características. Por lo tanto, utilizaremos el flujo desencadenado por registro antes de guardar.   para resolver el requisito comercial anterior .

El uso de before-save nos permite lograr los objetivos mucho más rápido porque cada registro no se guarda en la base de datos nuevamente. Evitar ese procedimiento de guardado adicional significa omitir otra ronda de reglas de asignación, reglas de respuesta automática y otras personalizaciones que tardan en ejecutarse.

Use un flujo antes de guardar en los siguientes casos de uso:

  1. Actualizar campos en registros nuevos o modificados
  2. Active una regla de validación (esta es una solución personalizada que no está disponible de fábrica)

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Olivia utilizando el flujo activado por registro antes de guardar . Debemos:

  1. Crear un campo personalizado en el objeto Oportunidad
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Cree una fórmula para cambiar el color de fuente del valor del campo de texto
    3. Agregar un elemento Asignación al campo de oportunidad

Paso 1: cree un campo personalizado en el objeto de oportunidad para almacenar el análisis de ofertas

Recuerde que la versión más reciente de Salesforce no admite el formato condicional de valores de campo, ni siquiera para el campo de fórmula. Solo los campos de texto enriquecido admiten el formato. Avancemos y creemos un campo de área de texto enriquecido para almacenar el análisis del trato.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo.
  4. Seleccione Área de texto (enriquecida) como tipo de datos y, a continuación, haga clic en Siguiente.
  5. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
    1. Ingrese los detalles:
      1. Longitud 32.768 .
      2. # Líneas visibles 10 .
      3. Como práctica recomendada, introduzca siempre una descripción y un texto de ayuda.
      4. Haga clic en el botón Siguiente .
  6. Establezca la seguridad a nivel de campo para los perfiles .  
  7. Agregue este campo a Diseño de página .
  8. Haga clic en Guardar.

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para actualizaciones de campo rápidas
  5. Haga clic en Listo .

Paso 2.2: fórmula para cambiar el color de fuente de los valores del campo de texto

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para construir el nombre de la oportunidad mediante la fórmula de concatenación.
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forT_DealAnalysisColorText
    3. Tipo de datos : Texto
    4. Fórmula :
      1.  IF(TEXT({!$Record.StageName}) ='Cerrado Perdido', ('<html><body><div style="color: red;">' & SUSTITUTO(SUSTITUTO(SUSTITUTO({!$Record. rakeshistomMVP__Deal_Analysis__c}, '<div style="color: green;">', ''), '<div style="color: red;">', ''), '</div>', '') & '</div></cuerpo></html>'),
        IF(TEXT({!$Record.StageName}) ='Cerrado Ganado', ('<html><body><div style="color: green;">' & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE({!$Record. rakeshistomMVP__Deal_Analysis__c}, '<div style="color: green;">', ''), '<div style="color: red;">', ''), '</div>', '')& '</div></cuerpo></html>'),
        IF({!$Record.IsClosed}=False, ('<html><body><div style="color: green;">' & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE({!$Record.rakeshistomMVP__Deal_Analysis__c}, '<div estilo="color: verde;">', ''), '<div estilo="color: rojo;">', ''), '</div>', '')& '</div>< /cuerpo></html>'),
        ""
        )))
  3. Haga clic en Listo .

Fórmula SUBSTITUTE() utilizada para sustituir texto antiguo por texto nuevo en una cadena de texto.

Paso 2.3. Uso del elemento de asignación para actualizar el campo de oportunidad

El siguiente paso es actualizar el campo Análisis de oportunidades de negocios con valores formateados. Usaremos la Asignación   elemento, ya que estamos usando before-save flow .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Establecer valor variable
    1. Fila 1:
      1. Campo : {!$Record.rakeshistomMVP__Deal_Analysis__c}
      2. Operador : Igual
      3. Valor : {!forT_DealAnalysisColorText}
  4. Haga clic en Listo .

Al final, Olivia's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Introducir etiqueta de flujo   el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 55
  5. Etiqueta de entrevista : Texto colorido {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, si un usuario actualiza la etapa de oportunidad, el flujo activado por registro antes de guardar actualizará automáticamente el valor de texto del campo Análisis de trato.

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/04/25/conditionally-change-font-color-of-text-field-in-salesforce/

Categories
Developers Salesforce

@Mencionar a un usuario relacionado en una acción Publicar en Chatter

Última actualización el 4 de abril de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo @menciona a usuarios relacionados en una acción Publicar en Chatter Salesforce Flow?

Objetivos:

Después de leer este blog, podrá:

  • Usar la acción de publicar para charlar en el flujo activado por registro
  • Use el elemento Obtener para evitar la codificación rígida de Id.
  • Use el elemento de decisión para validar el resultado de obtener registros
  • Cómo @mencionar al usuario relacionado en una publicación de chat
  • y mucho más

Brandon Schaefer trabaja como administrador de sistemas en Gurukul on Cloud (GoC). Ha recibido un requisito para publicar los detalles de la oportunidad en el grupo de Chatter de anuncios internos de UC cada vez que se crea o actualiza una oportunidad con una cantidad superior a 100,000 y también menciona a los usuarios relacionados Propietario de la oportunidad y Propietario de la cuenta en la publicación.

Enfoque de Campeón de Automatización (I-do):

En Salesforce Chatter Group representa a un grupo de personas . Es una excelente manera de impulsar la colaboración en su organización . Puede agregar un número ilimitado de miembros a Chatter Group , pero un usuario puede unirse a un máximo de 100 grupos . En este artículo Publicar automáticamente un mensaje en Chatter cuando se crea un evento , analicé cada vez que se crea un evento para que el calendario público publique sus detalles en un grupo de Chatter mediante Salesforce Flow . Este artículo va un paso más allá y explica cómo @mencionar a usuarios relacionados en una acción Publicar en Chatter mediante Salesforce Flow . Si bien esto se puede resolver utilizando varias herramientas de automatización como   Apex Trigger, o Flow , usaremos After-save Record-Triggered Flow . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario. Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Brandon mediante Record-Triggered Flow . Debemos:

  1. Crear un grupo de chat
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar una plantilla de texto para construir el cuerpo del mensaje de publicación de chat
    3. Agregue un elemento de decisión para verificar que el monto de la oportunidad sea superior a $ 100K
    4. Agregue un elemento de obtener registros para encontrar los detalles del grupo de chat (Anuncios internos de UC)
    5. Agregue un elemento de decisión para verificar si se encontró o no un grupo de chat.
    6. Agregar publicación de acción a la charla: para publicar un mensaje en el grupo de charla

Paso 1: Cree un grupo de Chatter

  1. Navegue hasta el Iniciador de aplicación y haga clic en Grupos .
  2. Hace clic en el botón Nuevo .
  3. Asigne un nombre al grupo y asegúrese de seleccionar el tipo de acceso privado .
  4. Haga clic en Guardar.

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: Agregue una plantilla de texto para crear un mensaje de publicación de Chatter

Ahora crearemos una plantilla de correo electrónico utilizando la plantilla de texto . La plantilla de texto le permitió especificar los mensajes de varias líneas. También le permite utilizar código HTML.

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para crear una plantilla de texto.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : plantilla de texto
    2. Nombre de la API : textT_MessageBody
    3. Seleccione Ver como texto sin formato
    4. Cuerpo
      1. Se crea o actualiza una oportunidad con una cantidad {!$Record.Amount}. @[{!$Record.OwnerId}] @[{!$Record.Account.OwnerId}]
  3. Haga clic en Listo .

Paso 2.3: uso del elemento de decisión para verificar si el monto de la oportunidad es superior a $ 100K

Ahora usaremos el elemento Decisión para verificar si el monto de la oportunidad es mayor a $10000K.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Amount}
      2. Operador : mayor que
      3. Valor : 100000
  5. Cuándo ejecutar el resultado : solo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición
  6. Haga clic en Listo .

Paso 2.4: Adición de un elemento Obtener registro para buscar un grupo de chat: anuncios internos de UC

El siguiente paso es usar el elemento Obtener registros para encontrar los detalles de los anuncios internos de UC del grupo de chat.

  1. En Flow Designer, debajo del nodo >$100K , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Grupo de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Nombre
      2. Operador : Igual
      3. Valor : Anuncios Internos UC
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.5: uso del elemento de decisión para verificar si se encontró o no un grupo de Chatter  

Ahora usaremos el elemento Decisión para verificar la Variable de registro del paso 2.4 para encontrar si devuelve los Anuncios internos de UC del grupo Chatter o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Chatter_Group}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.6: Agregar la acción Publicar en Chatter para publicar un mensaje en un grupo de Chatter

Ahora usaremos la acción estática Publicar en Chatter para publicar un mensaje en los anuncios internos de UC del grupo de chat.

  1. En Flow Designer, debajo del nodo Grupo encontrado , haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Enviar correo electrónico en el menú desplegable
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada
    1. Mensaje : {!textT_MessageBody}
    2. Nombre o ID de destino : {!Get_Chatter_Group.Id}
  5. Haga clic en Listo .

Al final, Brandon's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de entrevista : Publicar un mensaje para el usuario relacionado {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, si un usuario comercial actualiza la oportunidad que tiene una cantidad superior a 100 000, el flujo activado por registro se activará automáticamente y creará una publicación en el grupo de chat Anuncios internos de UC .

  1. Actualmente, Deer Valley Corp.   el valor del monto de la oportunidad es 1000, como se muestra en la siguiente captura de pantalla:
  2. Actualicemos la cantidad a 110,000, luego navegue a los anuncios internos de UC del grupo de Chatter y consulte el muro del grupo de Chatter para ver la publicación automatizada:

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.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/04/04/mention-a-related-user-in-a-post-to-chatter-action-3/

Categories
Developers

Omitir flujo programado los fines de semana y días festivos

Ú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:

  1. Primeros pasos con Salesforce Flow: parte 49 (No deje que las solicitudes de aprobación pendientes permanezcan: ¡reasignar!)

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver usando varias herramientas de automatización como Apex Trigger y otras , usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

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.
Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Warren mediante Salesforce Flow. Debemos:

  1. Establecer horario comercial y días festivos
  2. Crear clase de Apex y clase de prueba
  3. Flujo de fuerza de ventas
    1. Clonar un flujo existente
    2. Crear una variable para almacenar el resultado de la llamada de Apex
    3. Agregar acción: llame al método BusinessHours a través de Invocable Apex
    4. 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

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Horario comercial .
  3. 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.

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Clases de Apex .
  3. Haga clic en el botón Nuevo .
  4. Copie el código de GitHub y péguelo en su clase de Apex.
  5. Haga clic en Guardar.

Paso 3.1: Flujo de Salesforce: clonar un flujo existente

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en el Nombre del flujo , que se modificará. En este caso, reasignar solicitudes pendientes de aprobación .
  4. Haga clic en el botón Guardar como en la parte superior derecha de la página de detalles del flujo.
  5. 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.
  6. Para Versión de API para ejecutar el flujo , seleccione siempre la última versión, en este escenario, 54 .
  7. Haga clic en Listo .

Paso 3.2: Flujo de Salesforce: cree una variable para almacenar el resultado de la llamada de Apex

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para almacenar los resultados de las llamadas de Apex.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Variable
    2. Nombre de la API : varB_IsHoliday
    3. Tipo de datos : booleano
    4. Valor predeterminado : {!$Constante global.Falso}
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. 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

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex CustomBusinessHourAndHolidayHandler .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Campo: Campo de fecha/hora
    2. Valor: {!$Flow.CurrentDateTime}
  5. Almacenar valores de salida
    1. Campo: outputIsBusinessHour
    2. Valor: {!varB_IsHoliday}
  6. 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.

  1. En Flow Designer, haga clic en el icono + y seleccione Elemento de decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.StageName}
      2. Operador: Se Cambia
      3. Valor: {!$ConstanteGlobal.True}

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/

Categories
Developers

División automática de ingresos en Oportunidades

Última actualización el 10 de febrero de 2022 por Rakesh Gupta

Gran idea o pregunta duradera :

¿Cómo se dividen automáticamente los ingresos con Salesforce Flow?

En una conversación por correo electrónico reciente con un miembro de la comunidad, discutimos la posibilidad de dividir automáticamente los ingresos de la oportunidad con los miembros del equipo de la oportunidad. Cuando se agrega un nuevo miembro al equipo de oportunidades haciendo clic en el botón Agregar miembros del equipo de oportunidades (1) y no en Agregar equipo predeterminado (2) , como se muestra en la siguiente captura de pantalla:

Objetivos:

Después de leer este blog, podrá:

  • Comprender los componentes básicos de Salesforce Flow
  • Aprenda a dividir los ingresos de la oportunidad con Salesforce Flow

Martin Jones trabaja como administrador de sistemas en Universal Containers (UC) . Recibió un requisito de la alta gerencia para compartir automáticamente el 1% de los ingresos de la Oportunidad con los miembros del equipo de la Oportunidad tan pronto como se agregue un nuevo miembro al equipo de la Oportunidad. Al mismo tiempo, no quieren implementar esta función cuando un usuario usa el botón Agregar equipo predeterminado para agregar un equipo de oportunidad predeterminado a una oportunidad.

Enfoque de Campeón de Automatización (I-do):

Se pueden tomar múltiples enfoques para resolver este requisito comercial. Se puede tomar un generador de procesos o una página de Flujo y Visualforce en línea u otros enfoques.

Para resolver este requisito, utilizaremos el Flujo desencadenado por registro después de guardar . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.

Antes de continuar, adelante, comprenda los objetos de Salesforce que se enumeran a continuación:

Objeto Detalles
OportunidadEquipoMiembro Representa a un Usuario en el equipo de oportunidades de una Oportunidad.
división de oportunidad Acredita a uno o más miembros del equipo de oportunidades una parte del monto de la oportunidad.
Tipo de división de oportunidad Proporciona etiquetas y comportamiento únicos para cada tipo de división.

Antes de discutirlo, permítame mostrarle un diagrama de un flujo de proceso a alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Venta en equipo   debe estar habilitado en la organización. Si aún no está habilitado y desea hacerlo, consulte el artículo Dividir el crédito entre su equipo de ventas .

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito comercial de Martin utilizando Salesforce Flow . Debemos:

  1. Buscar ID de ingresos de tipo de división de oportunidad
  2. Creación de una etiqueta personalizada para almacenar ID de ingresos de tipo de división de oportunidad
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Crear una fórmula para determinar si el registro de cuenta se crea o actualiza
    3. Agregue un elemento de Decisión para verificar si la fórmula IsNew devuelve True o False
    4. Agregue un elemento Crear registros para crear un registro de tipo división de oportunidad

Paso 1: busque el ID de ingresos del tipo de división de oportunidad

El primer paso es averiguar el tipo de división Id of Opportunity Revenue . Una posible solución es utilizar Developer Console.

  1. Haga clic en Configuración | Consola de desarrollador
  2. En el Editor de consultas, ejecute la siguiente consulta SOQL
    1. Seleccione id, MasterLabel de oportunidadSplitType
  3. Asegúrese de copiar el ID de ingresos.

Paso 2: crear una etiqueta personalizada para almacenar el ID de ingresos del tipo de división de oportunidad

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, escriba Etiquetas personalizadas .
  3. Haga clic en el botón Nueva etiqueta personalizada .
  4. Ingrese una descripción breve , el nombre se completará automáticamente.
  5. Ahora ingrese el ID de ingresos del tipo de división de oportunidad en el valor .
  6. Haga clic en Guardar.

Paso 3.1: Flujo de Salesforce: definir las propiedades del flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro y haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : miembro del equipo de oportunidad
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 3.2: Flujo de Salesforce: fórmula para determinar si se crea o actualiza el registro de cuenta

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro es nuevo o antiguo.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forB_IsNew
    3. Tipo de datos : booleano
    4. Fórmula : EsNuevo()
  3. Haga clic en Listo .

Paso 3.3: Flujo de Salesforce: uso del elemento de decisión para verificar los resultados de la fórmula IsNew

Ahora usaremos el elemento Decisión para comprobar si la fórmula IsNew devuelve True o False.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!forB_IsNew}
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.True}

Paso 3.4: Agregar acción: crear un elemento de registro para crear un registro de tipo división de oportunidad

El siguiente paso es crear un objeto de tipo división de oportunidad de registro. Para ello utilizaremos el Create Records elemento Ahora sigue los pasos a continuación:

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Registros creados .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta , el nombre de la API se completará automáticamente.
    2. Cuántos registros crear : uno
    3. Cómo establecer los campos de registro : use recursos separados y valores literales
    4. Objeto : división de oportunidad
    5. Establecer valores de campo para la división de oportunidad
      1. Fila 1:
        1. Campo: ID de oportunidad
        2. Valor: {!$Record.OpportunityId}
      2. Haga clic en Agregar fila
      3. Fila 2:
        1. Campo: ID de propietario dividido
        2. Valor: {!$Record.UserId}
      4. Haga clic en Agregar fila
      5. Fila 3:
        1. Campo: ID de propietario dividido
        2. Valor: 1
      6. Haga clic en Agregar fila
      7. Fila 4:
        1. Campo: SplitTypeId
        2. Valor: $Label.opportunity_split_type_revenue_id
  3. Haga clic en Guardar .


Al final, Martin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de entrevista: Record-Trigger : Record-Triggered Flow: miembro del equipo de oportunidad {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .

Prueba de concepto

A partir de ahora, si los usuarios comerciales agregan nuevos miembros en el Equipo de la oportunidad haciendo clic en el botón Agregar (disponible en la lista relacionada del Equipo de la oportunidad en la página Detalles de la oportunidad), Salesforce Flow compartirá automáticamente el 1 % de los ingresos de la oportunidad con ellos.

  1. En este momento, solo hay Propietario de la oportunidad y ningún miembro del equipo en el Equipo de la oportunidad para el Generador de la planta de tejido de textiles Burlington de la oportunidad, como se muestra en la siguiente captura de pantalla:
    1. A continuación se muestra el estado actual de las divisiones de oportunidad.
  2. Ahora intentaremos agregar un nuevo miembro del equipo en OpportunityBurlington Textiles Weaving Plant Generator haciendo clic en el botón Agregar miembros del equipo de oportunidad , como se muestra en la siguiente captura de pantalla:
    1. Lo redirigirá a la página desde donde puede agregar nuevos miembros a una Oportunidad, como se muestra en la siguiente captura de pantalla:
  3. Una vez que haya terminado, haga clic en el botón Guardar y navegue hasta la lista relacionada Divisiones de oportunidad disponible en la página Detalle de oportunidad . Salesforce Flow comparte automáticamente el 1 % de los ingresos de la oportunidad con los nuevos miembros del equipo, como se muestra en la siguiente captura de pantalla:

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?

Házmelo saber tuiteándome en @automationchamp o búscame en LinkedIn.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/02/07/auto-revenue-splitting-in-opportunities-3/

Categories
Developers

Asignar automáticamente el libro de precios según el tipo de registro de oportunidad

Última actualización el 10 de febrero de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

Un libro de precios es un libro en el que se enumeran los precios de los productos. Actualmente, los usuarios comerciales deben seleccionar un libro de precios tan pronto como se crea una oportunidad. En este artículo, veamos una forma de asignar automáticamente un libro de precios en función del tipo de registro de oportunidad mediante el flujo de Salesforce .

Objetivos:

Esta publicación de blog nos ayudará a comprender lo siguiente

  • Usar el generador de flujo de Salesforce para asignar automáticamente el libro de precios cuando se crea una oportunidad, según el tipo de registro de oportunidad.
  • El objeto de oportunidad y la creación de tipos de registros.
  • El objeto PriceBook y la creación de libros de precios
  • Uso de Developer Console y consulta SOQL para encontrar PriceBookId
  • Cómo usar la etiqueta personalizada en el flujo de Salesforce

Martin Jones trabaja como administrador de sistemas en Universal Containers (UC) . Su organización desea desarrollar un proceso para automatizar la asignación de la lista de precios en función del tipo de registro Oportunidad e implementar los siguientes requisitos

  1. Si el tipo de registro de Oportunidad es Fabricación , asigne un libro de precios Fabricación
  2. Si el tipo de registro de Oportunidad es Minorista , asigne un libro de precios Minorista

Enfoque de Campeón de Automatización (I-do):

Existen múltiples soluciones posibles para el escenario empresarial anterior . Usaremos Salesforce Flow para resolver el requisito comercial anterior.

Para resolver este requisito, utilizaremos el flujo activado por registro antes de guardar . Consulte este artículo para comprender por qué estamos utilizando un flujo desencadenado por registro antes de guardar para este escenario. Desglosemos la solución en los siguientes pasos para su comprensión:

  1. Cree dos tipos de registro de oportunidad: Fabricación y Venta al por menor
  2. Cree dos libros de precios: fabricación y venta al por menor
  3. Cree un Flujo de Salesforce para automatizar el proceso de asignación del libro de precios según el tipo de registro.

Antes de discutirlo, permítame mostrarle un diagrama de un flujo de proceso a alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de Martin mediante Salesforce Flow. Debemos:

  1. Cree dos tipos de registro: Fabricación y Venta al por menor
  2. Cree dos libros de precios: Fabricación y Venta al por menor
  3. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue un elemento de decisión para verificar el tipo de registro de oportunidad
    3. Agregue un elemento Obtener registros para buscar el registro del libro de precios minoristas
    4. Agregue un elemento Obtener registros para buscar el registro del libro de precios de fabricación
    5. Cree una fórmula para determinar el pricebook2Id según el tipo de registro
    6. Agregue un elemento de asignación para establecer pricebook2Id en la oportunidad

Paso 1: Cree dos tipos de registro

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Haga clic en Tipo de registro , luego haga clic en Nuevo .
  4. Asigne un nombre a la Etiqueta de tipo de registro y se completará el Nombre del tipo de registro .
  5. Ahora seleccione el Proceso de ventas y asegúrese de seleccionar la casilla de verificación Activo .
  6. Haga clic en Guardar.

Paso 2: Cree dos libros de precios

  1. Navegue hasta el Iniciador de aplicaciones y seleccione Libros de precios .
  2. Haga clic en el botón Nuevo .
  3. Asigne un nombre al libro de precios y asegúrese de seleccionar la casilla de verificación Activo .
  4. Haga clic en Guardar.

Paso 3.1: Flujo de Salesforce: definir las propiedades del flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro y haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para actualizaciones de campo rápidas
  5. Haga clic en Listo .

Paso 3.2: Flujo de Salesforce: uso del elemento de decisión para verificar el tipo de registro

Ahora usaremos el elemento Decisión para verificar el tipo de registro de oportunidad y también identificar si el registro se crea o actualiza. Ahora sigue los pasos a continuación:

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta (minorista) , el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.Id}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.True}
    2. Añadir condición
    3. Fila 2:
      1. Recurso: {!$Record.RecordTypeId}
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.Falso}
    4. Añadir condición
    5. Fila 3:
      1. Recurso: {!$Record.RecordType.DeveloperName}
      2. Operador: Igual
      3. Valor: Minorista
  5. En Detalles del resultado , haga clic en +
  6. Introduzca la etiqueta (fabricación)   el nombre de la API se completará automáticamente.
  7. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.Id}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.True}
    2. Añadir condición
    3. Fila 2:
      1. Recurso: {!$Record.RecordTypeId}
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.Falso}
    4. Añadir condición
    5. Fila 3:
      1. Recurso: {!$Record.RecordType.DeveloperName}
      2. Operador: Igual
      3. Valor: Fabricación

Paso 3.3: Flujo de Salesforce: agregar un elemento Obtener registro para encontrar un registro de libro de precios minoristas

El siguiente paso es obtener el registro del libro de precios minoristas. Ahora sigue los pasos a continuación:

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Libro de precios de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Nombre del campo
      2. Operador: Igual
      3. Valor: Minorista
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 3.4: Flujo de Salesforce: agregar un elemento Obtener registro para encontrar el registro del libro de precios de fabricación

El siguiente paso es obtener el registro del libro de precios de fabricación. Ahora sigue los pasos a continuación:

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Libro de precios de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Nombre del campo
      2. Operador: Igual
      3. Valor: Fabricación
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 3.5: Flujo de Salesforce: fórmula para determinar Pricebook2Id según el tipo de registro de oportunidad

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para crear el título de la notificación de inserción.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forT_PricebookId
    3. Tipo de datos : Texto
    4. Fórmula : IF({!$Record.RecordType.DeveloperName}='Fabricación', {!Get_Manufacturing_Pricebook.Id},
      IF({!$Record.RecordType.DeveloperName}='Minorista',{!Get_Retail_Pricebook.Id},
      {!$Record.Pricebook2Id}
      ))
  3. Haga clic en Listo .

Paso 3..6: Flujo de Salesforce: uso del elemento de asignación para actualizar PriceBook2Id en la oportunidad

El siguiente paso es actualizar pricebook2Id en la oportunidad. Usaremos la Asignación   elemento, ya que estamos usando before-save flow .

  1. En Caja de herramientas , seleccione Elemento .
  2. Arrastre y suelte el elemento Asignación en el diseñador de flujo.
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valor variable
    1. Fila 1:
      1. Campo: {!$Record.Pricebook2Id}
      2. Operador: Igual
      3. Valor: {!forT_PricebookId}
  5. Haga clic en Listo .

Al final, Martin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:
  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de la entrevista: Record-Trigger : Record-Triggered Flow: Oportunidad antes de guardar {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .

Prueba de concepto

A partir de ahora, si un usuario comercial crea una Oportunidad con cualquiera de estos dos tipos de registro, Salesforce Flow le agregará automáticamente un libro de precios correspondiente.

  1. Cree una Oportunidad con tipo de registro Manufactura , como se muestra en la siguiente captura de pantalla:
  2. Una vez que haya terminado, consulte la lista relacionada con el producto disponible en la página de detalles de la oportunidad .

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?

Házmelo saber tuiteándome en @automationchamp o búscame en LinkedIn.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/02/10/automatically-assign-pricebook-based-on-opportunity-record-type-2/

Categories
Developers Salesforce

Primeros pasos con Salesforce Flow: parte 86 (¡Mejore la productividad con notificaciones push para escritorio o dispositivos móviles!)

Última actualización el 25 de enero de 2022 por Rakesh Gupta

Puede estar pensando, ¿por qué estoy tan entusiasmado con el lanzamiento reciente de Salesforce? Bueno, ¡déjame contarte las razones! Sin embargo, una de las razones que más destaca son las mejoras relacionadas con Process Builder: ¡oh, sí! tienes razón. Permítanme comenzar con algunos ejemplos:

  1. ¿Cómo notifica a los miembros del equipo de oportunidades cuando una oportunidad se marca como cerrada ganada? – Usando alerta de correo electrónico, ¿verdad?
  2. ¿Cómo notificar al propietario de la cuenta si se registra un nuevo caso de soporte al intentar cerrar una oportunidad de alto valor? – Usando el correo electrónico, ¿verdad?

Con el tiempo, ¿cuántas alertas de correo electrónico vas a enviar? A veces, estas alertas por correo electrónico pueden ser irritantes, al menos para mí. Si es así, ¿podemos manejar un poco mejor el proceso de notificación a los miembros del equipo? ¡Con el nuevo lanzamiento de Salesforce, ciertamente podemos! ¡Ahora, en lugar de alertas por correo electrónico, podemos enviar una notificación automática a los usuarios en su dispositivo móvil (se requiere la aplicación móvil Salesforce) o Lightning Experience (escritorio) ! Tomemos un caso de uso comercial para comprender: qué es una notificación automática; cómo enviar automáticamente una notificación automática a los usuarios; y, finalmente, cómo se ve para los usuarios finales.

Donna Serdula trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Es una administradora experimentada de Salesforce y es experta en el uso de la automatización para eliminar los procesos manuales. Desde los últimos meses, recibe una solicitud del equipo de ventas para reducir la cantidad de notificaciones por correo electrónico que reciben de Salesforce. Donna identificó un caso de uso: desea reemplazar la notificación por correo electrónico con una nueva notificación de inserción, siempre que una oportunidad se marque como "Cerrada ganada", envíe una notificación de inserción a los miembros del equipo de oportunidades en su aplicación móvil Salesforce o Lightning Experience (escritorio).

Enfoque de Campeón de Automatización (I-do):

Hasta ahora, Apex era una y única solución; pero, a partir del lanzamiento de Summer'19 , podemos usar Salesforce Flow para resolver el requisito comercial anterior . ¡Y lo haremos!

¿Qué es una Notificación Push?

Las notificaciones automáticas son mensajes que se envían al dispositivo de un usuario, ya sea de escritorio o móvil. sin nombre

sin nombre A partir del lanzamiento de Summer'19, los usuarios pueden ver recibir/ver notificaciones automáticas en (1) el centro de notificaciones de la aplicación móvil Salesforce; y, (2) si el administrador del sistema lo configura así, los usuarios también pueden ver la notificación de inserción en el centro de notificaciones de Lightning Experience (Escritorio).

Blog 93.2

Blog 93.2

Antes de tratar de comprender el aspecto técnico de la solución, dediquemos un tiempo a comprender el flujo general a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo y comprenderlo.

Para enviar una notificación en dispositivos móviles o escritorio, Salesforce utilizará tipos de notificación personalizados. La notificación personalizada contiene detalles sobre cómo muestra un banner abreviado con el título, el subtítulo y de dos a cuatro líneas de texto del cuerpo de la notificación. Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Donna mediante Salesforce Flow . Debemos:

  1. Crear una nueva notificación personalizada
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Crear una fórmula para construir el título de la notificación
    3. Crear una fórmula para construir el cuerpo de la notificación
    4. Cree una variable de colección para almacenar las identificaciones de los destinatarios
    5. Agregue un elemento de decisión para verificar la etapa y el monto de la oportunidad
    6. Agregue un elemento Obtener para encontrar el tipo de notificación personalizada Id.
    7. Pasos para completar los ID de los destinatarios
      1. Agregue un elemento Obtener registros para buscar miembros del equipo de oportunidades
      2. Agregar un elemento de decisión para comprobar si existen miembros del equipo de oportunidades
      3. Agregue un elemento Loop para extraer registros de la variable de colección (Del paso 7.3)
      4. Agregue un elemento de asignación para agregar el ID de usuario del equipo de oportunidad en una variable de colección (creado en el paso 4)
    8. Agregar acción: enviar notificación personalizada

Paso 1: cree un tipo de notificación personalizado

  1. Vaya a Configuración (icono de engranaje) | Configuración | HERRAMIENTAS DE PLATAFORMA | Generador de notificaciones | Tipos de notificación y haga clic en el botón Nuevo.
  2. Cree un nuevo Tipo de notificación personalizada , de la siguiente manera: Blog 93.4

Paso 2.1: Flujo de Salesforce: definir las propiedades del flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro y haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
        1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: Flujo de Salesforce: fórmula para construir el título de notificación push

  1. En Caja de herramientas , seleccione Administrador y , a continuación, haga clic en Nuevo recurso para crear el título de la notificación de inserción.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : para T_Title
    3. Tipo de datos : Texto
    4. Fórmula : 'Oportunidad – '+”+{!$Record.Name}
  3. Haga clic en Listo .

Paso 2.3: Flujo de Salesforce: fórmula para construir el cuerpo de notificación push

  1. En Caja de herramientas , seleccione Administrador y , a continuación, haga clic en Nuevo recurso para crear el cuerpo de la notificación de inserción.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de la API : forT_Body
    3. Tipo de datos : Texto
    4. Fórmula : 'Se cerró correctamente con '+”+{!$Record.Owner.FirstName}+' '+ {!$Record.Owner.LastName}
  3. Haga clic en Listo .

Paso 2.4: Flujo de Salesforce: cree una variable de colección para almacenar las identificaciones de los destinatarios

  1. En Caja de herramientas , seleccione Administrador y , a continuación, haga clic en Nuevo recurso para almacenar los ID de usuario de los miembros del equipo de oportunidades.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Variable
    2. Nombre de API : varT_RecipientIds
    3. Tipo de datos : Texto
    4. Haga clic en la casilla de verificación – Permitir múltiples valores (colección)
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. Haga clic en Listo .

Paso 2.5: Flujo de Salesforce: uso del elemento de decisión para verificar la etapa y el monto de la oportunidad

Ahora usaremos el elemento Decisión para verificar la etapa y asegurarnos de que sea igual a Cerrada ganada y que la cantidad sea mayor o igual a $ 1 millón.

  1. En Flow Designer, haga clic en el icono + y seleccione Elemento de decisión.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.StageName}
      2. Operador: Se Cambia
      3. Valor: {!$ConstanteGlobal.True}
    2. Haga clic en Agregar condición
    3. Fila 2 :
      1. Recurso: {!$Record.StageName}
      2. Operador: Igual
      3. Valor: Cerrado Ganado
    4. Haga clic en Agregar condición
    5. Fila 2 :
      1. Recurso: {!$Record.Amount}
      2. Operador: mayor que o igual
      3. Valor: 1000000


Paso 2.6: Flujo de Salesforce: agregar un elemento Obtener registro para encontrar un Id. de tipo de notificación personalizado

El siguiente paso es obtener el Id. de tipo de notificación personalizada.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Tipo de notificación personalizada de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo: nombre del desarrollador
      2. Operador: Igual
      3. Valor: Opportunity_Closed_Won_Notification
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.7.1: Flujo de Salesforce: agregar un elemento Obtener registro para buscar miembros del equipo de oportunidades

El siguiente paso es obtener los miembros del equipo de oportunidad de la oportunidad actual.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Miembro del equipo de oportunidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo: ID de oportunidad
      2. Operador: Igual
      3. Valor: {!$Record.OpportunityId}
  6. Cuántos registros almacenar:
    1. seleccione Todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.7.2: Flujo de Salesforce: uso del elemento de decisión para comprobar si existen o no registros de miembros del equipo de oportunidades

Ahora usaremos el elemento Decisión para verificar la Variable de recopilación de registros del paso 2.7.1 para encontrar si devuelve los miembros del equipo de oportunidades o no.

  1. En Flow Designer, haga clic en el icono + y seleccione Elemento de decisión.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Team_members}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Haga clic en Listo .

Paso 2.7.3: Flujo de Salesforce: agregue un elemento de bucle para extraer registros de la variable de recopilación de registros

El siguiente paso es extraer los miembros del equipo de oportunidad de Variable de recopilación de registros del paso 2.7.1 uno por uno. Para ello, utilizaremos el Elemento Loop .

  1. En Flow Designer, haga clic en el ícono + y seleccione el elemento Loop.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Para la Variable de recopilación de registros, seleccione {!Get_Team_Members} .
  4. Para especificar la dirección para iterar sobre la colección, seleccione la opción Del primer elemento al último elemento
  5. Haga clic en Listo .

Paso 2.7.4: Flujo de Salesforce: agregar una asignación para agregar una variable de recopilación de registros de ID de usuario de miembros del equipo de oportunidades (creada en el paso 4)

El siguiente paso es agregar el ID de usuario del miembro del equipo de la oportunidad en una variable de colección que creamos en el paso 4. Por lo tanto, al final, enviaremos una notificación automática a los miembros del equipo de la oportunidad.

  1. En Flow Designer, haga clic en el ícono + y seleccione el elemento Asignación.
  2. Introduzca un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Establecer valores de variables
    1. Fila 1 :
      1. Campo: {!varT_RecipientIds}
      2. Operador: Agregar
      3. Valor: {!Team_Members.UserId}
  4. Haga clic en Listo .


Paso 8: Agregar acción: enviar notificación personalizada

A continuación, usaremos otra acción principal , Enviar notificación personalizada , para enviar notificaciones automáticas a los miembros del equipo de oportunidades. Ahora sigue los pasos a continuación:

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción.
  2. Debajo de Filtrar por , seleccione Tipo .
  3. Seleccione Enviar notificación personalizada en el menú desplegable
  4. Etiquete la nueva acción Enviar Notificación Push
  5. Establecer valores de entrada
    1. ID de tipo de notificación personalizada : {!Get_Custom_Notification_Type.Id}
    2. Cuerpo de notificación : {!forT_Body}
    3. Título de la notificación : {!forT_Title}
    4. ID de destinatario : {!varT_RecipientIds}
    5. Id. de destino : {!$Record.Id}
  6. Haga clic en Listo .


Al final, Donna's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:
  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 54
  5. Etiqueta de la entrevista: Record-Trigger: Oportunidad después de guardar {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .

Prueba de concepto

La próxima vez, cuando un usuario actualice la oportunidad a 'Cerrada ganada', el proceso que creamos (usando Salesforce Flow) se activará y enviará la notificación push a los miembros del equipo de oportunidades en la aplicación móvil Salesforce y el escritorio (Lightning Experience) .

Blog 93.11

Blog 93.11

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?

Házmelo saber tuiteándome en @automationchamp o búscame en LinkedIn.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/01/25/getting-started-with-process-builder-part-93-enhance-productivity-with-push-notification-to-desktop-or-mobile/

Categories
Developers

Introducción a Salesforce Flow – Parte 39 (Notificación de fuera de la oficina para publicación de Chatter)

Gran idea o pregunta duradera:

¿Cómo configurar un mensaje de fuera de la oficina para una publicación de charla? Fuera de la oficina mensajes son respuestas automáticas de correo electrónico que salen a colegas, clientes y clientes cuando esté fuera del trabajo. Puede realizar esta configuración en su cuenta de correo electrónico , pero no existen tales configuraciones disponibles en Salesforce. Hay algunas aplicaciones disponibles en AppExchange para este propósito. En este artículo, crearemos una automatización que permita a los usuarios configurar un mensaje de fuera de la oficina para publicaciones de charla.

Objetivos:

Después de leer esta publicación de blog, podrá comprender:
  • ¿Cuándo debe usar el flujo activado por registro antes de guardar o después de guardar?
  • Utilice un elemento de decisión para buscar: la variable de colección de registros contiene un registro o no
  • Utilice el flujo activado por registros después de guardar para crear registros (seguro a granel)
Corey Eridon trabaja como administrador del sistema en Universal Containers (UC). Ha recibido un nuevo requisito para implementar la notificación Fuera de la oficina para la publicación de Chatter. Significa que si un usuario está fuera de la oficina y cada vez que alguien lo menciona en una publicación de Chatter ( TextPost o LinkPost ) , publica automáticamente un comentario fuera de la oficina. Similar a la siguiente captura de pantalla:

Enfoque de campeón de automatización (I-do):

Hay varias formas de resolver los requisitos comerciales anteriores. Puede utilizar el disparador de Apex , Salesforce Flow, Process Builder y más. Para resolver este requisito, utilizaremos el flujo activado por registro después de guardar . Consulte este artículo para comprender por qué estamos usando el flujo activado por registro posterior al guardado para este escenario. Antes de continuar, debe comprender el FeedComment objeto . Representa una entrada en la fuente, como cambios en una fuente de registro, incluidas publicaciones de texto, publicaciones de enlaces y publicaciones de contenido.
Nombre del campo Detalles
CommentBody El texto del comentario. grupo.
Tipo de comentario El tipo de comentario:
  • ContentComment: un archivo subido a un comentario
  • TextComment: una entrada de texto directa en un comentario
FeedItemId El ID del elemento del feed que contiene el comentario.
CreatedById El ID del usuario que agregó este elemento al feed.
Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo y comprenderlo. Comencemos a construir este proceso de automatización.

Práctica guiada (lo hacemos):

Hay 2 pasos para resolver los requisitos comerciales de Corey utilizando el flujo activado por registro después de guardar . Debemos:
  1. Cree algunos campos personalizados en el objeto de usuario
  2. Flujo de Salesforce
    1. Definir propiedades de flujo para flujo activado por registro
    2. Agregue un elemento de obtención de registros para encontrar todos los mensajes de fuera de la oficina
    3. Agregue un elemento de decisión para verificar si existe un mensaje de fuera de la oficina
    4. Elemento de bucle para extraer registros de la variable de colección de registros (paso 2.2)
    5. Agregue un elemento de decisión para verificar si la variable de ciclo contiene los nombres mencionados en la publicación de charla
    6. Agregue un elemento de asignación para construir (variable de registro) el comentario de fuera de la oficina
    7. Agregar un elemento de asignación para agregar todos los comentarios a una variable de colección de registros
    8. Agregue un elemento de creación de registros para agregar comentarios a la publicación (seguro a granel)

Paso 1: Crear pocos campos personalizados en el objeto Usuario

En primer lugar, crearemos los siguientes campos en el objeto de usuario para almacenar los detalles fuera de la oficina.
Nombre del campo Tipo de datos
Fecha de inicio fuera de la oficina Fecha
Fuera de la oficina Fecha de finalización Fecha
Mensaje fuera de la oficina TextArea
  1. Haga clic enConfiguración .
  2. En el Administrador de objetos, escribaUsuario .
  3. SeleccioneCampos y relaciones , luego haga clic en Nuevo.
  4. Seleccione Fecha como tipo de datos, luego haga clic en Siguiente.
  5. Ingrese laetiqueta de campo y haga clic en la tecla de tabulación, el nombre de API se completará.
  6. Como práctica recomendada, introduzca siempre una descripción .
  7. Configure laSeguridad a nivel de campo para los perfiles , asegúrese de configurar este campo como lectura-escritura.
  8. Agregue este campo a Diseño de página .
  9. Haga clic enGuardar.

Paso 2.1: Flujo de Salesforce – Definir propiedades de flujo

Como tenemos el requisito de crear un registro en ( FeedComment ) cuando se crea una publicación de charla y tiene un usuario etiquetado que se encuentra actualmente fuera de la oficina. Es por eso que tenemos que usar el flujo After-save en FeedItem.
  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro   y haga clic en Siguiente y configure el flujo de la siguiente manera:
    1. ¿Cómo quieres empezar a construir ? Freeform
    2. Activar el flujo cuando : se crea un registro
    3. Ejecutar flujo : después de que se guarde el registro
    4. Objeto : elemento de feed
  5. SeleccioneSe cumplen todas las condiciones (O) .
  6. Establecer condiciones
    1. Fila 1
      1. Campo: FeedItem | Tipo
      2. Operador: Igual a
      3. Valor: TextPost
    2. Haga clic en Agregar condición
    3. Fila 2
      1. Campo: FeedItem | Tipo
      2. Operador: Igual a
      3. Valor: LinkPost
  7. Haz clic enListo .

Paso 2.2: Flujo de Salesforce: agregar un elemento Obtener registro para encontrar los mensajes de fuera de la oficina

El elemento Obtener registros se utilizará para encontrar los mensajes de fuera de la oficina de los registros de usuario.
  1. En Caja de herramientas , seleccione Elemento .
  2. Arrastre y suelte el elemento Obtener registros en el diseñador de flujo.
  3. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  4. Seleccione elusuario   objeto de la lista desplegable.
  5. SeleccioneSe cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo: Usuario | Out_of_office_Start_Date__c
      2. Operador: menor o igual
      3. Valor: {! $ Flow.CurrentDate}
    2. Haga clic en Agregar condición
    3. Fila 1:
      1. Campo: Usuario | Out_of_office_End_Date__c
      2. Operador: mayor o igual que
      3. Valor: {! $ Flow.CurrentDate}
  7. Cuántos registros almacenar:
    1. seleccionartodo el registro
  8. Cómo almacenar datos de registro:
    1. Elija la opción para almacenar automáticamente todos los campos .
  9. Haz clic enListo .

Paso 2.3: Flujo de Salesforce – Uso del elemento de decisión – ¿Se encuentran mensajes de fuera de la oficina?

Ahora agregue el elemento Decisión para decidir si encontramos o no los mensajes de fuera de la oficina. Si el recurso (variable de recopilación de registros) es nulo, significa que no se encontraron mensajes de fuera de la oficina. Puede recibir ayuda de la siguiente captura de pantalla:
  1. En Caja de herramientas , seleccione Elemento .
  2. Arrastre y suelte el elemento Decisión en el diseñador de flujo.
  3. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  4. En Detalles del resultado ,   ingrese la etiqueta que el nombre de la API se completará automáticamente.
  5. Requisitos de las condiciones para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {! Out_of_Office_Messages}
      2. Operador: es nulo
      3. Valor: {! $ GlobalConstant.False}
  6. Haz clic enListo .

Paso 2.4: Flujo de Salesforce: bucle para recuperar registros de la variable de colección

  1. Arrastre y suelte el elemento Loop en el diseñador de flujo.
  2. Ingrese un nombre en el campo Etiqueta ( Extraer registro ); el nombre de la API se completará automáticamente.
  3. Para la variable de colección, seleccione {! Out_of_Office_Messages} .
  4. Para especificar la dirección para iterar sobre la recopilación   selecciona la opcion   Primer artículo al último artículo .
  5. Haz clic en Listo .

Paso 2.5: Flujo de Salesforce: uso del elemento de decisión: compruebe si la variable de bucle contiene los nombres mencionados en la publicación de Chatter

Ahora agregue el elemento Decisión para decidir sila variable de bucle contiene los nombres mencionados en la publicación de charla. Puede recibir ayuda de la siguiente captura de pantalla:
  1. En Caja de herramientas , seleccione Elemento .
  2. Arrastre y suelte el elemento Decisión en el diseñador de flujo.
  3. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  4. En Detalles del resultado ,   ingrese la etiqueta que el nombre de la API se completará automáticamente.
  5. Requisitos de las condiciones para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {! $ Record.Body}
      2. Operador: contiene
      3. Valor: {! Extract_Record.Name}
  6. Haz clic enListo .

Paso 2.6: Flujo de Salesforce: agregar valores a una variable de registro

  1. Cree una variable de registro varRFeedComment de tipo Feed Comment para crear un comentario fuera de la publicación.
  2. Arrastre y suelte el elemento Asignación en el diseñador de flujo.
  3. Ingrese un nombre en el campoEtiqueta ( comentario de Construir OOO ) ; el nombre de la API se completará automáticamente.
  4. Establecer valores variables
    1. Fila 1:
      1. Campo: {! VarRFeedComment.CommentBody}
      2. Operador: Igual a
      3. Valor: {! Extract_Record.Out_of_office_Message__c}
    2. Haga clic en Agregar asignación
    3. Fila 2:
      1. Campo: {! VarRFeedComment.CommentType}
      2. Operador: Igual a
      3. Valor: TextComment
    4. Haga clic en Agregar asignación
    5. Fila 3:
      1. Campo: {! VarRFeedComment.FeedItemId}
      2. Operador: Igual a
      3. Valor: {! $ Record.Id}
    6. Haga clic en Agregar asignación
    7. Fila 4:
      1. Campo: {! VarRFeedComment.CreatedById}
      2. Operador: Igual a
      3. Valor: {! Extract_Record.Id}
  5. Haz clic en Listo .

Paso 2.7: Flujo de Salesforce: agregar valores a una variable de colección de registros

  1. Cree una variable de colección de registros varRFeedComments de tipo Feed Comment para almacenar la variable de registro (creada en el paso 2.6) para el proceso masivo.
  2. Arrastre y suelte el elemento Asignación en el diseñador de flujo.
  3. Ingrese un nombre en el campoEtiqueta ( Agregar registros a una colección ) ; el nombre de la API se completará automáticamente.
  4. Establecer valores variables
    1. Fila 1:
      1. Campo: {! VarRFeedComments}
      2. Operador: Agregar
      3. Valor: {! VarRFeedComment}
  5. Haz clic en Listo .

Paso 2.8: Flujo de Salesforce: crear registros para asociar archivos y registros de clientes potenciales

  1. Arrastre y suelte el elemento Crear registros en el diseñador de flujo.
  2. Ingrese un nombre en el campo Etiqueta ( Crear registros a partir de la colección ); el nombre de la API se completará automáticamente.
  3. Para Cuántos registros crear, seleccione Múltiples.
  4. Colección de registros de mapas : {! VarRFeedComments}
  5. Haz clic en Listo .
Al final, Corey’s Flow se verá como la siguiente captura de pantalla: Una vez que todo se vea bien, realice los pasos a continuación:
  1. Haga clic enGuardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic enMostrar avanzado .
  4. Versión de API para ejecutar el flujo : 51
  5. Etiqueta de la entrevista : Automatización fuera de la oficina {! $ Flow.CurrentDateTime}
  6. Haga clic enGuardar .
¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar.

Prueba de concepto

A partir de ahora, si un usuario publica un mensaje en Chatter y etiquetó a los usuarios que han configurado mensajes de fuera de la oficina, Salesforce Flow le agregará automáticamente un comentario de fuera de la oficina.
  1. Para probar esta funcionalidad, cree mensajes de Fuera de la oficina para pocos usuarios .
  2. Cree un TextPost o LinkPost y mencione los pocos usuarios para los que ha creado mensajes Fuera de la oficina.
… Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2020/12/05/out-of-office-notification-for-chatter-post-4/
Categories
Developers Salesforce

Introducción a Salesforce Flow – Parte 32 (Programar publicaciones de Chatter)

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo permite que sus usuarios programen previamente las publicaciones de Chatter?

Chatter es una excelente manera de impulsar la colaboración en su organización. Puede publicar estados , enlaces, archivos y comentarios en las publicaciones de otros, etc. Muchas veces encontré en la comunidad de Trailblazer que la gente pregunta sobre una forma de programar publicaciones de Chatter. Pero Salesforce no tiene ninguna función lista para usar para esto, por lo que la siguiente forma es usar la aplicación AppExchange.

En este artículo, mostraré cómo puede desarrollar su propia aplicación para programar publicaciones de Chatter también sin código.

Objetivos:

Después de leer esta publicación de blog, el lector podrá:

  • Utilice el flujo activado por registro después de guardar para crear un registro
  • Utilice el flujo activado por registro después de guardar para eliminar un registro (s)
  • Agregar una acción de rutas programadas en el flujo activado por registro después de guardar
  • Supervisar la cola de flujo en función del tiempo

Pamela Kline trabaja como administradora de sistemas en Universal Containers (UC). Ha recibido un requisito de la administración para permitir que sus usuarios programen con anticipación las publicaciones de Chatter. Lo que les ayudará a programar publicaciones con anticipación, por ejemplo, deseos de cumpleaños u otros anuncios importantes.

Enfoque de campeón de automatización (I-do):

Salesforce ahora (después del lanzamiento de Spring'21 ) le permite agregar acciones dependientes del tiempo en los flujos, similar al Generador de procesos. Esta es una mejora importante que a la larga traerá flujo al siguiente nivel.

Hay pocas soluciones posibles para el escenario empresarial anterior , pero usaremos el flujo activado por registro después de guardar   para solucionarlo . Consulte este artículo para comprender por qué estamos usando el flujo activado por registro posterior al guardado para este escenario.

Antes de continuar, debe comprender el FeedItem objeto . Representa una entrada en la fuente, como cambios en una fuente de registro, incluidas publicaciones de texto, publicaciones de enlaces y publicaciones de contenido.

Nombre del campo Detalles
Cuerpo Este es el mensaje que aparece en el feed.
Identificación de los padres El ID del tipo de objeto con el que está relacionado. Por ejemplo, establezca este campo en un UserId para publicar en el feed del perfil de alguien, o en un GroupId para publicar en un grupo específico.
Tipo El tipo de elemento de feed . En nuestro caso es Textpost.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (lo hacemos):

Hay 2 pasos para resolver los requisitos comerciales de Pamela utilizando el flujo activado por registro después de guardar . Debemos:

  1. Cree un objeto personalizado que se utilizará para almacenar publicaciones de Chatter programadas previamente
  2. Flujo de Salesforce
    1. Definir propiedades de flujo para flujo activado por registro
    2. Agregar una ruta programada
    3. Agregue un elemento de creación de registros para publicar un mensaje para charlar
    4. Agregue un elemento de eliminación de registros para eliminar el registro de publicación preprogramado

Paso 1: crea un objeto personalizado

El primer paso es crear un objeto personalizado Programar publicación de Chatter y algunos campos personalizados para almacenar información relacionada que se utilizará en el flujo de Salesforce.

En este ejemplo, he usado el campo Muro del usuario como una búsqueda del usuario donde puede seleccionar otro usuario. Si desea utilizar el mismo campo para usuarios o grupos, cambie este tipo de datos de campo a Texto y luego podrá ingresar la Id. Del usuario o Grupo donde desea publicar.

Nombre Tipo de datos Requerido Descripción
Área de texto (255) Escribe tu mensaje aquí
Fecha de publicación Fecha y hora Ingrese la fecha en la que desea publicar el mensaje
Muro del usuario Búsqueda (usuario) Dónde desea publicar un mensaje (muro de cualquier usuario específico)
  1. Haga clic en Configuración .
  2. En el Administrador de objetos, haga clic en Crear | Objeto personalizado .
  3. Ahora cree un objeto personalizado Programar publicación de Chatter y campos como se muestra en la captura de pantalla a continuación:
  4. Haga clic en Guardar.
  5. Asegúrese de asociar la pestaña con el objeto para que los usuarios puedan acceder a él.

Paso 2.1: Flujo de Salesforce – Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro   opción y haga clic en Siguiente   y configure el flujo de la siguiente manera:
    1. ¿Cómo quieres empezar a construir ? Freeform
    2. Activar el flujo cuando : se crea un registro
    3. Ejecutar flujo : después de guardar el registro
    4. Objeto : Programar publicación de Chatter
    5. Establecer condiciones: ninguna
  5. Haz clic en Listo .

Paso 2.2: Flujo de Salesforce: agregar rutas programadas

  1. En Inicio , seleccione Agregar rutas programadas (opcional) .
  2. En Rutas programadas, H aga en el Camino Nuevo programada.
  3. En Detalles de ruta programada ,   ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Fuente de tiempo: Scheduled_Chatter_Post__c: Fecha de publicación
  5. Número de compensación: 0
  6. Opciones de compensación: horas después
  7. Haz clic en Listo .

Paso 2.3 Flujo de Salesforce: agregar un elemento Crear registros para insertar un registro en el objeto FeedItem

El siguiente paso es publicar un mensaje para charlar, para ello usaremos el elemento Crear Registros .

  1. En Caja de herramientas , seleccione Elementos . Arrastre y suelte Crear registros en el lienzo.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Cuántos registros crear : uno
    3. Cómo configurar los campos de registro : use recursos separados y valores literales
    4. Objeto : FeedItem
    5. Establecer valores de campo para el elemento de feed
    6. Fila 1:
      1. Campo : Cuerpo
      2. Valor : {! $ Record.rakeshistomMVP__Message__c}
    7. Haga clic en Agregar fila
    8. Fila 2:
      1. Campo : ParentId
      2. Valor : {! $ Record.rakeshistomMVP__User_s_Wall__r.Id}
    9. Haga clic en Agregar fila
    10. Fila 3:
      1. Campo : Tipo
      2. Valor : TextPost
  3. Haz clic en Listo .

Paso 2.4: Flujo de Salesforce: agregue un elemento Eliminar registros para eliminar la publicación de Chatter programada

  1. Arrastre y suelte el elemento Eliminar registros en el diseñador de flujo.
  2. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
  4. Establecer registro (s) para eliminar
    1. Colección de discos o discos: {! $ Record}
  5. Haz clic en Listo .

Al final, Pamela's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los pasos a continuación:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 51
  5. Etiqueta de la entrevista : Programar publicaciones de Chatter {! $ Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar.

Prueba de concepto

A partir de ahora, si un usuario crea un registro en el objeto Programar publicación de Chatter , Salesforce Flow publicará automáticamente el mensaje en Chatter según el campo Fecha de publicación .

  1. Cree un nuevo registro de publicación programada.
  2. Espere hasta la fecha de publicación y luego verifique el perfil de charla de Tushar.

Controle el flujo de su programación

Para monitorear los flujos que están programados, navegue a la siguiente ruta:

  1. Vaya a Configuración (icono de engranaje) | Ambientes | Monitoreo | Flujo de trabajo basado en tiempo .
  2. Ahora busque su trabajo de flujo programado que muestra información como se muestra en la siguiente captura de pantalla:
  3. Utilice el botón Eliminar para eliminar el trabajo de flujo basado en el tiempo de la cola.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real?

Házmelo saber enviándome un tweet a @automationchamp o encuéntrame en LinkedIn.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2020/12/11/preschedule-chatter-posts-3/

Categories
Developers Salesforce

Introducción a Salesforce Flow – Parte 40 (Correo electrónico a cliente potencial con la ayuda de Salesforce Flow)

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo utilizar Flow y configurar el correo electrónico a cliente potencial en Salesforce?

Salesforce Flow es una característica poderosa proporcionada por Salesforce para minimizar el código en su organización. Al usarlo, puede crear, actualizar, eliminar registros, todo se arrastra y suelta. Con las mejoras recientes ( flujo activado por registro, flujo activado por programación ), Salesforce brinda más poder a los administradores para crear automatización SIN código.

Salesforce proporciona funciones de web a correo electrónico que permiten a las organizaciones capturar clientes potenciales desde su sitio web. Al mismo tiempo, Salesforce no ofrece la función de correo electrónico a cliente potencial. Hay algunas aplicaciones disponibles en AppExchange para este propósito. En este artículo, crearemos una automatización que permita a los usuarios crear un cliente potencial enviando un correo electrónico a una dirección de correo electrónico específica.

Objetivos:

Después de leer esta publicación de blog, podrá comprender:

  • ¿Cuándo debe usar el flujo activado por registro antes de guardar o después de guardar?
  • Cómo configurar el correo electrónico para registro de casos en Salesforce
  • Utilice el flujo activado por registro después de guardar para crear un registro
  • Utilice el flujo activado por registro después de guardar para eliminar un registro

Corey Eridon trabaja como administrador del sistema en Universal Containers (UC). Ha recibido un nuevo requisito para implementar el correo electrónico a cliente potencial para la organización, de modo que cuando los representantes de ventas envíen un correo electrónico a leadstosalesforce@gurukuloncloud.com, se cree automáticamente un cliente potencial en Salesforce. Asegúrese de asignar el cliente potencial al representante de ventas que envió el correo electrónico.

Enfoque de campeón de automatización (I-do):

Salesforce ahora le permite agregar acciones dependientes del tiempo en los flujos, similar al Generador de procesos . Esta es una mejora importante que a la larga traerá flujo al siguiente nivel.

Hay varias formas de resolver los requisitos comerciales anteriores. Puede utilizar el disparador de Apex , Salesforce Flow, Process Builder y más. Para resolver este requisito, utilizaremos el flujo activado por registro después de guardar . Consulte este artículo para comprender por qué estamos usando el flujo activado por registro posterior al guardado para este escenario.

Antes de continuar, dedique un momento a comprender cómo el correo electrónico a caso captura los datos del correo electrónico y los almacena en el registro del caso.

Nombre del campo Campos de caso
Asunto del email Sujeto
Cuerpo del correo electronico Descripción
Correo electrónico Correo electrónico web
Nombre Nombre web

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (lo hacemos):

Hay 5 pasos para resolver los requisitos comerciales de Corey utilizando el flujo activado por registro después de guardar . Debemos:

  1. Agregue un valor (cliente potencial) al campo de origen del caso de la lista de selección en el objeto del caso
  2. Agregue un valor (correo electrónico) al campo de origen de la fuente del cliente potencial de la lista de selección en el objeto del cliente potencial
  3. Configurar un correo electrónico a caso para el cliente potencial de origen del caso
  4. Configure el reenvío de leadstosalesforce@gurukuloncloud.com a la dirección de servicio de correo electrónico
  5. Flujo de Salesforce
    1. Defina las propiedades del flujo para el flujo activado por registros y verifique el origen del caso
    2. Agregar una ruta programada: 0 horas después de la fecha de creación
    3. Agregue un elemento de obtención de registros para encontrar la identificación del usuario del representante de ventas
    4. Agregue un elemento de creación de registros para crear un cliente potencial
    5. Agregue un elemento de eliminación de registros para eliminar el caso

Paso 1: agregar valor adicional al campo de origen del caso en el caso

En primer lugar, agregaremos un valor adicional al campo de origen del caso en el objeto Caso.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Caso .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo.
  4. Haga clic en el campo Origen del caso.
  5. Navegue hasta Valores de la lista de selección de origen de caso y haga clic en el botón Nuevo.
  6. Agregue un nuevo valor de Cliente potencial , si tiene algún tipo de registro, asegúrese de seleccionar los tipos de registro relevantes.
  7. Haga clic en Guardar.

Paso 2: agregar valor adicional al campo de origen del cliente potencial en el cliente potencial

Agregaremos un valor adicional al campo de origen del cliente potencial en el objeto Cliente potencial.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Cliente potencial .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo.
  4. Haga clic en el campo Fuente de clientes potenciales .
  5. Vaya a Valores de la lista de selección de fuente de clientes potenciales / cuenta y haga clic en el botón Nuevo.
  6. Agregue un nuevo valor Correo electrónico , si tiene algún tipo de registro, asegúrese de seleccionar los tipos de registro relevantes.
  7. Haga clic en Guardar.

Paso 3: Configurar el correo electrónico para registro de casos o el cliente potencial de origen del caso

Ahora agregaremos un correo electrónico a caso para el cliente potencial de origen del caso. Consulte el módulo del comienzo del sendero para obtener instrucciones paso a paso.

Paso 4: Configure el reenvío de correo electrónico de leadstosalesforce@gurukuloncloud.com a la dirección del servicio de correo electrónico

El siguiente paso es configurar un reenvío de correo electrónico desde leadstosalesforce@gurukuloncloud.com a la dirección de servicio de correo electrónico (correo electrónico a caso). Significa que cuando alguien envió un correo electrónico cuando un representante de ventas envió un correo electrónico a leadstosalesforce@gurukuloncloud.com , reenviará una copia a la dirección de servicio de correo electrónico (correo electrónico a caso) que posteriormente crea un caso en Salesforce.

Paso 5.1: Flujo de Salesforce – Definir propiedades de flujo

Como tenemos el requisito de crear un registro en ( Cliente potencial ) cuando se crea un caso a partir del correo electrónico con el cliente potencial de origen. Es por eso que tenemos que usar el flujo After-save en Case .

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro   opción y haga clic en Siguiente   y configure el flujo de la siguiente manera:
    1. ¿Cómo quieres empezar a construir ? Freeform
    2. Activar el flujo cuando : se crea un registro
    3. Ejecutar flujo : después de que se guarde el registro
    4. Objeto : Caso
  5. Seleccione TODAS LAS CONDICIONES SE CUMPLEN (Y) .
  6. Establecer condiciones
    1. Fila 1
      1. Campo: Caso | Origen
      2. Operador: Igual a
      3. Valor: plomo
  7. Haz clic en Listo .

Paso 5.2: Flujo de Salesforce: agregar rutas programadas 0 horas después de la fecha de creación

  1. En Inicio , seleccione Agregar rutas programadas (opcional) .
  2. En CAMINOS PROGRAMADOS, haga clic en Nueva ruta programada .
  3. En Detalles de ruta programada ,   ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Fuente de tiempo: Usuario: Fecha de creación
  5. Número de compensación: 0
  6. Opciones de compensación: horas después
  7. Haz clic en Listo .

Paso 5.3: Flujo de Salesforce: agregar un elemento Obtener registro para encontrar el ID de usuario del representante de ventas

El elemento Obtener registros se utilizará para encontrar la identificación del usuario del representante de ventas.

  1. En Caja de herramientas , seleccione Elemento .
  2. Arrastre y suelte el elemento Obtener registros en el diseñador de flujo.
  3. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  4. Seleccione el usuario   objeto de la lista desplegable.
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo: Caso | Correo electrónico
      2. Operador: Igual a
      3. Valor: {! $ Record.SuppliedEmail}
  7. Cuántos registros almacenar:
    1. seleccione solo el primer registro
  8. Cómo almacenar datos de registro:
    1. Elija la opción para almacenar automáticamente todos los campos .
  9. Haz clic en Listo .

Paso 5.4: Flujo de Salesforce: agregar un elemento Crear registros para crear un cliente potencial

El siguiente paso es crear un nuevo lead, para ello usaremos el elemento Create Records .

  1. En Caja de herramientas , seleccione Elementos . Arrastre y suelte Crear registros en el lienzo.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Cuántos registros crear : uno
    3. Cómo configurar los campos de registro : use recursos separados y valores literales
    4. Objeto : Plomo
    5. Establecer valores de campo para el agradecimiento
    6. Fila 1:
      1. Campo : LeadSouurce
      2. Valor : correo electrónico
    7. Haga clic en Agregar fila
    8. Fila 2:
      1. Campo : Apellido
      2. Valor : {! $ Record.Subject}
    9. Haga clic en Agregar fila
    10. Fila 3:
      1. Campo : Empresa
      2. Valor : {! $ Record.Subject}
    11. Haga clic en Agregar fila
    12. Fila 4:
      1. Campo : Descripción
      2. Valor : {! $ Record.Description}
    13. Haga clic en Agregar fila
    14. Fila 5:
      1. Campo : OwnerId
      2. Valor : {! Find_Sales_Rep_User_Id.Id}
  3. Haz clic en Listo .

Paso 5.5: Flujo de Salesforce: agregar un elemento Eliminar registros para eliminar un caso

  1. Arrastre y suelte el elemento Eliminar registros en el diseñador de flujo.
  2. Ingrese un nombre en el campo Etiqueta; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
  4. Establecer registro (s) para eliminar
    1. Colección de discos o discos: {! $ Record}
  5. Haz clic en Listo .

Al final, Corey's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los pasos a continuación:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 51
  5. Etiqueta de la entrevista : correo electrónico al cliente potencial {! $ Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar.

Prueba de concepto

De ahora en adelante, si un representante de ventas envió un correo electrónico a leadstosalesforce@gurukuloncloud.com , reenvía una copia a la dirección de servicio de correo electrónico (correo electrónico a caso) que creará un caso. Al crear el caso, Salesforce Flow se activará y creará un cliente potencial y luego eliminará el caso.

  1. Para probar esta funcionalidad, envíe un correo electrónico a la dirección de correo electrónico leadstosalesforce@gurukuloncloud.com.
  2. Vuelva a Salesforce y verifique la Vista de prospectos de hoy y abra la página de detalles de prospectos.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué aprendió de esta publicación, es relevante para usted y cómo modificará los conceptos enseñados en la publicación para sus propios procesos comerciales?

Haz una publicación y etiquétame en Twitter @automationchamp , usando #AutomationChampion.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2020/12/17/email-to-lead-with-the-help-of-salesforce-flow/