Categories
Developers

Pasar datos del componente web Lightning al flujo de pantalla

Última actualización el 17 de julio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo pasa datos del componente web lightning al flujo de pantalla principal?

Objetivos:

Después de leer este blog, podrá:

  • Incruste un componente web relámpago dentro del flujo de pantalla
  • Pase los datos del componente web lightning a una variable de flujo
  • Interactuar con el componente web lightning y los elementos de flujo de pantalla en la misma pantalla
  • y mucho más

En el pasado, escribí algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Uso del componente web Lightning para mostrar un banner de alerta
  2. Obtenga el Id. de registro y el nombre de la API del objeto en el componente web Lightning

Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Janel tiene un requisito comercial para hacer lo siguiente:

  1. Desarrollar un componente LWC capaz de recibir entradas de latitud y longitud.
  2. Pase los valores introducidos a los componentes de flujo de pantalla correspondientes.

Construir pantallas con componentes reactivos

Con la función Crear pantallas con componentes interactivos (actualmente en versión beta), ahora puede habilitar la interacción directa entre un componente web Lightning y otros elementos de flujo en la misma pantalla.

Anteriormente, no existía una disposición directa para la interacción dinámica entre un componente web Lightning y los elementos de flujo. Como resultado, los usuarios tenían que navegar a la siguiente pantalla para ver los datos pasados por el componente web Lightning en Screen Flow.

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

Al crear el componente web Lightning, también utilizaremos el evento FlowAttributeChangeEvent . Esto permitirá que un componente controle la navegación del flujo y notifique al flujo los cambios en los valores de los atributos.

Los eventos FlowAttributeChangeEvent solo se admiten en componentes donde el destino es lightning__FlowScreen .

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Janel utilizando Lightning Web Component y Screen Flow . Debemos:

  1. Cree un componente web Lightning de ubicación de entrada para Screen Flow
  2. Pasos de flujo de Salesforce
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue una pantalla para mostrar el componente personalizado de ubicación de entrada
    3. Agregar un componente de número de entrada para mostrar la latitud desde la ubicación de entrada Componente LWC
    4. Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC

Paso 1: Cree un componente web Lightning de ubicación de entrada para Screen Flow

En primer lugar, cree un componente web Lightning de ubicación de entrada con el siguiente código. El componente lightning-input-location representa un campo de geolocalización compuesto que acepta valores de latitud y longitud introducidos por el usuario, siendo ambos coordenadas geográficas expresadas en grados decimales. Le permite identificar ubicaciones utilizando estas coordenadas.

El rango aceptable para la latitud está entre -90 y 90, mientras que la longitud acepta valores de -180 a 180. Cualquier entrada más allá de estos rangos especificados genera un mensaje de error. Este ejemplo muestra un campo de geolocalización compuesto, que muestra una latitud de 27,70750 y una longitud de -122,3948370.

Si no sabe cómo crear un componente Lightning, consulte esta guía para desarrolladores, Crear un componente web Lightning .

lwcToScreenFlow.html

Utilizaremos el componente de ubicación de entrada de rayos para aceptar valores de latitud y longitud. Desglosemos el código:

  • En LWC, el archivo HTML de cada componente debe envolverse con una etiqueta <plantilla> .
  • latitude={latitude} :- Esto vincula la propiedad de latitud de la clase JavaScript de LWC con el atributo de latitud del componente.
  • longitude={longitude} :- Similar a la latitud, esto une la propiedad de longitud de la clase JavaScript de LWC con el atributo de longitud del componente.
  • onchange={handleChange} :- Esto configura un detector de eventos en el componente. Cada vez que cambia el valor del componente (ya sea latitud o longitud), se llama al método handleChange de la clase JavaScript de LWC.

<plantilla> <relámpago-entrada-ubicación etiqueta="Coordenadas predeterminadas" latitud={latitud} longitud={longitud} onchange={handleChange}> </ubicación-de-entrada-del-relámpago>
</plantilla>
lwcToScreenFlow.js

Este código JavaScript de muestra utiliza el decorador @api para crear propiedades públicas, es decir, accesibles desde otros componentes o utilizadas en plantillas HTML. Por ejemplo, @api latitude y @api longitude declaran dos propiedades públicas.

  • FlowAttributeChangeEvent crea y distribuye el evento personalizado que transfiere datos del componente web Lightning a un flujo.
  • handleChange(event) es un método de controlador de eventos que se llama cuando ocurre un evento de cambio en el componente lightning-input-location en la plantilla HTML de LWC.
  • this.latitude = event.target.latitude y this.longitude = event.target.longitude , estas líneas actualizan las propiedades de latitud y longitud con los valores del objetivo del evento (el componente lightning-input-location).
  • [“latitud”, “longitud”].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(loc, this[loc]))) , esta línea recorre una matriz que contiene cadenas de latitud y longitud, y para cada uno de estos, envía un nuevo FlowAttributeChangeEvent.

importar { LightningElement, api } desde 'lwc';
importar {FlowAttributeChangeEvent} desde 'lightning/flowSupport'; exportar la clase predeterminada LwcToScreenFlow extiende LightningElement { @api latitud; @api longitud; handleChange(evento){ esta.latitud = evento.objetivo.latitud; this.longitude = event.target.longitude; ["latitud", "longitud"].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(ubicación, esta[ubicación])) ); }
}
lwcToScreenFlow.js-meta.xml

El elemento isExposed se establece en verdadero, lo que hace que el componente esté disponible para su uso en herramientas como Lightning App Builder o Flow Builder. El elemento de objetivos se usa para especificar dónde se puede usar su componente. En este caso, la etiqueta lightning__FlowScreen significa que este componente está diseñado para usarse en las pantallas de Salesforce Flow.

Los elementos targetConfigs y targetConfig le permiten definir propiedades que se pueden establecer en el contexto del constructor. En este caso, las propiedades son latitud y longitud . Ambos están configurados para ser del tipo Integer y tienen la función de outputOnly , lo que significa que se pueden configurar en el flujo, pero el usuario no puede modificarlos dentro del componente. Estas propiedades se pueden usar para pasar datos del LWC al flujo.


<?versión xml="1.0" codificación="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadatos"> <apiVersion>58.0</apiVersion> <isExposed>verdadero</isExposed> <objetivos> <target>relámpago__FlowScreen</target> </objetivos> <configuraciones de destino> <targetConfig objetivos="relámpago__FlowScreen"> <property label="Latitude" name="latitude" type="Integer" role="outputOnly"/> <property label="Longitud" name="longitud" type="Integer" role="outputOnly"/> </targetConfig> </configuraciones de destino>
</LightningComponentBundle>

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 , luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2.2: agregue una pantalla para mostrar el componente personalizado de ubicación de entrada

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Haga clic en Listo.

Paso 2.3: Agregue un componente de número de entrada para mostrar la latitud desde el componente LWC de ubicación de entrada

  1. En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Valor predeterminado : {!lwcToFlow.latitude}
  3. Haga clic en Listo.

Paso 2.4: Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC

  1. En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Valor predeterminado : {!lwcToFlow.longitude}
  3. Haga clic en Listo.

Al final, Janel'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 : 58
  5. Etiqueta de entrevista : Pase de Screen Flow a LWC {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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/07/17/pass-data-from-lightning-web-component-to-screen-flow-3/

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

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

¡Múltiples acciones programadas dentro de un solo flujo!

Última actualización el 2 de abril de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo programa varios correos electrónicos con Salesforce Flow?

Objetivos:

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

  • Cómo utilizar Salesforce Flow para enviar varias alertas por correo electrónico mediante Rutas programadas
  • y mucho más

Pamela Kline trabaja como administradora de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Pamela recibió un requisito: tan pronto como se cierre un caso, realice las siguientes tareas:

  • Envíe un correo electrónico de seguimiento al cliente 2 días después de que se complete la Fecha de cierre del caso.
  • Envíe una encuesta de satisfacción al cliente 15 días después de la Fecha de cierre del caso.

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

Salesforce Flow es una de las herramientas más poderosas proporcionadas por Salesforce para implementar requisitos comerciales de forma declarativa . Al usarlo, se puede minimizar el uso de códigos en su organización de Salesforce. ¡La mejor parte es que no tiene que escribir clases de prueba para sus flujos! La implementación de Salesforce Flow es muy fácil: crea un flujo, lo prueba y luego usa un conjunto de cambios para implementarlo en producción. Para lograr el dominio de Salesforce Flow, debe comprender sus capacidades, como llamar a una clase de Apex, etc. Hoy analizaremos una de las características de Salesforce Flow: Rutas programadas.

Con Scheduled Paths, es más fácil: (1) optimizar la capacidad de respuesta de ventas; (2) automatizar las acciones de seguimiento de Casos y Oportunidades importantes; y (3) respaldar las necesidades de su negocio, ¡todo dentro de un solo proceso!

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.

Es bastante fácil crear dos procesos para resolver el requisito comercial anterior; sin embargo, en este caso, utilizaremos un proceso para incorporar ambos requisitos.

Comencemos a construir el proceso de automatización.

Práctica guiada (nosotros hacemos):

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

  1. Crear una plantilla de correo electrónico para el correo electrónico de seguimiento
  2. Crear una alerta de correo electrónico para el correo electrónico de seguimiento
  3. Cree una plantilla de correo electrónico para el correo electrónico de la encuesta de satisfacción
  4. Cree una alerta de correo electrónico para el correo electrónico de la encuesta de satisfacción
  5. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar una ruta programada
    3. Agregar acción: alerta de correo electrónico de seguimiento
    4. Agregar acción: alerta de correo electrónico de la encuesta de satisfacción

Paso 1: cree una plantilla de correo electrónico para el correo electrónico de seguimiento

  1. En el Iniciador de aplicación, escriba Plantillas de correo electrónico .
  2. Hace clic en el botón Nueva plantilla de correo electrónico .
  3. Asigne un nombre a la plantilla de correo electrónico y,
    1. Seleccione la carpeta Pública para almacenarlo.
    2. Seleccione Caso para el Tipo de entidad relacionada .
  4. Agregue una línea de asunto y otra información relevante para sus destinatarios.
  5. Haga clic en Guardar .

Paso 2: cree una alerta de correo electrónico para el correo electrónico de seguimiento

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Alertas de correo electrónico .
  3. Seleccione Alertas de correo electrónico , haga clic en el botón Nueva alerta de correo electrónico .
  4. Asigne un nombre a la Alerta de correo electrónico y haga clic en el botón Tabulador. Se completará el nombre único .
  5. Para Objeto, seleccione Caso.
  6. Para la Plantilla de correo electrónico , elija Correo electrónico de seguimiento .
  7. Para Tipo de destinatario , seleccione Campo de correo electrónico: Correo electrónico de contacto.
  8. Haga clic en Guardar .

Paso 3: cree una plantilla de correo electrónico para el correo electrónico de la encuesta de satisfacción

  1. En el Iniciador de aplicación, escriba Plantillas de correo electrónico .
  2. Hace clic en el botón Nueva plantilla de correo electrónico .
  3. Asigne un nombre a la plantilla de correo electrónico y,
    1. Seleccione la carpeta Pública para almacenarlo.
    2. Seleccione Caso para el Tipo de entidad relacionada .
  4. Agregue una línea de asunto y otra información relevante para sus destinatarios.
  5. Haga clic en Guardar .

Paso 4: cree una alerta de correo electrónico para el correo electrónico de la encuesta de satisfacción

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Alertas de correo electrónico .
  3. Seleccione Alertas de correo electrónico , haga clic en el botón Nueva alerta de correo electrónico .
  4. Asigne un nombre a la Alerta de correo electrónico y haga clic en el botón Tabulador. Se completará el nombre único .
  5. Para Objeto, seleccione Caso.
  6. Para la Plantilla de correo electrónico , elija Correo electrónico de seguimiento .
  7. Para Tipo de destinatario , seleccione Campo de correo electrónico: Correo electrónico de contacto.
  8. Haga clic en Guardar .

Paso 5.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 : Caso
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: se cumplen todas las condiciones (Y)
        1. Fila 1:
          1. Campo : EstáCerrado
          2. Operador : Igual
          3. Valor : {!$ConstanteGlobal.Verdadero}
    4. Cuándo ejecutar el flujo para registros actualizados : solo cuando un registro se actualiza para cumplir con los requisitos de la condición
    5. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 5.2: Flujo de Salesforce: agregar rutas programadas

El propósito de utilizar una ruta programada para enviar alertas por correo electrónico en diferentes días.

  1. En Inicio , seleccione Agregar rutas programadas (opcional) .
  2. En Detalles de rutas programadas ,   ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información
    1. Hora Fuente: Caso: Fecha cerrada
    2. Número de compensación: 2
    3. Opciones de compensación: Días después
  4. Haga clic en + en el panel del lado izquierdo para agregar una segunda ruta programada y repita el paso 2.
  5. Ingrese la etiqueta que el nombre de la API se completará automáticamente.
  6. Ingrese la siguiente información
    1. Hora Fuente: Caso: Fecha cerrada
    2. Número de compensación: 15
    3. Opciones de compensación: Días después
  7. Opciones avanzadas
    1. Tamaño del lote : 200
  8. Haga clic en Listo .

Paso 5.3: Agregar acción: alerta de correo electrónico de seguimiento

El siguiente paso es agregar una alerta de correo electrónico de seguimiento al Flujo. Usaremos el elemento Acción.

  1. En el nodo Correo electrónico de seguimiento , seleccione Acción .
    1. Debajo de Filtrar por , seleccione Tipo .
    2. Seleccione Alerta de correo electrónico .
    3. Seleccione Alerta por correo electrónico : seguimiento del cliente en el menú desplegable (la alerta por correo electrónico que creamos en el paso n.º 2)
  2. Etiquete la nueva acción Enviar correo electrónico de seguimiento .
  3. Establecer valores de entrada
    1. {!$Registro.Id}
  4. Haga clic en Listo.

Paso 5.4: Agregar acción: alerta por correo electrónico de la encuesta de satisfacción

El siguiente paso es agregar una alerta de correo electrónico de encuesta de satisfacción al flujo. Usaremos el elemento Acción.

  1. En el nodo Encuesta de satisfacción , seleccione Acción .
    1. Debajo de Filtrar por , seleccione Tipo .
    2. Seleccione Alerta de correo electrónico .
    3. Seleccione Alerta por correo electrónico : Encuesta de satisfacción del menú desplegable (la alerta por correo electrónico que creamos en el Paso 4)
  2. Etiquete la nueva acción Enviar encuesta de satisfacción .
  3. Establecer valores de entrada
    1. {!$Registro.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 : 57
  5. Etiqueta de entrevista : Notificaciones de cierre de caso {!$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, cuando un agente de soporte cierre un caso, los procesos se dispararán y programarán dos acciones.

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

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/02/multiple-scheduled-actions-within-a-single-flow/

Categories
Developers Salesforce

Agregar seguidores de Chatter al registro

Última actualización el 23 de marzo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puedo permitir que los usuarios agreguen fácilmente a otros como seguidores de un registro?
  • ¿Puedo incorporarlo como parte de un flujo nuevo/existente?

Objetivos:

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

  • Agregar otro usuario como seguidor de un registro específico utilizando Salesforce Flow
  • Utilice un elemento de decisión para saber si un campo contiene un valor o no.
  • Y, por último, pero no menos importante, descubra cómo usar el elemento Crear registros para crear registros.
  • y mucho más

Brenda David trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Ha recibido un requisito para desarrollar una aplicación que permitirá a los usuarios con acceso de edición en el objeto de la cuenta agregar seguidores de Chatter al registro.

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

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Record-Triggered Flow para resolver el requisito.

El flujo se puede ejecutar en modo Sistema , omitiendo los permisos del usuario en ejecución. Para obtener instrucciones sobre cómo lograr este mismo caso de uso solo con Screen Flow, consulte esta publicación: Primeros pasos con Salesforce Flow: parte 42 (Ejecución de un flujo en modo de sistema)

Antes de continuar, debe familiarizarse con el objeto EntitySubscription en Salesforce. Representa una suscripción para un usuario que sigue un registro u otro usuario. Un usuario puede suscribirse a un registro oa otro usuario.

Nombre del campo Detalles
Identificación de los padres El ID del registro o usuario que el usuario está siguiendo
Identificación de suscriptor El ID del Usuario que está siguiendo el registro o usuario

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de 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 (nosotros hacemos):

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

  1. Creación de un campo de búsqueda personalizado en la cuenta para almacenar un nuevo seguidor
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue un elemento de decisión para verificar que el valor del campo de búsqueda personalizado no sea nulo
    3. Agregue un elemento de obtención de registros para encontrar el estado del seguidor del usuario seleccionado para el registro actual
    4. Agregue un elemento de decisión para verificar si el usuario está siguiendo el registro actual o no
    5. Agregue un elemento de creación de registros para agregar un usuario al seguidor de registros

Paso 1: crear un campo de búsqueda personalizado en el objeto de cuenta para almacenar un nuevo seguidor

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Cuenta .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Relación de búsqueda como tipo de datos y, a continuación, haga clic en Siguiente .
  5. Seleccione Usuario relacionado con y , a continuación, haga clic en Siguiente .
  6. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
  7. Como práctica recomendada, siempre ingrese una descripción .
  8. Configure la Seguridad a nivel de campo para los perfiles , asegúrese de configurar este campo como Solo visible .
  9. Agregue este campo a Diseño de página .
  10. 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 : Cuenta
    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: uso del elemento de decisión para comprobar que el valor del campo de búsqueda personalizado no es nulo

Ahora usaremos el elemento Decisión para verificar si el campo de búsqueda personalizado para Usuario contiene algún valor 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 : {!$Record.Add_Follower__c}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar el resultado : si Solo si el registro que desencadenó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición
  6. Haga clic en Listo .

Paso 2.3: Adición de un elemento Obtener registro para encontrar el estado del seguidor del usuario seleccionado para el registro actual

El siguiente paso es usar el elemento Obtener registros para encontrar el estado de seguidor del usuario seleccionado para el registro actual.

  1. En Flow Designer, debajo del nodo Agregar seguidor no es nulo , 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 Suscripción de entidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de padre
      2. Operador : Igual
      3. Valor : {!$Record.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de suscriptor
      2. Operador : Igual
      3. Valor : {!$Record.Add_Follower__c}
  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.4: uso del elemento de decisión para verificar si el usuario seleccionado está siguiendo el registro actual o no

Ahora usaremos el elemento Decisión para verificar que la variable de registro del paso 2.3 sea nula 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_Follower_Status}
      2. Operador: es nulo
      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.5: Crear registros: agregar usuarios al seguidor de registros

Para agregar un nuevo usuario a Record Follower necesitamos crear un registro en el objeto EntitySubscription . Para ello utilizaremos el elemento Create Records. Ahora sigue los pasos a continuación:

  1. En Flow Designer, debajo del nodo No , 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. 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 : EntitySubscription
    5. Establecer valores de campo para EntitySubscription
    6. Fila 1 :
      1. Campo: ParentId
      2. Valor: {!$Record.Id}
    7. Haga clic en Agregar campo
    8. Fila 2 :
      1. Campo: ID de suscriptor
      2. Valor: {!$Record.Add_Follower__c}
  4. Haga clic en Listo.

Al final, Brenda'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 : Agregar seguidor de Chatter para registrar {!$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

  1. Inicie sesión como Brenda David ( Perfil asignado : – Usuario estándar, la licencia de función Force.com Flow User no está asignada a este usuario).
  2. Navegue a un registro de cuenta y complete el campo Agregar seguidor con Nushi Davoud
  3. Confirmar que el usuario ha sido agregado
    1. Cerrar sesión como Brenda .
    2. Cambiar a Clásico
    3. Navega a la cuenta y revisa los seguidores.
  4. Estás listo .

Práctica Independiente (Hacemos):

Identifique los casos de uso en los que es posible que sea necesario compartir los registros de otros objetos de una manera más manual e implemente el uso compartido con la solución anterior.

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/03/23/add-chatter-followers-to-record-3/

Categories
Developers

Archivar un canal de Slack con Flow

Última actualización el 5 de diciembre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se archiva un canal de Slack con Salesforce Flow?
Los canales de Slack aportan orden y claridad al trabajo: puede crearlos para cada proyecto, tema o equipo. Cuando hay un canal para todo, puede concentrarse en las conversaciones y el trabajo que más le importan.
He escrito algunos artículos sobre Slack and Flow . ¿Por qué no echarles un vistazo mientras estás en ello?
  1. Publicar un mensaje en un canal de Slack usando Flow
  2. Enviar un mensaje directo de Slack usando Flow
  3. Crear un canal de Slack usando el flujo

En esta publicación de blog, iré un paso más allá y lo ayudaré a comprender cómo archivar canales flojos usando el flujo. Antes de leer este artículo, asegúrese de haber leído el artículo Crear un canal de Slack usando Flow .

Objetivos:

Después de leer este blog, podrá:  

  • Comprender cuándo usar la ruta Ejecutar asíncrono
  • Hacer llamadas externas a través de Flow
  • Use el elemento de decisión para verificar el valor de los campos de la cuenta
  • Archivar un canal de Slack usando el flujo
  • Y mucho más

Martin Jones trabaja como administrador de sistemas en Gurukul on Cloud (GoC) . Recientemente, GoC implementó la creación automática de un canal de Slack para una cuenta nueva. Ahora, la alta gerencia de GoC quiere implementar un proceso de archivo automático para el canal Slack de la cuenta:

  • Si una cuenta está marcada como fuera del negocio (que se puede identificar a través de un campo de casilla de verificación en el nombre de la cuenta, fuera del negocio ).

Requisitos previos:

  1. El primer paso es implementar Create A Slack Channel usando Flow .

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

Agregue una ruta asincrónica a un flujo de flujo desencadenado por registro después de guardar para integrarse con un sistema externo y actualizar objetos externos sin escribir código. La ruta asíncrona se ejecuta después de que la transacción original para el registro desencadenante se confirme correctamente. Por ejemplo, utilice una ruta asincrónica para publicar un mensaje en Slack, actualizar un registro en Heroku o realizar un pedido mediante un sistema de cumplimiento de terceros.

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 4 pasos para resolver el requisito empresarial de Martin mediante el flujo activado por registro . Debemos:

  1. Cree un campo de casilla de verificación personalizado (fuera del negocio por cuenta)
  2. Definir propiedades de flujo para el flujo desencadenado por registro
  3. Agregue un elemento de decisión para verificar el campo Id. de canal de Slack
  4. Agregar acción Archivar canal de Slack

Paso 1: crear un campo personalizado: fuera del negocio

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, haga clic en Administrador de objetos .
  3. Navegar a Cuenta | Campos y relaciones y haga clic en el botón Nuevo .
  4. Haga clic en el tipo de datos Checkbox .
  5. Ingrese la etiqueta del campo, el nombre del campo se completará automáticamente.
  6. Haga clic en Desmarcado para el valor predeterminado .
  7. Agregue un campo en el diseño de página y otorgue acceso de campo a los perfiles deseados.
  8. Haga clic en Guardar .

Paso 2: 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 el flujo activado por registro opción, haga clic en Crear
    1. Objeto : Cuenta
    2. Activar flujo de oportunidad cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: se cumplen todas las condiciones (Y)
        1. Fila 1
          1. Campo: Fuera_del_negocio__c
          2. Operador: Igual
          3. Valor: {!$ConstanteGlobal.True}
    4. Cuándo ejecutar el flujo para registros actualizados : solo cuando un registro se actualiza para cumplir con los requisitos de la condición.
    5. Optimice el flujo para la acción y los registros relacionados
    6. Elija la opción para incluir una ruta de ejecución asincrónica 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 .

Recuerda
  1. Las rutas asincrónicas están disponibles para los flujos desencadenados por registros que se ejecutan después de guardar el registro.
  2. Las opciones de ruta asincrónica solo están disponibles para los flujos que están configurados para ejecutarse solo cuando un registro se actualiza para cumplir con los requisitos de la condición o selecciona el operador Ha cambiado en una condición.
  3. Cuando un registro nuevo o actualizado activa su flujo para que se ejecute, una ruta asincrónica se pone en cola hasta que se ejecuta. Puede monitorear una ruta asíncrona en la página Flujo de trabajo basado en tiempo en Configuración.

Paso 3: usar el elemento de decisión para verificar el campo personalizado de ID de canal de Slack en la cuenta

Ahora usaremos el elemento Decisión para verificar si el campo Id. de canal de Slack de la cuenta está completo. Si el campo no se completa, no tomaremos más medidas.

  1. En Flow Designer, en la ruta Ejecutar asincrónicamente , 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.Slack_Channel_Id__c}
      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 4: Agregue la acción Archivar canal de Slack

Ahora usaremos la acción Archivar canal de Slack para archivar el canal de Slack de la cuenta.

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Archivar canal de Slack 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 conexión para Slack
    1. Aplicación de Slack: Sales Cloud para Slack
    2. Espacio de trabajo de Slack: campeón de la automatización (su espacio de trabajo de Slack)
    3. Ejecutar acción como: aplicación Slack
  5. Establecer detalles del canal Slack
    1. ID de canal de Slack: {!$Record.Slack_Channel_Id__c}
  6. 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. Ingresar   Caudal   etiqueta ; el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : Archivar un canal de Slack con Flow {!$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 comercial crea una nueva cuenta con una calificación alta, el guardado posterior activado por registro creará automáticamente un nuevo canal de Slack.

  1. Navegue a la cuenta nueva cuenta Jardine Matheson Ltd , como se muestra en la siguiente captura de pantalla:
  2. Ahora inicie sesión en Slack y consulte el canal de Slack .
  3. El ID de canal de Slack se almacena en el campo personalizado de la cuenta.
  4. La próxima vez, cuando un usuario actualice la cuenta Out_of_business__C a True , como se muestra en la siguiente captura de pantalla:
  5. El flujo activado por registro archiva automáticamente el canal Slack de la cuenta.

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/12/05/archive-a-slack-channel-using-flow-3/

Categories
Developers

Recetas para automatizar la administración de grupos de Chatter

Última actualización el 19 de octubre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo utilizar el flujo activado por registros para automatizar los trabajos comunes de administración de grupos de chat para mejorar la productividad?

Objetivos:

Chatter Group es una de las mejores maneras de impulsar la colaboración en su organización. Un grupo de Chatter representa un grupo de usuarios: se pueden agregar miembros ilimitados a un grupo de Chatter , pero un usuario puede unirse a un máximo de 100 grupos.

A continuación se muestran algunas tareas relacionadas con la pertenencia a grupos de Chatter que se pueden automatizar para mejorar la productividad.

  • Envíe notificaciones por correo electrónico a los propietarios o administradores de grupos cuando alguien se una a un grupo de Chatter.
  • Envíe notificaciones por correo electrónico a los propietarios o administradores de grupos cuando alguien abandone un grupo de Chatter.
  • Actualice automáticamente la frecuencia de correo electrónico del nuevo miembro para un grupo de Chatter.
  • Ascienda a un usuario al administrador del grupo de Chatter si pertenece a una función específica.

Es posible administrar estas tareas con la ayuda de Flow. Veamos cómo comenzar a trabajar de manera más inteligente abordando un caso de uso empresarial.

Maria Coleman trabaja como administradora de sistemas en Gurukul on Cloud (GoC). En GoC, usan Chatter ampliamente para colaborar internamente. María ha recibido tres requisitos de la alta dirección:

  1. Cuando alguien se une al grupo público de Chatter 'GoC Awesome People', establezca su frecuencia de correo electrónico en – Correo electrónico en cada publicación.
  2. Notificar al propietario del grupo cuando alguien se una al grupo.
  3. Cuando un usuario se une a GoC Awesome People Group y pertenece al rol de 'Atención al cliente, internacional', ascienda automáticamente a administrador del grupo.

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

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Record-Triggered Flow para resolver el requisito.

Antes de continuar, comprendamos las características de CollaborationGroupMember : representa a un miembro de un grupo de Chatter.

Nombre del campo Detalles
NotificaciónFrecuencia La frecuencia con la que Salesforce envía resúmenes de correos electrónicos de grupos de Chatter a este miembro. Los valores válidos son:

  • D -Diario
  • W -Semanal
  • N —Nunca
  • P —En cada publicación
ColaboraciónRol El papel de un miembro del grupo. Los valores válidos son:

  • Estándar: indica que un usuario es miembro del grupo. Los miembros pueden publicar y comentar en el grupo.
  • Admin : indica que un usuario es un administrador de grupo. Los administradores pueden publicar y comentar, cambiar las funciones de los miembros, editar la configuración del grupo, agregar y eliminar miembros, eliminar publicaciones y comentarios, y editar el campo de información del 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 comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de María utilizando el flujo activado por registros antes de guardar y después de guardar. Debemos:

  1. Crear un grupo público y un grupo de chat
  2. Pasos de flujo de Salesforce:
    1. Definir las propiedades de flujo para el flujo desencadenado por registros antes de guardar
    2. Crear una fórmula para ascender al miembro a administrador de grupo
    3. Agregar un elemento de asignación a los campos de miembros del grupo
  3. Pasos de flujo de Salesforce:
    1. Definir las propiedades de flujo para el flujo desencadenado por registros después de guardar
    2. Agregue una plantilla de texto para construir el cuerpo del correo electrónico
    3. Agregue una acción principal Enviar correo electrónico para enviar un correo electrónico

Paso 1: Cree un grupo público y un grupo de Chatter

  1. En primer lugar, cree un grupo de Chatter público GoC Awesome People .

Paso 2.1: Definir las propiedades del flujo (antes de guardar el 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 Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: CollaborationGroupMember
    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 actualizaciones de campo rápidas
  5. Haga clic en Listo .

Paso 2.2: Cree una fórmula para promover al miembro a administrador de grupo

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar la función del miembro en función de su función de usuario.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forT_MemberRole
    3. Tipo de datos : Texto
    4. Fórmula : If( {!$UserRole.DeveloperName}=”CustomerSupportInternational”, “Admin”, “Standard”)
  3. Haga clic en Listo .

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

El siguiente paso es actualizar los campos CollaborationGroupMember con nuevos valores. Usaremos la Asignación   elemento, ya que estamos usando el flujo antes de guardar .

  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.CollaborationRole}
      2. Operador : Igual
      3. Valor : {!forT_MemberRole}
    2. Haga clic en Agregar tarea
    3. Fila 2:
      1. Campo : {!$Record.NotificationFrequency}
      2. Operador : Igual
      3. Valor : P
  4. Haga clic en Listo .

Al final, Maria'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 : 56
  5. Etiqueta de la entrevista : miembro del grupo: antes de guardar el flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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

Paso 3.1: Definir las propiedades del flujo (después de guardar el 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 Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: CollaborationGroupMember
    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 3.2: agregue una plantilla de texto para construir el cuerpo del correo electrónico

Ahora crearemos una plantilla de correo electrónico utilizando la plantilla de texto . La plantilla de texto le permite 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_EmailBody
    3. Seleccione Ver como texto enriquecido
    4. Cuerpo
      1. {!$User.FirstName}& ” ” &{!$User.LastName} se une a GoC Awesome People Chatter Group.
  3. Haga clic en Listo .

Paso 3.3: Agregue la acción Enviar correo electrónico para notificar al propietario del grupo

Ahora usaremos la acción estática Enviar correo electrónico para enviar un correo electrónico al propietario del grupo de Chatter.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Enviar correo electrónico en el menú desplegable
  3. Etiquete la nueva acción Notificar al propietario.
  4. Establecer valores de entrada
    1. Cuerpo: {!textT_EmailBody}
    2. Asunto: Alguien se une a un grupo de Chatter
    3. Direcciones de correo electrónico (separadas por comas): {!$Record.CollaborationGroup.Owner.Email}
    4. Cuerpo con formato de texto enriquecido: {!$GlobalConstant.True}
  5. Haga clic en Listo .

Al final, Maria'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 : 56
  5. Etiqueta de la entrevista : miembro del grupo: después de guardar el flujo {!$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 que un usuario se una a un grupo de Chatter, los flujos activados por registros se activarán y (1) actualizarán la frecuencia de los correos electrónicos; (2) activar una notificación por correo electrónico al propietario del grupo; y (3), según la función de un usuario, también actualizará su función de grupo de Chatter.

  1. Inicie sesión como usuario activo con el Rol – Customer Support, International .
  2. Localice el grupo GoC Awesome People y haga clic en Unirse al grupo .
  3. El usuario ahora se convertirá en Administrador y recibirá notificaciones por correo electrónico en Cada publicación .
  4. Se envía un correo electrónico generado automáticamente.

Espero que haya disfrutado y encontrado valor en esta publicación de blog sobre la automatización de tareas relacionadas con la pertenencia a grupos de Chatter. Dominar estas habilidades mejorará su productividad y lo impulsará a probar varias permutaciones y combinaciones para incorporar la automatización en sus procesos y procedimientos cotidianos.

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/10/18/getting-started-with-process-builder-part-82-email-notification-when-a-user-joins-chatter-group/

Categories
Developers Salesforce

Simplemente diga NO a la identificación codificada

Última actualización el 19 de octubre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede evitar la codificación rígida de ID en Salesforce Flow?

Objetivos:

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

  • Comprender cómo usar etiquetas personalizadas para evitar el código duro de identificación en el flujo
  • Comprender cómo usar la configuración personalizada para evitar el código duro de identificación en el flujo
  • Comprender cómo usar tipos de metadatos personalizados para evitar el código duro de ID en el flujo

Donna Serdula trabaja como administradora de sistemas en Gurukul On Cloud (GoC) . Ha recibido un requisito de la administración cada vez que se crea una cuenta para la industria sin fines de lucro , crea automáticamente un caso y lo asigna a la cola de expertos sin fines de lucro para verificar el estado sin fines de lucro de la organización.

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

Sí, a veces es una buena idea codificar los valores (por ejemplo, mientras se aprende Apex o Salesforce Flow o codificar el valor circular , es decir, 3.14), pero no existe una regla simple sobre cuándo; depende completamente del contexto. Si está codificando el valor de la constante gravitacional de la tierra, a nadie le va a importar. Si codifica la ID del registro (cola, grupo o ID de registro de Salesforce, etc.), tendrá problemas.

Una y otra vez, veo código de Apex o flujos que contienen identificaciones codificadas, ya sea el campo Descripción , una identificación de usuario o incluso una identificación de grupo, etc. El problema con los ID de codificación rígida es que cualquier cambio debe realizarse en el Flujo mismo, probarse nuevamente y luego implementarse en la organización de producción.

Los ID de registro pueden cambiar, por ejemplo, entre un espacio aislado y un entorno de producción . Es posible que una cola (expertos sin fines de lucro) tenga una ID diferente en un sandbox y una organización de producción .

Ahora puede consultar la identificación de la cola de expertos sin fines de lucro mientras crea un caso a través de Salesforce Flow.

El problema con este enfoque ( ID de cola de codificación fija ) es que, si está desarrollando en Sandbox, los ID de la cola recién creada cambiarán cuando llegue a Producción y tendrá que volver a trabajar.

–> De acuerdo con las mejores prácticas de Salesforce, todos le sugerirán que no codifique las identificaciones, consulte por ellas . Siempre es bueno seguir las mejores prácticas de Salesforce cuando sea posible.

Entonces, ¿qué sigue? ¿Cómo evitar la codificación rígida de ID en los flujos?

Algunas de las formas de evitar la codificación rígida son las siguientes

  1. Etiqueta personalizada : las etiquetas personalizadas son valores de texto personalizados a los que se puede acceder desde clases de Apex, páginas de Visualforce, flujos o componentes Lightning. Al implementar una etiqueta personalizada, sus datos también se implementan. Para evitar un comportamiento inesperado, asegúrese de actualizar el valor de la etiqueta personalizada después de la implementación.
  2. Configuración personalizada : – Las configuraciones personalizadas son variables que usa en su código pero establece y modifica fuera de su código. Los ajustes personalizados se almacenan en caché. Es especialmente útil para almacenar información a la que se accederá con frecuencia desde el código Apex o Flow, ya que funcionará mejor que un objeto personalizado. No cuenta contra los límites de SOQL cuando se recupera . La configuración personalizada   no trae datos cuando los implementa.
  3. Tipo de metadatos personalizados : los tipos de metadatos personalizados son similares a la configuración personalizada. Al implementar un tipo de metadatos personalizado, sus datos también se implementan.

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 Donna utilizando el flujo activado por registro después de guardar . Debemos:

  1. Crear una cola de expertos sin fines de lucro
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo
    2. Fórmula para determinar si el registro se crea o actualiza
    3. Agregar un elemento de decisión para la industria de cuentas de cheques
    4. Agregue un elemento de obtención de registro para encontrar el ID de la cola
    5. Agregue un elemento de decisión para verificar la cola encontrada o no
    6. Agregue un elemento de creación de registros para crear un nuevo caso

Paso 1: Crear una cola Expertos en organizaciones sin fines de lucro

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, escriba Colas .
  3. Haga clic en el botón Nuevo .
  4. Ingrese la etiqueta , el nombre de la cola se completará automáticamente.
  5. 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, 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: Cuenta
    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: 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 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 2.3: agregue un elemento de decisión para verificar la industria de la cuenta

Usaremos el elemento Decisión para verificar si la industria de la cuenta no tiene fines de lucro.

  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.Industry}
      2. Operador: Igual
      3. Valor: sin fines de lucro
    2. Haga clic en Agregar tarea
    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 2.4: agregue un elemento Obtener registro para encontrar el ID de cola para expertos sin fines de lucro

El siguiente paso es encontrar la Cola de expertos sin fines de lucro.

  1. En Flow Designer, debajo del nodo Sin fines de lucro , 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 registros 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 : Expertos en organizaciones sin fines de lucro
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : Tipo
      2. Operador : Igual
      3. Valor : cola
  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: agregue un elemento de decisión para verificar la cola desde la variable de registro

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 2.4 para encontrar si devuelve la cola 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_Queue}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.6: Crear registros: crear un caso y asignarlo a la cola sin fines de lucro

Para crear un caso y asignarlo a la cola de Expertos sin fines de lucro , usaremos el elemento Crear registros .

  1. En Flow Designer, 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
      1. Fila 1:
        1. Campo : Estado
        2. Valor : Nuevo
      2. Haga clic en Agregar campo
      3. Fila 2:
        1. Campo : ID de propietario
        2. Valor : {!Get_Queue.Id}
      4. Haga clic en Agregar campo
      5. Fila 3:
        1. Campo : MonedaIsoCode
        2. Valor : USD
      6. Haga clic en Agregar campo
      7. Fila 4:
        1. Campo : Descripción
        2. Valor : verificar el estado sin fines de lucro de la organización
      8. Haga clic en Agregar campo
      9. Fila 5:
        1. Campo : ID de cuenta
        2. Valor : {!$Record.Id}
  4. Haga clic en Guardar .


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 : 56
  5. Etiqueta de la entrevista : No codificar el ID {!$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 comercial crea una cuenta con Industria sin fines de lucro , el flujo activado por registro creará automáticamente un nuevo caso. Es hora de probar el proceso.

  1. Vaya a la pestaña Cuenta y cree una nueva cuenta para Industria sin fines de lucro , como se muestra en la siguiente captura de pantalla: Nueva cuenta sin fines de lucro
  2. Una vez hecho esto, haga clic en el botón Guardar n. Abrirá la página de detalles de la cuenta y verificará la lista relacionada con el caso, como se muestra en la siguiente captura de pantalla: 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/2022/10/19/getting-started-with-process-builder-part-60-just-say-no-to-hard-coded-id/

Categories
Developers Salesforce

Establezca su productividad con esteroides creando subflujos

Última actualización el 11 de agosto de 2022 por Rakesh Gupta

Salesforce Flow es una de las herramientas declarativas más utilizadas para automatizar procesos comerciales en Salesforce. La mayoría de nosotros solemos crear un nuevo flujo para cada requisito. Eso no solo no es una mejor práctica, sino que, a largo plazo, es un enfoque altamente improductivo e insostenible para administrar el desarrollo de procesos.

Además, corre el riesgo de llegar al límite del gobernador si crea múltiples flujos en un objeto. Por lo tanto, mi sugerencia es crear el mínimo posible de flujos en cada objeto.

Con la versión reciente, es posible invocar un flujo iniciado automáticamente (como subflujo) desde un flujo activado por registro después de guardar. Con Subflow , puede reutilizar la lógica en los flujos. Cree un flujo iniciado automáticamente (subflujo); llámelo desde múltiples flujos o múltiples grupos de acción en el mismo flujo. Al usar este método, de reutilizar un flujo, puede ahorrar tiempo, mantener el límite del gobernador a distancia y aumentar su productividad.

Pamela Kline trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Debe actualizar el campo personalizado Cuenta, Fuera del negocio, a Verdadero si una Etapa de oportunidad se actualiza a Cerrada perdida.

Hay varias formas, como se enumeran, en las que puede resolver el requisito comercial anterior:

  • Con un flujo desencadenado por registro en el objeto de oportunidad
  • Activador de vértice
  • y mucho más

A partir de ahora, la primera solución se ve bien. Sin embargo, después de algunas semanas, Pamela recibió otro requisito similar: actualizar el campo personalizado de la cuenta, Fuera del negocio, a Verdadero si la calificación de la cuenta no está interesada. ¡Oh, no! ¡No otra vez!

Ahora tiene que volver a escribir la misma lógica creando un flujo activado por registro en el objeto Cuenta; esto es tedioso y requiere mucho tiempo, por decir lo menos. Porque, como puede ver, en ambos requisitos, estamos actualizando el campo personalizado Cuenta, Fuera del negocio, a Verdadero. ¿Qué tal reutilizar la lógica existente con Account Flow? ¡Dejanos hacerlo!

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

Hay algunas soluciones posibles para el escenario empresarial anterior . Para resolver el requisito empresarial anterior (Actualizar el campo personalizado Cuenta , Fuera del negocio , a Verdadero si una Oportunidad se actualiza a Cerrada perdida ), utilizaremos el concepto de subflujo.

Subflujo significa lanzar otro flujo que esté disponible en su organización. Un flujo iniciado por otro flujo se denomina flujo referenciado .

Tenemos que crear dos flujos para esto, de la siguiente manera:

  • El primer flujo iniciado automáticamente (lo invoca el flujo activado por registros) se usa para actualizar el campo de la cuenta.
  • Se coloca otro flujo (un flujo desencadenado por registro) en el objeto Oportunidad y se activará solo cuando una Etapa de oportunidad se actualice a Cerrada perdida .

El beneficio de usar este enfoque es que si obtiene un requisito en el futuro (actualizar el campo personalizado de la cuenta, Fuera del negocio, a Verdadero si la calificación de la cuenta no está interesada ), entonces llama al flujo iniciado automáticamente desde el registro de su cuenta. flujo sin agregar otra actualización de registro en el flujo de cuenta.

Práctica guiada (nosotros hacemos):

  1. En primer lugar, cree un campo personalizado ( Out_of_Business__c ) tipo de datos Checkbox , en el objeto de la cuenta.
  2. Asegúrese de agregar el valor No me interesa para el campo de calificación (desplegable) en la cuenta.

Paso 3: Definir propiedades de subflujo

  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 el flujo iniciado automáticamente (sin disparador) opción.
  5. Haz clic en Crear .

Paso 4: Agregar acción: actualizar registros

El siguiente paso es actualizar el campo Fuera del negocio de la cuenta a Verdadero. 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 Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Cuenta
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Identificación
      2. Operador : Igual
      3. Valor : {!varT_AccountId}
        1. Donde varT_AccountId es una variable de texto de tipo Entrada y Salida.
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : Fuera_del_negocio__c
      2. Valor : {!$ConstanteGlobal.Verdadero}
  8. Haga clic en Listo .

Al final, el flujo de subflujo de Pamela 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 l   el nombre de A PI se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : Subflujo: Actualización de la cuenta
  6. Haga clic en Guardar .

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

Paso 5: Definir un flujo activado por registro maestro para llamar a un subflujo

  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 el flujo activado por registro opción, haga clic en Crear
    1. Objeto : Oportunidad
    2. Activar flujo de oportunidad 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 6: uso del elemento de decisión para verificar si la oportunidad está cerrada, perdida o no

Ahora usaremos el elemento Decisión para verificar StageName y asegurarnos de que sea igual a Cerrado perdido.

¡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 usuario actualice la etapa de la oportunidad a Cerrada perdida, ambos flujos se activarán y actualizarán la cuenta Out_of_business__C a True, 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? 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/08/11/set-your-productivity-on-steroids-by-creating-subflows-2/

Categories
Developers

Uso del componente web Lightning para mostrar un banner de alerta

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

Gran idea o pregunta duradera:

  • ¿Cómo utiliza el componente web lightning para mostrar un banner de alerta en las páginas lightning para mostrar mensajes como una próxima notificación de lanzamiento interno/de Salesforce o un recordatorio para finalizar las reuniones de seguimiento de fin de año con los clientes?

Objetivos:

Después de leer este blog, podrá:

  • Comprender qué son los tipos de metadatos personalizados y la representación condicional
  • Crear tipos de metadatos personalizados
  • Acceda a tipos de metadatos personalizados en el componente web lightning
  • Mostrar mensajes de alerta dinámicos mediante el componente web lightning
  • Use SLDS para mostrar un banner de alerta sin interacción del usuario
  • y mucho más

En el pasado se escribieron algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Comprobar los permisos de usuario para el usuario que ha iniciado sesión en el componente web Lightning
  2. Obtenga el Id. de registro y el nombre de la API del objeto en el componente web Lightning

Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Janel recibió la tarea de diseñar una aplicación utilizando el componente web lightning para mostrar los lanzamientos de productos de Salesforce o las notificaciones de lanzamiento internas sin la interacción del usuario.

Quiere brindarle al administrador del sistema la capacidad de establecer las fechas de inicio y finalización para la visualización del banner.

¿Qué es el renderizado condicional?

La representación condicional en el componente web lightning (lwc) es una forma de mostrar componentes o elementos en función de una condición específica. Por ejemplo, puede mostrar diferentes mensajes de saludo según la hora del día.

El renderizado condicional le permite renderizar diferentes componentes o elementos de lwc si se cumple una condición. En este tutorial, aprenderá sobre las diferentes formas en que puede usar la representación condicional en el componente web Lightning.

Lea este artículo para aprender cómo funciona la representación condicional en el componente web Lightning.

¿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 la memoria caché; 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):

Los banners de alerta comunican un estado que afecta a todo el sistema, no solo a una función o página. Persiste durante una sesión y aparece sin que el usuario inicie la acción.

Hay tres pasos para resolver el requisito empresarial de Janel utilizando el componente web Lightning y los tipos de metadatos personalizados . Debemos:

  1. Cree un tipo de metadatos personalizado para almacenar los detalles del banner
    1. Fecha de inicio del mantenimiento
    2. Fecha de finalización del mantenimiento
    3. Mensaje
  2. Cree una clase de Apex para acceder a un registro de tipo de metadatos personalizado
  3. Cree un componente web relámpago para mostrar u ocultar un banner de alerta

Paso 1: Cree tipos de metadatos personalizados para almacenar los detalles del banner

  1. Primero, crearemos un tipo de metadatos personalizados para almacenar los detalles del banner .
  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 .
  3. Cree algunos campos para almacenar la fecha de inicio, la fecha de finalización y el mensaje. Al final, el tipo de metadatos personalizados de Notificación de mantenimiento debería verse como lo que se muestra en la siguiente captura de pantalla:
  4. El siguiente paso es insertar un registro en el tipo de metadatos personalizados.
  5. Para hacerlo, haga clic en el botón Administrar notificaciones de mantenimiento 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: Cree una clase de Apex para acceder al registro de tipo de metadatos personalizados

La siguiente clase de vértice accede al registro Salesforce_Release desde el tipo de metadatos personalizado Mantenimiento de notificación .


público con clase compartida BannerController {
@AuraEnabled(cacheable=true) Public static Maintenance_Notification__mdt getBannerDetail() { devolver [ SELECCIONE Id, Maintenance_Start_Date__c, Maintenance_End_Date__c, Message__c DESDE Mantenimiento_Notificación__mdt donde DeveloperName ='Salesforce_Release' LÍMITE 1 ];
}
}

Paso 3: cree un componente web Lightning para mostrar u ocultar el banner de alerta

Ahora crearemos un componente web relámpago para mostrar u ocultar el banner de alerta según la fecha de inicio y finalización.

alerta de banner .html

Para hacer referencia a un recurso en una plantilla, use la sintaxis {propiedad} use la sintaxis {propiedad } , que es la misma sintaxis que usamos para hacer referencia a cualquier propiedad de JavaScript. Estamos usando renderizado condicional .

Cuando un usuario carga la página, la clase BannerAlert establece el valor de la expresión y el banner   propiedad. Si las propiedades de la expresión y el banner son verdaderas , la directiva if:true representa la plantilla anidada, que muestra Message!


<plantilla> <div class="slds-card slds-theme_shade" if:true={expresión}> <div class="slds-card__header slds-grid"> <div class="slds-notify slds-notify_alert slds-alert_warning" role="alert"> <span class="slds-assistive-text">advertencia</span> <span class="slds-icon_container slds-icon-utility-warning slds-m-right_x-small" title="Descripción del icono cuando sea necesario"> <svg class="slds-icon slds-icon_x-small" aria-hidden="true"> <use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#warning"></use> </svg> </span> <h2 if:true={banner.data}>{mensaje}&nbsp; <a href="https://status.salesforce.com" target="_blank">Más información</a> </h2> </div> </div> </div>
</plantilla>

alerta de banner .js

Este código JavaScript de muestra utiliza el decorador @wire . Se utiliza para invocar a Apex para obtener el registro Salesforce_release del tipo de metadatos personalizado de Mantenimiento de notificaciones .

Luego, JavaScript también realiza una operación lógica para asegurarse de que:

  • La fecha de inicio del mantenimiento es menor o igual que la actual
  • La fecha de finalización del mantenimiento es mayor o igual que la actual

importar { LightningElement, cable } de 'lwc';
importar getBannerDetail desde '@salesforce/apex/BannerController.getBannerDetail'; exportar la clase predeterminada BannerAlert extiende LightningElement { @wire(getBannerDetail) banner; obtener mensaje () { devolver este.banner.data.Message__c; } fechaIniciomantenimiento() { devolver este.banner && este.banner.datos ? this.banner.data.Maintenance_Start_Date__c : 'Cargando...'; } mantenimientoEndDate() { devolver este.banner && este.banner.datos ? this.banner.data.Maintenance_End_Date__c : 'Cargando...'; } obtener expresión() { let hoy = nueva Fecha(); hoy.setMinutes(nueva Fecha().getMinutes() - nueva Fecha().getTimezoneOffset()); // Devuelve la fecha de hoy en formato "YYYY-MM-DD" let fecha = hoy.toISOString().slice(0,10); let planningMaintenanceStartDate = this.maintenanceStartDate(); let planningMaintenanceEndDate = this.maintenanceEndDate(); if (fecha >= fecha de inicio de mantenimiento planificado && fecha <= fecha de finalización de mantenimiento planificado) { devolver verdadero; } más { falso retorno; } }
}

bannerAlert.js-meta.xml

Cada componente debe tener un archivo de configuración. El archivo de configuración define los valores de metadatos para el componente, incluidos los objetivos admitidos y la configuración de diseño para Lightning App Builder y Experience Builder.

Este archivo de configuración hace que el componente esté disponible para todas las páginas Lightning, incluidos el escritorio y el teléfono.


<?versión xml="1.0" codificación="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadatos"> <apiVersion>54.0</apiVersion> <isExposed>verdadero</isExposed> <objetivos> <target>relámpago__RecordPage</target> <target>relámpago__AppPage</target> <objetivo>relámpago__Página de inicio</objetivo> </objetivos> <configuraciones de destino> <targetConfig objetivos="relámpago__AppPage"> <factores de forma admitidos> <supportedFormFactor type="Large" /> <supportedFormFactor type="Pequeño" /> </factores de forma admitidos> </targetConfig> <targetConfig objetivos="relámpago__RecordPage"> <factores de forma admitidos> <supportedFormFactor type="Large" /> <supportedFormFactor type="Pequeño" /> </factores de forma admitidos> </targetConfig> <targetConfig objetivos="relámpago__HomePage"> <factores de forma admitidos> <supportedFormFactor type="Large" /> <supportedFormFactor type="Pequeño" /> </factores de forma admitidos> </targetConfig> </configuraciones de destino>
</LightningComponentBundle>

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/2022/07/10/using-lightning-web-component-to-show-an-alert-banner/

Categories
Developers Salesforce

Agregar automáticamente un nuevo usuario al grupo público o cola

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

Gran idea o pregunta duradera:

¿Cómo se agregan automáticamente nuevos usuarios a un grupo público o cola?

Objetivos:

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

  • Crear automatización asociada con la creación de un nuevo usuario
  • Agregar automáticamente un usuario a un grupo público específico o cola con flujo
  • ¿Qué es el error MIXED DML y cómo evitarlo?

Warren Mason trabaja como administrador de sistemas en Universal Containers (UC). Su organización desea desarrollar una automatización para agregar automáticamente nuevos usuarios al grupo público de usuarios de contenedores universales.

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

En el artículo Agregar automáticamente un usuario a un grupo de Chatter , discutimos una forma de agregar automáticamente nuevos usuarios al grupo de Chatter mediante clics, no código. También discutimos una forma de evitar errores MIXED DML .

Ahora demos un paso más y analicemos una forma de agregar automáticamente nuevos usuarios a una cola o grupo público . Hay pocas soluciones posibles para el escenario empresarial anterior . Usaremos flujo activado por registro   para resolver el requisito comercial anterior.

Antes de continuar, debe comprender el grupo   y objetos GroupMember .

  1. Grupo : – Este objeto representa la cola y el grupo público . Pueden contener usuarios individuales, otros grupos y los usuarios en un rol particular. Al utilizar el campo Tipo , puede distinguir entre Cola y Grupo público . Para Grupo Público ( Tipo de Uso = Regular) y para Cola ( Tipo de Uso = Cola).
  2. GroupMember : – Representa un usuario o grupo que es miembro de un grupo público.

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 dos pasos para resolver el requisito empresarial de Warren mediante el flujo activado por registro . Debemos:

  1. Crear un grupo público
  2. Pasos de flujo de Salesforce:
    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 el usuario está activo o no
    4. Agregue un elemento de obtención de registro para encontrar la identificación del grupo público
    5. Agregue un elemento de decisión para verificar el grupo público encontrado o no (del paso 4)
    6. Agregue un elemento de creación de registros para agregar un usuario al grupo público

Paso 1: crea un grupo público

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Grupo público .
  3. Haga clic en el botón Grupo público .
  4. Da clic en el botón Nuevo .
  5. Etiquete el grupo y luego presione la tecla tabulador, el nombre del grupo se completará automáticamente.
  6. 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 y haga clic en Crear y configure el flujo de la siguiente manera :
    1. Objeto : Usuario
    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: 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 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 2.3: uso del elemento de decisión para verificar si el usuario está activo o no

Ahora usaremos el elemento Decisión para verificar si la cuenta de usuario está activa 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: {!$Record.IsActive}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.True}
    2. Añadir 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 2.4: Adición de un elemento Obtener registro para encontrar el ID de grupo público para usuarios de contenedores universales

El siguiente paso es encontrar el grupo público para usuarios de contenedores universales.

  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 de registros 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 : usuarios de contenedores universales
  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 el grupo público de la variable de registro (del paso 4)

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 4 para encontrar si devuelve el grupo público 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: {!Find_Public_Group}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.6: Agregue el elemento Crear registros para agregar un nuevo usuario al grupo público

El paso final es agregar nuevos usuarios al grupo público, tan pronto como se active la nueva cuenta de usuario. Usaremos el elemento Create Records .

  1. En Flow Designer, debajo del nodo Grupo encontrado , 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 : Miembro del grupo
    4. Establecer valores de campo para el miembro del grupo
    5. Fila 1:
      1. Fila 1:
        1. Campo : ID de grupo
        2. Valor : {!Find_Public_Group.Id}
      2. Agregue campo
      3. Fila 2
        1. Campo : UserOrGroupId
        2. Valor : {!$Record.Id}
  4. 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 : 50
  5. Etiqueta de entrevista : agregar automáticamente un nuevo usuario al grupo público {!$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, cuando se crea una cuenta de usuario, el flujo activado por registro activará automáticamente y agregará al usuario a un grupo público ( Usuarios de contenedor universal ). Vamos a probarlo.

  1. Ahora cree un nuevo usuario a través de la interfaz de usuario Crear nuevo usuario
  2. Una vez que se crea el usuario, se agrega automáticamente al grupo público Universal Container Users en unos segundos, 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? 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/25/automatically-add-new-user-to-public-group-or-queue-2/

Categories
Developers Salesforce

Eliminar conversación completa de Chatter mediante Salesforce Flow

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

Gran idea o pregunta duradera:

¿Cómo se puede permitir que los usuarios eliminen conversaciones de Chatter?

Esta es una continuación de mi artículo anterior Eliminación de mensajes de Chatter mediante Salesforce Flow , en el que analicé una forma que permite a sus usuarios eliminar mensajes de Chatter . Este artículo va un paso más allá y explica cómo eliminar todos los mensajes a la vez , es decir, cómo eliminar una conversación de Chatter . La conversación de Chatter no es más que mensajes que los miembros han enviado o recibido .

Objetivos:

Después de leer este artículo, el lector podrá:

  • Utilice la automatización para aumentar los permisos de los usuarios
  • Crear un objeto personalizado para almacenar el Id. de una conversación de Chatter
  • Usar flujo activado por registro para eliminar la conversación de Chatter

Rachel Gillett trabaja como administradora de sistemas en Universal Containers (UC) . Ha recibido un requisito de la gerencia para permitir que sus representantes de ventas (Tipo de licencia: – Plataforma de Salesforce) eliminen conversaciones de Chatter de la interfaz de usuario de Salesforce .

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

** La función Mensajes de Chatter solo está disponible en Classic

En primer lugar, es importante comprender los mensajes de Chatter y las conversaciones de Chatter en Salesforce . Los mensajes de Chatter le permiten tener conversaciones privadas seguras con otros usuarios de Chatter . Use mensajes para enviar una pregunta a su colega en privado o para comunicarse con algunas personas seleccionadas cuando una discusión no es relevante para todas las personas con las que trabaja . Una conversación de Chatter consta de mensajes que los miembros de la conversación han enviado o recibido .

Recuerde los siguientes puntos para usar mensajes de Chatter

  1. Un mensaje privado puede incluir hasta 9 miembros, incluido usted mismo .
  2. Los mensajes enviados no se podrán ver a través de las noticias en tiempo real de Chatter, el perfil de Chatter o los resultados de la búsqueda global .
  3. No puedes borrar mensajes ni conversaciones.
  4. Un administrador con el permiso Administrar mensajes de Chatter puede ver y eliminar todos los mensajes de los usuarios en Chatter . Esto puede ser necesario para fines de cumplimiento.
    1. Los mensajes se eliminan de forma permanente. No se envían a la Papelera de reciclaje .
    2. Los mensajes eliminados no se incluyen en los resultados de búsqueda de mensajes .
    3. Si se eliminan todos los mensajes de una conversación, la conversación no se muestra en Mis mensajes y no se puede recuperar a través de la API REST de Chatter .
  5. Si después de leer los mensajes en una conversación desea marcar la conversación como no leída, puede hacerlo solo a través de la API REST de Chatter, no a través de la interfaz de usuario .

Hay algunas soluciones posibles para el escenario comercial anterior, pero usaré Salesforce Flow y Custom Object para resolver el requisito comercial. Como se mencionó anteriormente, un administrador del sistema con el permiso Administrar mensajes de Chatter puede ver y eliminar todos los mensajes de los usuarios en Chatter . Los usuarios comerciales no pueden eliminar mensajes ni conversaciones .

En Salesforce, el objeto ChatterMessage representa un mensaje enviado como parte de una conversación privada en Chatter . Hay algunos campos relevantes para identificar:

Nombre del campo Detalles
Identificación Id. de mensaje de Chatter
ID de conversación El Id. de la conversación con la que está asociado ChatterMessage.

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 3 pasos para resolver el requisito empresarial de Rachel mediante Record-triggered Flow . Debemos:

  1. Otorgar permiso de administración de chat
  2. Cree un objeto personalizado con pocos campos que se usará para guardar el Id. de la conversación de Chatter, que los usuarios desean eliminar.
  3. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar un elemento de decisión para verificar que el campo Id. de conversación de Chatter no sea nulo
    3. Agregue un elemento Eliminar registros para eliminar la conversación de Chatter

Paso 1: Otorgar permiso para administrar mensajes de Chatter a los usuarios

Primero, cree un Conjunto de permisos para otorgar a su registro de usuario el permiso Administrar mensajes de Chatter . De lo contrario , obtendrá un error al crear el flujo. El permiso se puede eliminar más tarde.

Paso 2: Cree un objeto personalizado: elimine la conversación de Chatter

Cree un objeto personalizado ( Eliminar conversación de Chatter ) y un campo de texto para guardar el Id. de conversación de Chatter .

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, haga clic en Crear | Objeto personalizado .
  3. Ahora cree un objeto personalizado Eliminar conversación de Chatter y campos como se muestra en la siguiente captura de pantalla:
  4. Haga clic en Guardar.

Asegúrese de haber marcado el campo Chatter_Conversation_Id__c como obligatorio y de haber otorgado acceso CRUD a los perfiles respectivos.

Paso 3.1: Definir propiedades de flujo

El siguiente paso es crear un Flujo para implementar el requisito comercial, es decir, eliminar la conversación de chat cuando alguien creó un registro en el objeto personalizado creado en el paso n.º 2.

  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: Eliminar conversación de Chatter
    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 3.2: uso del elemento de decisión para verificar si el campo Id. de conversación de Chatter está completo o no

El siguiente paso es verificar que el campo de identificación de conversación de chat esté completo o no. 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: {!$Record.Chatter_conversation_Id__c}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Haga clic en Listo .

Paso 3.3: Añadir acción – Eliminar registro

El siguiente paso es eliminar la conversación de chat. 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 Especificar condiciones .
  4. Seleccione el objeto ChatterMessage de la lista desplegable.
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de conversación
      2. Operador : Igual
      3. Valor : {!$Record.Chatter_Conversation_Id__c}
  6. Haga clic en Listo .

Al final, Rachel'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 : Eliminar conversació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

  1. Inicie sesión como usuario de plataforma Brenda David (perfil de plataforma personalizado). Usuario de la plataforma de Salesforce
    1. No se asigna ningún permiso adicional a este usuario aparte del permiso Crear y Leer en el objeto Eliminar conversación de Chatter .
  2. Brenda quiere eliminar conversaciones de Chatter (todos los mensajes en un hilo) enviadas por el usuario de ventas Rakesh Gupta , pero como usuario comercial cuando no puede ejecutar una consulta para obtener el Id. Conversación de chat
  3. Para obtener un Id. de conversación de Chatter , abra el mensaje de Chatter y haga clic con el botón derecho en él, y luego seleccione Inspeccionar elemento , como se muestra en la siguiente captura de pantalla: Seleccione Inspeccionar elemento para una conversación de Chatter
  4. Se abrirá una ventana en la parte inferior de la pantalla actual. Busque y copie el Id. de conversación de Chatter como se muestra en la siguiente captura de pantalla: Id. de conversación de Chatter
  5. Cree un nuevo registro en el objeto Eliminar conversación de Chatter , como se muestra en la siguiente captura de pantalla Crear un nuevo registro
  6. Vaya a los mensajes de Chatter y compruébelo ahora. La conversación (es decir , test2w333 ? ) enviada por el administrador del sistema Rakesh Gupta se elimina.

Salida final

<img data-lazy-fallback="1" data-attachment-id="6599" data-permalink="https://automationchampion.com/2022/06/22/delete-complete-chatter-conversation-using-salesforce-flow-2/final-output-16/" data-orig-file="https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output2.png?fit=762%2C273&ssl=1" data-orig-size="762,273" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Final Output" data-image-description="

Final Output

» data-image-caption=»

Final Output

» data-medium-file=»https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output2.png?fit=300%2C107&ssl=1″ data-large-file=»https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output2.png?fit=640%2C229&ssl=1″ loading=»lazy» class=»aligncenter wp-image-6599 size-full» src=»https://discover.egafutura.com/wp-content/uploads/2022/06/eliminar-conversacion-completa-de-chatter-mediante-salesforce-flow-21.png» alt=»Salida final» width=»640″ height=»229″ data-recalc-dims=»1″>

Nota : – Solo puede eliminar aquellas conversaciones de Chatter en las que está incluido; de lo contrario, obtendrá un error. ( No hay nada en Salesforce que coincida con sus criterios de eliminación ) . No se aplica al administrador del sistema con el permiso Administrar mensajes de Chatter .

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/22/delete-complete-chatter-conversation-using-salesforce-flow-2/

Categories
Developers

Acceda a recursos estáticos, archivos de activos de contenido en Lightning Web Component

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

Gran idea o pregunta duradera:

  • ¿Cómo importar y usar recursos estáticos en el componente web lightning?

Objetivos:

Después de leer este blog, podrá:

  • Comprender el propósito del recurso estático
  • Usar recurso estático en el componente web lightning
  • Acceder al archivo de activos de contenido en el componente web lightning
  • y mucho más

En el pasado se escribieron algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Pasar el valor del campo de entrada Lightning de un clic de botón al controlador de componentes web Lightning
  2. Restablecer el campo de entrada Lightning al hacer clic en un botón en el componente web Lightning
  3. Agregar cuadro de diálogo de confirmación, alerta y aviso al componente web Lightning

Rachel Gillett trabaja como desarrolladora junior en Gurukul on Cloud (GoC). Ha subido dos imágenes en los respectivos recursos estáticos como se menciona a continuación:

  1. Campeón_de_automatización
  2. slds_icons/utility/product_warranty_term_60.png

Ahora quiere aprender cómo importarlos y usarlos en el componente web Lightning, similar a la siguiente captura de pantalla:

¿Cómo importar recursos estáticos en el componente web Lightning?

Los recursos estáticos le permiten cargar contenido al que puede hacer referencia en un Componente Lightning Web Component, incluidos archivos comprimidos (como archivos .zip y .jar), imágenes, hojas de estilo, JavaScript y otros archivos. Los recursos estáticos solo se pueden utilizar dentro de su organización de Salesforce, por lo que no puede alojar contenido aquí para otras aplicaciones o sitios web.

Para acceder a los recursos estáticos en los componentes web Lightning, primero debemos importar desde @salesforce/resourceUrl al archivo JavaScript del componente.

La sintaxis para importar recursos estáticos en Lightning Web Component


importar myResource desde '@salesforce/resourceUrl/resourceReference';

Cuando el recurso estático tiene un espacio de nombres


importar myResource desde '@salesforce/resourceUrl/namespace__resourceReference';
  • myResource : un nombre que hace referencia al recurso estático.
  • resourceReference : el nombre del recurso estático. Un nombre de recurso estático puede contener solo guiones bajos y caracteres alfanuméricos y debe ser único en su organización. Debe comenzar con una letra, no incluir espacios, no terminar con un guión bajo y no contener dos guiones bajos consecutivos.
  • espacio de nombres : si el recurso estático está en un paquete administrado, este valor es el espacio de nombres del paquete administrado.

¿Cómo acceder a los archivos de activos de contenido en el componente web Lightning?

Para acceder a archivos de activos de contenido en componentes web Lightning, primero debemos importar desde @salesforce/contentAssetUrl al archivo JavaScript del componente. Convierta un archivo de Salesforce en un archivo de activos de contenido para utilizar el archivo en aplicaciones personalizadas y plantillas de Experience Builder.

La sintaxis para importar archivos de activos de contenido en Lightning Web Component


importar myContentAsset desde '@salesforce/contentAssetUrl/contentAssetReference';

Cuando el recurso estático tiene un espacio de nombres


importar myContentAsset desde '@salesforce/contentAssetUrl/namespace__contentAssetReference';
  • myContentAsset : un nombre que hace referencia al archivo de recursos.
  • contentAssetReference : el nombre del archivo de recursos. Un nombre de archivo de activo puede contener solo guiones bajos y caracteres alfanuméricos, y debe ser único en su organización. Debe comenzar con una letra, no incluir espacios, no terminar con un guión bajo y no contener dos guiones bajos consecutivos.
  • espacio de nombres : si el archivo de activos está en un paquete administrado, este valor es el espacio de nombres del paquete administrado.

El código JavaScript importa dos archivos de activos de contenido. Un archivo de activos de contenido puede ser un archivo de almacenamiento con una estructura de directorio anidada. Para hacer referencia a un elemento en un archivo, concatene una cadena para crear la ruta al elemento, como lo hace el ejemplo para construir silverPartnerLogoUrl .

Para especificar la ruta al archivo de activos de contenido en el archivo, utilice el parámetro pathinarchive .


// contentAssetFileExample.js
importar { LightningElement } desde 'lwc';
importar COMPANY_LOGO desde '@salesforce/contentAssetUrl/SalesWaveLogo';
importar PARTNER_LOGOS desde '@salesforce/contentAssetUrl/PartnerLogos'; exportar clase predeterminada AssetFileExample extiende LightningElement { // Exponer la URL del archivo de recursos para su uso en la plantilla empresaLogoUrl = EMPRESA_LOGO; // Exponer la URL de los activos incluidos dentro de un archivo de almacenamiento silverPartnerLogoUrl = PARTNER_LOGOS + 'pathinarchive=images/silver_partner.png'; }

<!-- contentAssetFileExample.html -->
<plantilla> <lightning-card title="Ejemplo de archivo de activos de contenido" icon-name="custom:custom19"> <div class="slds-m-alrededor_medio"> <img src={url del logotipo de la empresa}> <img src={silverPartnerLogoUrl}> </div> </tarjeta-relámpago>
</plantilla>

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

Hay 3 pasos para resolver el requisito empresarial de Rachel utilizando el componente web Lightning y el recurso estático . Debemos:

  1. Cargue el logotipo de Automation Champion como un recurso estático
  2. Cargue la carpeta zip SLDS Icons como un recurso estático
  3. Importe y use recursos estáticos en el componente web lightning

1. Cargue el logotipo de Automation Champion como un recurso estático

Cargue el logotipo de Automation Champion, como un único archivo .png en el recurso estático. Seleccione Público en la lista desplegable de control de caché.

2. Cargue la carpeta Zip de iconos de SLDS como un recurso estático

Descargue la carpeta Zip de SLDS Icons y luego cárguela como un archivo zip en el recurso estático. Seleccione Público en la lista desplegable de control de caché.

Importe y utilice recursos estáticos en el componente web Lightning

Después de cargar imágenes en un recurso estático, ahora podemos usarlas en Lightning Web Component.

staticResourceExample.js-meta.xml

Se puede utilizar un componente web lightning para crear páginas personalizadas para Lightning Experience y la aplicación móvil Salesforce rápidamente con herramientas de apuntar y hacer clic. Asegúrese de agregar el objetivo correcto para ello.

Este archivo de configuración hace que el componente esté disponible para todos los tipos de páginas Lightning, pero restringe la compatibilidad en la página de inicio solo para escritorios.


<?versión xml="1.0" codificación="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadatos"> <apiVersion>54.0</apiVersion> <isExposed>verdadero</isExposed> <objetivos> <target>relámpago__RecordPage</target> <target>relámpago__AppPage</target> <objetivo>relámpago__Página de inicio</objetivo> </objetivos>
</LightningComponentBundle>

ejemplo de recurso estático .html

Para hacer referencia a un recurso en una plantilla, use la sintaxis {propiedad } , que es la misma sintaxis que usamos para hacer referencia a cualquier propiedad de JavaScript.


<!-- staticResourceExample.html -->
<plantilla> <lightning-card title="Ejemplo de recurso estático" icon-name="custom:custom36"> <div class="slds-m-alrededor_medio"> <img src={automationChampionLogoUrl}> <img src={productWarrantyTermUrl}> </div> </tarjeta-relámpago>
</plantilla>

ejemplo de recurso estático .js

El código JavaScript importa dos recursos: el logotipo de Automation Champion y una imagen de un icono de Término de garantía del producto.


// ejemplo de recurso estático.js
importar { LightningElement } desde 'lwc';
importar AUTOMATION_CHMAPION_LOGO desde '@salesforce/resourceUrl/Automation_Champion';
importar PRODUCT_WARRANTY_ICON desde '@salesforce/resourceUrl/slds_icons'; exportar clase predeterminada staticResourceExample extiende LightningElement { // Exponer la URL del recurso estático para usar en la plantilla automatizaciónChampionLogoUrl = AUTOMATIZACIÓN_CHMAPION_LOGO; // Exponer la URL del icono del plazo de garantía del producto incluido dentro de un archivo de almacenamiento productWarrantyTermUrl = PRODUCT_WARRANTY_ICON + '/utility/product_warranty_term_60.png'; }

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/20/access-static-resource-in-lightning-web-component-2/

Categories
Developers Salesforce

Eliminar mensajes de Chatter mediante Salesforce Flow

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

Gran idea o pregunta duradera:

¿Cómo se puede permitir que los usuarios eliminen mensajes individuales de Chatter?

Objetivos:

Después de leer este artículo, el lector podrá:

  • Utilice la automatización para aumentar los permisos de los usuarios
  • Crear un objeto personalizado para almacenar el Id. de un mensaje de Chatter
  • Usar flujo activado por registro para eliminar el mensaje de Chatter

Rachel Gillett trabaja como administradora de sistemas en Universal Containers (UC) . Ha recibido un requisito de la gerencia para permitir que sus representantes de ventas (Tipo de licencia: – Plataforma de Salesforce) eliminen los mensajes de Chatter uno por uno de la interfaz de usuario de Salesforce .

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

**La función Mensajes de Chatter solo está disponible en Classic

En primer lugar, es importante comprender los mensajes de Chatter y las conversaciones de Chatter en Salesforce . Los mensajes de Chatter le permiten tener conversaciones privadas seguras con otros usuarios de Chatter . Use mensajes para enviar una pregunta a su colega en privado o para comunicarse con algunas personas seleccionadas cuando una discusión no es relevante para todas las personas con las que trabaja . Una conversación de Chatter consta de mensajes que los miembros de la conversación han enviado o recibido .

Recuerde los siguientes puntos para usar mensajes de Chatter

  1. Un mensaje privado puede incluir hasta 9 miembros, incluido usted mismo .
  2. Los mensajes enviados no se podrán ver a través de las noticias en tiempo real de Chatter, el perfil de Chatter o los resultados de la búsqueda global .
  3. No puedes borrar mensajes ni conversaciones .
  4. Un administrador con el permiso Administrar mensajes de Chatter puede ver y eliminar todos los mensajes de los usuarios en Chatter . Esto puede ser necesario para fines de cumplimiento.
    1. Los mensajes se eliminan de forma permanente. No se envían a la Papelera de reciclaje .
    2. Los mensajes eliminados no se incluyen en los resultados de búsqueda de mensajes .
    3. Si se eliminan todos los mensajes de una conversación, la conversación no se muestra en Mis mensajes y no se puede recuperar a través de la API REST de Chatter .
  5. Si después de leer los mensajes en una conversación desea marcar la conversación como no leída, puede hacerlo solo a través de la API REST de Chatter, no a través de la interfaz de usuario .

Hay algunas soluciones posibles para el escenario comercial anterior, pero usaré Salesforce Flow y Custom Object para resolver el requisito comercial. Como se mencionó anteriormente, un administrador del sistema con el permiso Administrar mensajes de Chatter puede ver y eliminar todos los mensajes de los usuarios en Chatter . Los usuarios comerciales no pueden eliminar mensajes ni conversaciones .

En Salesforce , el objeto ChatterMessage representa un mensaje enviado como parte de una conversación privada en Chatter . Hay algunos campos relevantes para identificar:

Nombre del campo Detalles
Identificación Id. de mensaje de Chatter
ID de conversación El Id. de la conversación con la que está asociado ChatterMessage.

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 3 pasos para resolver el requisito empresarial de Rachel mediante Record-triggered Flow . Debemos:

  1. Otorgar permiso de administración de chat
  2. Cree un objeto personalizado con pocos campos que se usarán para guardar el Id. del mensaje de Chatter, que los usuarios desean eliminar.
  3. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar un elemento de decisión para verificar que el campo Id. de mensaje de Chatter no sea nulo
    3. Agregue un elemento Eliminar registros para eliminar el mensaje de Chatter

Paso 1: Otorgar permiso para administrar mensajes de Chatter a los usuarios

Primero, cree un Conjunto de permisos para otorgar a su registro de usuario el permiso Administrar mensajes de Chatter . De lo contrario , obtendrá un error al crear el flujo. El permiso se puede eliminar más tarde.

Paso 2: Cree un objeto personalizado: elimine mensajes de Chatter

Cree un objeto personalizado ( Eliminar mensaje de Chatter ) y un campo de texto para guardar el Chatter MessageId .

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, haga clic en Crear | Objeto personalizado .
  3. Ahora cree un objeto personalizado Eliminar mensajes y campos de Chatter como se muestra en la siguiente captura de pantalla:
  4. Haga clic en Guardar.

Asegúrese de haber marcado el campo Chatter_Message_Id__c como obligatorio y también haber otorgado acceso CRUD a los perfiles respectivos.

Paso 3.1: Flujo relámpago: definir las propiedades del flujo

El siguiente paso es crear un Flujo para implementar el requisito comercial, es decir, eliminar el mensaje de conversación cuando alguien creó un registro en el objeto personalizado creado en el paso n.º 2.

  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: Eliminar mensaje de Chatter
    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 3.2: uso del elemento de decisión para verificar si el campo Id. de mensaje de Chatter está completo o no

El siguiente paso es verificar que el campo de identificación del mensaje de Chatter esté completo o no. 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: {!$Record.Chatter_Message_Id__c}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Haga clic en Listo .

Paso 3.3: Agregar acción: eliminar registros

El siguiente paso es eliminar el mensaje de chat. 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 Especificar condiciones .
  4. Seleccione el Mensaje de Chatter   objeto de la lista desplegable.
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Identificación
      2. Operador : Igual
      3. Valor : {!$Record.Chatter_Message_Id__c}
  6. Haga clic en Listo .

Al final, Rachel'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 : Eliminar mensajes 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

  1. Inicie sesión como usuario de plataforma Brenda David (perfil de plataforma personalizado). Usuario de la plataforma de Salesforce
    1. No se asigna ningún permiso adicional a este usuario aparte del permiso Crear y Leer en el objeto Eliminar mensaje de Chatter .
  2. Brenda quiere eliminar un mensaje de Chatter enviado por el usuario de ventas Rakesh Gupta , pero como usuario comercial cuando no puede ejecutar una consulta para obtener la Id. Conversación de chat
  3. Para obtener un Id. de mensaje de Chatter , abra el mensaje de Chatter y haga clic con el botón derecho en él, y luego seleccione Inspeccionar elemento , como se muestra en la siguiente captura de pantalla Seleccione Inspeccionar elemento para un mensaje de Chatter
  4. Se abrirá una ventana en la parte inferior de la pantalla actual. Busque y copie el Id. de mensaje de Chatter como se muestra en la siguiente captura de pantalla Id. de mensaje de Chatter
  5. Cree un nuevo registro en el objeto Eliminar mensaje de Chatter , como se muestra en la siguiente captura de pantalla Crear un nuevo registro
  6. Vaya a los mensajes de Chatter y compruébelo ahora. El mensaje (es decir , ¿Qué pasa ? ) enviado por el administrador del sistema Rakesh Gupta se elimina.

Salida final

<img data-attachment-id="6555" data-permalink="https://automationchampion.com/2022/06/17/delete-chatter-messages-using-salesforce-flow-2/final-output-15/" data-orig-file="https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output1.png?fit=761%2C364&ssl=1" data-orig-size="761,364" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Final Output" data-image-description="

Final Output

» data-image-caption=»

Final Output

» data-medium-file=»https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output1.png?fit=300%2C143&ssl=1″ data-large-file=»https://i0.wp.com/automationchampion.com/wp-content/uploads/2015/07/final-output1.png?fit=640%2C306&ssl=1″ loading=»lazy» class=»aligncenter wp-image-6555 size-full» src=»https://discover.egafutura.com/wp-content/uploads/2022/06/eliminar-mensajes-de-chatter-mediante-salesforce-flow-21.png» alt=»Salida final» width=»640″ height=»306″ data-recalc-dims=»1″>

Nota : – Solo puede eliminar los mensajes de Chatter en los que está incluido; de lo contrario, obtendrá un error. ( No hay nada en Salesforce que coincida con sus criterios de eliminación ) . No se aplica al administrador del sistema con el permiso Administrar mensajes de Chatter .

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/17/delete-chatter-messages-using-salesforce-flow-2/

Categories
Developers

Componente de área de texto enriquecido para Screen Flow

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

Gran idea o pregunta duradera:

  • ¿Cómo agregar un campo de área de texto enriquecido a una pantalla de flujo?

Objetivos:

Después de leer este blog, podrá:

  • Crear un componente web Lightning para flujo de pantalla
  • Agregar un editor de propiedades personalizado para un componente de pantalla
  • Agregar un componente web Lightning a una pantalla de flujo
  • Asigne el valor del componente web lightning personalizado a un campo de área de texto (enriquecido)
  • y mucho más

Rachel Gillett trabaja como desarrolladora junior en Gurukul on Cloud (GoC). Ella recibió un requerimiento de la gerencia que requiere que él construya un componente web Lightning para el flujo de pantalla que permita a los representantes ingresar notas de ventas en un área de texto enriquecido y luego almacenar la entrada en un campo de área de texto (enriquecido) en la cuenta.

¿Por qué necesitamos un componente personalizado para Rich Text Area for Screen Flow?

La razón es sencilla. Salesforce Flow no tiene un componente listo para usar para Rich Text Area. Es por eso que necesitamos un componente web relámpago para habilitar un componente de área de texto enriquecido en la pantalla de flujo.

Personalizar la interfaz de usuario del componente de pantalla y acción en Flow Builder

Desarrolle un editor de propiedades personalizado que proporcione una interfaz de usuario simplificada para un administrador cuando configure un componente de pantalla personalizado o una acción invocable en Flow Builder. Un editor de propiedades personalizadas es un componente web Lightning que proporciona una interfaz de usuario personalizada para ingresar valores de entrada.

Este ejemplo crea un editor de propiedades personalizadas para un componente de pantalla de flujo personalizado que muestra #líneas visibles , Etiqueta de campo, Longitud de campo, Obligatorio , Valor de campo . El administrador establece el valor de estos componentes mediante un control deslizante en el editor de propiedades personalizadas del componente de volumen. Cuando los usuarios ejecutan el flujo, la pantalla de flujo muestra o usa los valores del administrador.

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

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Lightning Web Component y Screen Flow para resolver el requisito.

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 4 pasos para resolver el requisito empresarial de Rachel utilizando Lightning Web Component y Screen Flow . Debemos:

  1. Cree un campo de área de texto (enriquecido) personalizado en la cuenta
  2. Cree un componente de área de texto enriquecido para Screen Flow utilizando el componente web lightning
  3. Pasos de flujo de Salesforce
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregar una pantalla para mostrar el componente personalizado Búsqueda de cuenta y Área de texto enriquecido
    3. Agregue un elemento de registros de actualización para actualizar una cuenta
  4. Agregue un flujo de pantalla a la página de inicio de Lightning

Paso 1: crear un campo de área de texto personalizado (enriquecido) en el objeto de cuenta

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Cuenta .
  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 la API .
  6. Como práctica recomendada, siempre ingrese una descripción .
  7. # Líneas visibles : 25
  8. Longitud : 32.768
  9. Configure la Seguridad a nivel de campo para los perfiles , asegúrese de configurar este campo como de solo lectura.
  10. No agregue este campo al diseño de página .
  11. Haga clic en Guardar.

Paso 2: Cree un componente de área de texto enriquecido para el flujo de pantalla utilizando el componente web Lightning

En primer lugar, cree un componente web Lightning de área de texto enriquecido con el siguiente código. Si no sabe cómo crear un componente Lightning, consulte esta guía para desarrolladores Crear un componente web Lightning .

ScreenFlowRichText.html

ScreenFlowRichText.js

ScreenFlowRichText.js-meta.xml

ScreenFlowRichText.css

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

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 de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 3.2: agregue una pantalla para mostrar la búsqueda de cuentas y el componente personalizado del área de texto enriquecido

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta , el nombre de la API se completará automáticamente.
  3. Mira el video para obtener instrucciones paso a paso y algunos consejos.

Paso 3.3: Agregar acción: actualizar registros

El siguiente paso es actualizar el registro de la cuenta para almacenar la nota de venta. 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 Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Cuenta
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Identificación
      2. Operador : Igual
      3. Valor : {!Cuenta.recordId}
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : Sales_Note__c
      2. Valor : {!SalesNote.fieldValue}
  8. Haga clic en Listo .

Al final, Rachel'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 : Área de texto enriquecido {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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

Paso 4: agregue un flujo de pantalla a la página de inicio de Lightning

El siguiente paso es distribuir un flujo a los usuarios de la aplicación Lightning Experience o Salesforce incrustándolo en una página de inicio de Lightning.

Prueba de concepto

Mira el video para obtener instrucciones paso a paso.

[contenido incrustado]

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/10/rich-text-area-component-for-screen-flow-2/

Categories
Developers Salesforce

Agregar automáticamente miembro del equipo de oportunidades al seguidor de oportunidades

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

Gran idea o pregunta duradera:

  • ¿Cómo puede agregar automáticamente miembros del equipo de oportunidades a un seguidor en una oportunidad?

Objetivos:

Después de leer este blog, podrá:

  • Trabajar con el elemento obtener registros para encontrar el registro
  • Utilice el elemento de decisión para comprobar los valores de registro
  • Use el elemento de creación de registros para agregar automáticamente seguidores a una oportunidad
  • y mucho más

Rachel Gillett trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Ha recibido un requisito de la administración de que si se agrega un nuevo usuario al equipo de Oportunidad, entonces se agrega automáticamente al usuario como seguidor de Oportunidad.

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

Un equipo de oportunidad es un conjunto de usuarios que normalmente trabajan juntos en una oportunidad . Un equipo de oportunidades típico podría incluir al administrador de cuentas, al representante de ventas y a un consultor de preventa . En Salesforce, un usuario puede seguir grupos de Chatter o Registros . A partir de ahora, Salesforce no tiene ninguna funcionalidad lista para usar para realizar un seguimiento automático de los registros cuando se agrega un usuario a un equipo, etc. , aparte de Seguir automáticamente los registros que creo .

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Flow para resolver el requisito. Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.

Hagamos una pausa aquí y familiarícese con el objeto EntitySubscription en Salesforce. Representa una suscripción para un usuario que sigue un registro u otro usuario. Un usuario puede suscribirse a un registro oa otro usuario.

Nombre del campo Detalles
Identificación de los padres El ID del registro o usuario que el usuario está siguiendo
Identificación de suscriptor El ID del Usuario que está siguiendo el registro o usuario

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 5 pasos para resolver el requisito empresarial de Rachel mediante Record-triggered Flow . Debemos:

  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 obtención de registros para encontrar los detalles del seguidor del miembro actual del equipo
  4. Agregue un elemento de decisión para verificar si el miembro del equipo está siguiendo el registro de oportunidad o no
  5. Agregue un elemento de creación de registros para agregar el miembro del equipo de oportunidades al seguidor de oportunidades

Paso 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
    1. Objeto : miembro del equipo de oportunidad
    2. Activar flujo de oportunidad 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: 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 3: agregar un elemento Obtener registro para encontrar los detalles del seguidor de oportunidades para el miembro actual del equipo

El siguiente paso es usar el objeto EntitySubscription para verificar si el miembro del equipo de Oportunidad ya está siguiendo la Oportunidad o no.

  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 Suscripción de entidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de padre
      2. Operador : Igual
      3. Valor : {!$Record.OpportunityId}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de suscriptor
      2. Operador : Igual
      3. Valor : {!$Record.UserId}
  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 4: uso del elemento de decisión para verificar si el miembro del equipo está siguiendo el registro de oportunidad o no

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 3 para ver si devuelve el estado de seguidor de registro para el miembro del equipo de oportunidad actual 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 : {!forB_IsNew}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : {!Get_Follower}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 5: Crear registros: agregar un miembro del equipo de oportunidades a un seguidor de oportunidades

Para agregar un miembro del equipo de oportunidades a Record Follower , usaremos el elemento Create Records .

  1. En Flow Designer, 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 : Suscripción de entidad
    4. Establecer valores de campo para la suscripción de entidad
    5. Fila 1:
      1. Campo : ID de padre
      2. Valor : {!$Record.OpportunityId}
    6. Haga clic en Agregar campo
    7. Fila 2:
      1. Campo : ID de suscriptor
      2. Valor : {!$Record.UserId}
  4. Haga clic en Listo .

Al final, Rachel'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 : agregar automáticamente miembro del equipo de oportunidad a seguidor de oportunidad {!$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

  1. Navegue a la pestaña Oportunidad , identifique la Oportunidad y haga clic en Nombre de la Oportunidad.
  2. Ahora voy a agregar al usuario Nathan Gilmore al miembro del equipo de oportunidades , como se muestra en la siguiente captura de pantalla. Una vez que se haya agregado como miembro del equipo de la oportunidad, se agregará automáticamente como seguidora 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? 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/07/auto-add-opportunity-team-member-to-opportunity-follower-5/

Categories
Developers

¿Alguna vez ha necesitado seleccionar varios valores de listas de selección en el flujo? ¿Qué tal a través de una sola condición?

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

Salesforce Flow es una de las herramientas más poderosas proporcionadas por Salesforce para implementar requisitos comerciales de forma declarativa . ¡ Hasta la fecha, he escrito más de 200 flujos solo para mis publicaciones de blog!

Salesforce Flow ayuda a las empresas a ahorrar tiempo y dinero al implementar soluciones rápidamente. La implementación de Salesforce Flow es sencilla: crea un flujo; lo prueba ; y luego, use el conjunto de cambios para implementarlo en producción. La mejor parte es que no tiene que escribir clases de prueba para sus flujos.

¡Pero existen pocas limitaciones de Salesforce Flow frente a Workflow! ¡Sí! ¡Has leído bien ! ¡El flujo de trabajo tiene ventaja al definir los criterios de regla!

Permítame desentrañar este misterio ofreciendo un ejemplo: como administrador del sistema, recibe un requisito para crear automáticamente un registro de Cotización cada vez que la Etapa de oportunidad es Propuesta/Cotización de precio o Negociación/Revisión .

Para lograr el requisito comercial anterior, a través de una regla de flujo de trabajo , puede hacer algo similar a lo que se muestra en la siguiente captura de pantalla:

Pero para lograr el mismo requisito a través de Record-Triggered Flow , puede hacer algo similar a lo que se muestra en la siguiente captura de pantalla:

Si creó un Flujo desencadenado por registros con Salesforce Flow antes de esa fecha, sabe cómo configuro dos valores para la lista de selección Etapa. Pero, para aquellos que son relativamente nuevos en Salesforce Flow, permítanme guiarlos a través del flujo paso a paso. La regla de flujo de trabajo le permite seleccionar varios valores para una lista de selección. Si observa la captura de pantalla de la regla de flujo de trabajo, he elegido (definido) el valor de la lista de selección en una sola línea usando comas (,).

Pero si intenta lograr lo mismo usando Record-triggered Flow , no funcionará. A diferencia de las reglas de flujo de trabajo, no se puede desarrollar un criterio de regla para seleccionar múltiples valores de listas de selección, en un solo trazo, utilizando flujo activado por registro . Para obtener una explicación detallada, consulte el siguiente artículo publicado por Salesforce : CONTIENE con varios valores separados por comas no activa un Flujo .

La solución sugerida por Salesforce (es la misma que he usado en la captura de pantalla de Process Builder) es buena para el caso de uso comercial simple. Pero, ¿qué pasa con un requisito complicado en el que debe tener en cuenta otras cosas (como Cantidad> $ 1000 y Fecha de cierre> Hoy) al definir los criterios de entrada de flujo?

¡¡Puaj!! ¡Qué pesadilla! ¡Propenso a errores y un enorme dolor de cabeza!

Ya que, en los escenarios antes mencionados, usará varias declaraciones Y/O, como hice en la captura de pantalla anterior : (1 O 2) Y 3 Y 4.

Gracias a los usuarios de gran talento del blog Automationchampion.com por sus comentarios constructivos y, especialmente, por desafiarme a encontrar una solución simplificada para el problema antes mencionado. ¡Pues reto aceptado!

En este artículo, voy a compartir mis trucos para resolver el caso de uso comercial anterior utilizando una fórmula simple. Comencemos con un caso de uso empresarial.

Edward Backhouse trabaja como administrador de sistemas en GurukulOnCloud . En GurukulOnCloud están utilizando el flujo activado por registros para agilizar los procesos de ventas. Hoy, Edward recibió un requisito para crear automáticamente un registro de cotización, tan pronto como una oportunidad cumpla con las siguientes condiciones:

  • Etapa = Propuesta/Cotización de precio o Negociación/Revisión
  • Cantidad > 1,000
  • Fecha de cierre > Hoy

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

Hay algunas soluciones posibles para el escenario empresarial anterior, pero usaré el flujo activado por registro después de guardar para resolver el requisito empresarial. Dediquemos un tiempo a comprender la fórmula Case en Salesforce y cómo usarla.

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 4 pasos para resolver el requisito empresarial de Edward mediante el flujo activado por registro . Debemos:

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Cree una fórmula para determinar si la etapa coincide
  3. Agregue un elemento de decisión para verificar los criterios de etapa, cantidad y fecha de cierre
  4. Agregue un elemento de creación de registros para crear una cotización

Paso 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
    1. Objeto : Oportunidad
    2. Activar flujo de oportunidad 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: fórmula para determinar si StageName coincide

  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 la API : forT_StageName
    3. Tipo de datos : Texto
    4. Fórmula :
      1. CASE({!$Record.StageName} ,
        “Propuesta/Cotización de precio”, “Verdadero”,
        “Negociación/Revisión”, “Verdadero”,
        "Falso"
        )
  3. Haga clic en Listo .

Paso 3: uso del elemento de decisión para verificar los criterios de etapa, cantidad y fecha de cierre

Ahora usaremos el elemento Decisión para verificar si el nombre de la etapa, la fecha de cierre y la cantidad se describen en el requisito.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Arrastre y suelte el elemento Decisió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. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  5. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!forT_StageName}
      2. Operador: Igual
      3. Valor: Verdadero
    2. Haga clic en Agregar condición
    3. Fila 2 :
      1. Recurso : {!$Record.Amount}
      2. Operador : mayor que
      3. Valor : 1000
    4. Haga clic en Agregar condición
    5. Fila 3 :
      1. Recurso : {!$Record.CloseDate}
      2. Operador : mayor que
      3. Valor : {!$Flow.CurrentDate}
  6. Haga clic en Listo .

Paso 4: agregue el elemento Crear registros para crear una cotización

El paso final es crear un registro de cotización. Para ello, utilizaremos el elemento Crear registros .

  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 : Cita
    4. Establecer valores de campo para la cotización
    5. Fila 1:
      1. Campo : Estado
      2. Valor : Borrador
    6. Haga clic en Agregar campo
    7. Fila 2:
      1. Campo : ID de oportunidad
      2. Valor : {!$Record.Id}
    8. Haga clic en Agregar campo
    9. Fila 3:
      1. Campo : Nombre
      2. Valor : {!$Registro.Nombre}
  4. Haga clic en Listo .

Al final, Edward'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 : Usar fórmula en el flujo   {!$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 el usuario cree o actualice los registros de Oportunidad, el flujo que creamos (usando el flujo desencadenado por registro) se activará y verificará los criterios. Si cumple con los criterios establecidos, el flujo activado por registro creará un registro de Cotización, como se muestra en el siguiente video:

¡Espero que pueda aprender del blog cómo seleccionar múltiples valores de listas de selección utilizando Salesforce Flow! ¡Sí adelante! ¡Muestre sus habilidades recién adquiridas a sus amigos, colegas y familiares!

Bromas aparte, dominar estas habilidades mejorará su productividad y lo impulsará a probar varias permutaciones y combinaciones para incorporar la automatización en sus procesos y procedimientos cotidianos.

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/ever-needed-to-select-multiple-picklist-values-in-flow/

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

Cree un canal Slack usando Flow

Última actualización el 30 de mayo de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se crea un canal de Slack con Salesforce Flow?

Los canales de Slack aportan orden y claridad al trabajo: puede crearlos para cada proyecto, tema o equipo. Cuando hay un canal para todo, puede concentrarse en las conversaciones y el trabajo que más le importan.

He escrito algunos artículos sobre Slack and Flow . ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Publicar un mensaje en un canal de Slack usando Flow
  2. Enviar un mensaje directo de Slack usando Flow

Objetivos:

Después de leer este blog, podrá:

  • Comprender cuándo usar la ruta Ejecutar asíncrono
  • Hacer llamadas externas a través de Flow
  • Trabajar con fórmulas SUBSTITUTE, LOWER e LEFT en el flujo
  • Crear un canal de Slack usando el flujo
  • y mucho más

Martin Jones trabaja como administrador de sistemas en Gurukul on Cloud (GoC) . GoC quiere crear un nuevo canal de holgura cuando se crea una cuenta con calificación Hot. GoC quiere seguir la convención de nomenclatura para el canal de Slack:

  • cuenta-{use los primeros 20 caracteres del nombre de la cuenta)
    • Por ejemplo, si el nombre de la cuenta es la Universidad de Arizona , entonces el nombre del canal debe ser cuenta-cuenta-universidad-de-arizon .

Requisitos previos:

  1. El primer paso es completar la integración de Salesforce para Slack .
  2. El segundo paso es instalar Sales Cloud for Slack en sus espacios de trabajo de Slack.
  3. La fórmula de sustitución se utiliza para reemplazar texto antiguo en una cadena de texto con texto nuevo.
  4. La fórmula de la izquierda devuelve el número especificado de caracteres desde el principio de una cadena de texto.
  5. La fórmula inferior convierte todas las letras de la cadena de texto especificada a minúsculas.
  6. Los nombres de los canales deben estar en minúsculas, sin espacios ni puntos, y no pueden exceder los 80 caracteres .

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

Agregue una ruta asincrónica a un flujo de flujo desencadenado por registro después de guardar para integrarse con un sistema externo y actualizar objetos externos sin escribir código. La ruta asíncrona se ejecuta después de que la transacción original para el registro desencadenante se confirme correctamente. Por ejemplo, utilice una ruta asincrónica para publicar un mensaje en Slack, actualizar un registro en Heroku o realizar un pedido mediante un sistema de cumplimiento de terceros.

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 3 pasos para resolver el requisito empresarial de Martin mediante el flujo activado por registro . Debemos:

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Cree una fórmula para construir el nombre del canal de holgura
  3. Agregue la acción Crear canal de Slack (Beta): para crear un canal de Slack

Paso 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 el flujo activado por registro opción, haga clic en Crear
    1. Objeto : Cuenta
    2. Activar flujo de oportunidad cuando : se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: se cumplen todas las condiciones (Y)
        1. Fila 1
          1. Campo: Calificación
          2. Operador: Igual
          3. Valor: Caliente
    4. Optimice el flujo para la acción y los registros relacionados
    5. Elija la opción para incluir una ruta de ejecución asincrónica 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 .

Recuerda
  1. Las rutas asincrónicas están disponibles para los flujos desencadenados por registros que se ejecutan después de guardar el registro.
  2. Las opciones de rutas asincrónicas solo están disponibles para el flujo que está configurado para ejecutarse solo cuando se actualiza un registro para cumplir con los requisitos de la condición o selecciona el operador Is Changed en una condición.
  3. Cuando un registro nuevo o actualizado activa su flujo para que se ejecute, una ruta asincrónica se pone en cola hasta que se ejecuta. Puede monitorear una ruta asíncrona en la página Flujo de trabajo basado en tiempo en Configuración.

Paso 2: fórmula para construir el nombre del canal Slack

  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 : para T_ChannelName
    3. Tipo de datos : Texto
    4. Fórmula : “cuenta” & “-” & SUSTITUCIÓN (INFERIOR (IZQUIERDA ({!$Record.Name}, 20)), ” “, “-“)
  3. Haga clic en Listo .

Paso 3: Agregue Create Slack Channel (Beta) – para crear un Slack Channel

Ahora usaremos la acción Crear canal de Slack (Beta) para crear un nuevo canal de Slack.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Crear canal de Slack (Beta) 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 conexión para Slack
    1. Aplicación Slack: Essentials Runtime Starter
    2. Espacio de trabajo de Slack: Campeón de la automatización
    3. Ejecutar acción como: aplicación Slack
  5. Establecer detalles del canal Slack
    1. Nombre del canal de Slack: {!forT_ChannelName}
    2. Tipo de canal: Público
    3. ID de espacio de trabajo de Slack para el canal: campeón de automatización
  6. 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. Ingresar   Caudal   etiqueta ; 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 : Cree un canal Slack usando Flow {!$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 comercial crea una nueva cuenta con una calificación alta, el guardado posterior activado por registro creará automáticamente un nuevo canal de Slack.

  1. Navegue a Cuenta una nueva cuenta Universal Health Services , como se muestra en la siguiente captura de pantalla:
  2. Ahora inicie sesión en Slack y consulte el canal de Slack .

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/05/30/create-a-slack-channel-using-flow-3/

Categories
Developers

Notificar al propietario de la oportunidad cuando se reciba una respuesta a la encuesta


Gran idea o pregunta duradera:

  • ¿Cómo notifica al propietario de la oportunidad cuando un cliente envía una respuesta a la encuesta (posventa)?

Objetivos:

Después de leer este blog, podrá:

  • Comprender los objetos SurveyQuestionScore, SurveyInvittaion
  • Use el flujo para notificar al propietario de la oportunidad cuando se reciba una respuesta a la encuesta posterior a la venta
  • Averigüe si una encuesta está asociada con una cuenta, un caso u otros objetos
  • Use la acción principal Enviar correo electrónico para notificar al propietario de la oportunidad
  • y mucho más

Olivia Rodrigo trabaja como administradora de sistemas en Gurukul on Cloud (GoC) . Ella está en proceso de implementar Survey en GoC. La semana pasada, recibió la siguiente solicitud del Gerente de Éxito del Cliente:

  • Cada vez que reciba una respuesta a la encuesta posterior a la venta, envíe un correo electrónico al propietario de la oportunidad.

Requisito previo

Lea primero este artículo y asegúrese de crearlo:

  1. Enviar encuesta de Salesforce sin código

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

De fábrica, Salesforce no proporciona una forma de notificar a los propietarios de registros relacionados cuando se recibe una respuesta a la encuesta. Tales notificaciones son beneficiosas para tomar medidas para asegurarse de que el cliente esté contento. Este artículo lo ayudará a aprender cómo puede usar el flujo desencadenado por registro para notificar al propietario de la oportunidad cuando se recibe una respuesta.

Puede personalizar aún más el flujo para notificar al propietario solo cuando el puntaje de la encuesta o el puntaje neto de promotor (NPS) esté por debajo del estándar definido por su empresa.

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.

Hagamos una pausa aquí y familiaricémonos con los objetos SurveySubject y SurveyInvitation en Salesforce, incluido el modelo de datos.

Nombre del objeto Detalles
EncuestaAsunto Representa una relación entre una encuesta y otro objeto, como una cuenta o un caso.
EncuestaInvitación Representa la invitación enviada a un participante para completar la encuesta .

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 7 pasos para resolver el requisito empresarial de Olivia utilizando el flujo activado por registro después de guardar . Debemos:

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Agregue un elemento de decisión para verificar el estado de respuesta de la encuesta
  3. Agregue un elemento de obtención de registros para encontrar SurveySubject
  4. Agregue un elemento de decisión para verificar si SurveySubject está asociado con una oportunidad u otro objeto
  5. Agregue un elemento de obtención para buscar detalles de la oportunidad
  6. Agregue una plantilla de texto para construir el cuerpo del correo electrónico
  7. Agregar acción de envío de correo electrónico: para notificar al propietario de la oportunidad

Paso 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 : Respuesta de la encuesta
    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: uso del elemento de decisión para verificar si el estado de respuesta de la encuesta es igual a completado

Ahora usaremos el elemento Decisión para verificar si la respuesta de la encuesta es igual a completada para asegurarnos de que el participante haya completado la encuesta.

  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.Status}
      2. Operador : Igual
      3. Valor : Completado
  5. Cuándo ejecutar el resultado : si Solo si el registro que desencadenó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición
  6. Haga clic en Listo .

Paso 3: agregar un elemento Obtener registro para encontrar el tema de la encuesta relacionado con la invitación a la encuesta

El siguiente paso es usar el elemento Obtener registros para encontrar el tema de la encuesta relacionado con la invitación a la encuesta.

  1. En Flow Designer, debajo del nodo Completado , 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 Asunto de la encuesta de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : SurveyInvitationId
      2. Operador : Igual
      3. Valor : {!$Record.InvitationId}
  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 4: uso del elemento de decisión para verificar si SurveySubject está asociado con una oportunidad u otro objeto

Ahora usaremos el elemento Decisión para verificar si el tema de la encuesta está asociado con una oportunidad o cualquier otro objeto.

  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_SurveySubject.SubjectEntityType}
      2. Operador: Igual
      3. Valor: Oportunidad
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 5: Adición de un elemento Obtener registro para encontrar los detalles del registro de oportunidad

El siguiente paso es usar el elemento Obtener registros para encontrar los detalles del registro de oportunidad.

  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 Oportunidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Identificación
      2. Operador : Igual
      3. Valor : {!Find_SurveySubject.SubjectId}
  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 6: agregue una plantilla de texto para construir el cuerpo del correo electrónico

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 enriquecido
    4. Cuerpo
      1. Se recibe una respuesta de encuesta para la oportunidad https://myautomationchampion-dev-ed.lightning.force.com/ {!Find_SurveySubject.SubjectId}.
  3. Haga clic en Listo .

Paso 7: agregue la acción Enviar correo electrónico para notificar al propietario de la oportunidad

Ahora usaremos la acción principal Enviar correo electrónico para enviar un correo electrónico al propietario de la oportunidad.

  1. En Flow Designer, 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. Cuerpo : {!textT_MessageBody}
    2. Asunto : Respuesta a la encuesta: {!Find_opportunity.Name}
    3. Direcciones de correo electrónico (separadas por comas) : {!Find_opportunity.Owner.Email}
    4. Cuerpo con formato de texto enriquecido : {!$GlobalConstant.True}
  5. 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 : 54
  5. Etiqueta de entrevista : respuesta de encuesta más baja: notificar al propietario de la oportunidad {!$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

De ahora en adelante, una vez que se reciba una respuesta a la encuesta, el flujo activado por registro se activará automáticamente y notificará al propietario de la oportunidad.

  1. Respuesta de la encuesta completada.
  2. Notificaciones por correo electrónico al propietario 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? 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/05/23/notify-opportunity-onwer-when-a-survey-response-is-received-2/

Categories
Developers Salesforce

Eliminación automática de un registro de grupos de Chatter

Última actualización el 19 de mayo de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo elimina automáticamente un registro de los grupos de Chatter?

Salesforce le permite agregar un registro a Grupos de Chatter , lo que significa que ahora puede colaborar y discutir los registros como un equipo en el grupo . Solo puede agregar registros de objetos de Cuenta , Contacto , Contrato , Campaña , Caso , Cliente potencial , Oportunidad y Personalizado a grupos de Chatter. Hace unos meses , había escrito los siguientes artículos:

  1. Agregar automáticamente un registro a un grupo de Chatter
  2. ¡Viva! Analizar una lista de selección múltiple ya no es un problema. ¡Uf!

Que discuten una manera a través de la cual puede agregar automáticamente   un registro para el Chatter Group . Este artículo va un paso más allá y explica cómo eliminar automáticamente el registro de Chatter Group .

Objetivos:

Después de leer este artículo, el lector podrá:

  • 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
  • Cree un flujo activado por registro para eliminar automáticamente el registro de los grupos de Chatter
  • y mucho más

Steven Greene trabaja como administrador de sistemas en Gurukul on Cloud (GoC). Ha recibido un nuevo requerimiento de la gerencia; una vez que una oportunidad se marca como cerrada, elimínela automáticamente de todos los grupos de chat.

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

Hay algunas soluciones posibles para el escenario comercial anterior, pero usaré el flujo activado por registro después de guardar para resolver el requisito comercial.

Hagamos una pausa aquí, familiarícese con el objeto CollaborationGroupRecord en Salesforce. Representa los registros asociados con grupos de Chatter.

Nombre del campo Detalles
ID de registro Representa el Id. del registro asociado con Chatter Group.
CollaborationGroupId El Id. del grupo de Chatter.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de 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 (nosotros hacemos):

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

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Agregue un elemento de decisión para verificar si la oportunidad está cerrada o no
  3. Agregue un elemento de registro para encontrar el registro de grupos de chat donde se agrega la oportunidad
  4. Agregue un elemento de decisión para verificar si la oportunidad se agrega a los grupos de chat o no (desde el paso 4)
  5. Agregue un elemento de registro de eliminación para eliminar la oportunidad de los grupos de chat.

Paso 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
    1. Objeto : Oportunidad
    2. Activar flujo de oportunidad 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: usar el elemento de decisión para verificar si la oportunidad está cerrada o no

Ahora usaremos el elemento Decisión para verificar isClosed para asegurarnos de que sea igual a True.
  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.IsClosed}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}

Paso 3: Adición de un elemento Obtener registro para buscar Id. de registro de grupos de Chatter donde se agrega la oportunidad

El siguiente paso es encontrar los Id. de registro de grupos de Chatter , en los que se comparte o agrega el registro de oportunidad. Para hacerlo, siga las instrucciones a continuación: agregue un elemento de obtención de registros para buscar

  1. En Flow Designer, debajo del nodo Cerrado , haga clic en el icono + y seleccione el elemento Obtener elemento.
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el registro de grupo   objeto de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de registro
      2. Operador : Igual
      3. Valor : {!$Registro.id}
  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 4: uso del elemento de decisión para verificar la variable de recopilación de registros (del paso 4)

Ahora usaremos el elemento Decisión para verificar la variable de recopilación de registros del paso 4 para encontrar si devuelve los registros del grupo de colaboración para el registro actual o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Arrastre y suelte el elemento Decisió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. En Detalles del resultado ,   ingrese la etiqueta , el nombre de la API se completará automáticamente.
  5. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Collaboration_Group_Records}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  6. Haga clic en Listo .

Paso 5: agregue un elemento Eliminar registros para eliminar el registro de oportunidad de los grupos de Chatter

El paso final es utilizar el elemento Eliminar registros para eliminar una oportunidad de los grupos de Chatter.

  1. En Flow Designer, 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. Establecer registro(s) para eliminar
    1. Registro o colección de registros : {!Get_Collaboration_Group_Records}
  5. Haga clic en Listo .

Al final, Steven'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 : Eliminación automática de registros de grupos 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 comercial actualiza la Etapa de oportunidad a Cerrada ganada, el registro posterior al guardado activado eliminará automáticamente el registro de los grupos de Chatter.

  1. A continuación se muestra el estado actual de Opportunity West Mountain Sign | Q1 2021 en estado de prospección antes de la actualización. Actualmente, la oportunidad se comparte con dos grupos de Chatter.
  2. Actualice la Oportunidad a Cerrada ganada .
  3. Una vez que haya terminado, haga clic en el botón Guardar .
  4. Ahora verifique la lista relacionada con el grupo en el objeto Oportunidad . Ya eliminó registros de los grupos de chat, 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? 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/05/19/auto-remove-a-record-from-chatter-groups/

Categories
Developers

Definir condiciones adicionales al actualizar registros

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

Gran idea o pregunta duradera:

¿Cómo puedo usar la automatización para actualizar las oportunidades abiertas relacionadas con una cuenta?

Objetivos:

  • Use el elemento de decisión para verificar el estado actual de la cuenta
  • Definir criterios para que registros específicos reciban actualizaciones específicas
  • Utilice el flujo activado por registro para actualizar otros registros relacionados con una cuenta

Steve Cartwright trabaja como administrador de sistemas en Universal Containers (UC). Ha recibido un requisito de la gerencia , que cada vez que un cliente se va a la quiebra , debe actualizar automáticamente las oportunidades abiertas relacionadas con Lost.

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

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 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 Steve mediante Record-Triggered Flow . Debemos:

  1. Cree un campo de casilla de verificación personalizado (fuera del negocio por cuenta)
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue un elemento de decisión para verificar el estado de la cuenta
    3. Agregue un elemento Actualizar registros para actualizar las oportunidades relacionadas

Paso 1: crear un campo personalizado: fuera del negocio

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, haga clic en Administrador de objetos .
  3. Navegar a Cuenta | Campos y relaciones y haga clic en el botón Nuevo .
  4. Haga clic en el tipo de datos Checkbox .
  5. Ingrese la etiqueta del campo, el nombre del campo se completará automáticamente.
  6. Haga clic en Desmarcado para el valor predeterminado .
  7. Agregue un campo en el diseño de página y otorgue acceso de campo a los perfiles deseados.
  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 : Cuenta
    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: uso del elemento de decisión para verificar si la cuenta fuera del negocio es igual a verdadero

Ahora usaremos el elemento Decisión para verificar si la cuenta fuera del negocio cambió a Verdadero.

  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.Out_of_Business__c}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
  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 .

La razón por la que seleccionaríamos la casilla de verificación para la pregunta es: Solo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición , es para permitir que el flujo desencadenado por el registro ejecute las acciones solo si el registro cumple con los requisitos. criterios ahora, pero los valores que tenía el registro inmediatamente antes de que se guardara no cumplían los criterios. Esto significa que estas acciones no se ejecutarán cuando se realicen cambios irrelevantes.

Paso 2.3: Agregar acción: actualizar registros

El siguiente paso es actualizar el estado de oportunidad abierta a cerrada perdida. Usaremos los registros de actualización   elemento.

  1. En Flow Designer, debajo del nodo , 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 Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Oportunidad
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de cuenta
      2. Operador : Igual
      3. Valor : {!$Record.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : EstáCerrado
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Falso}
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : nombre de etapa
      2. Valor : Cerrado Perdido
  8. Haga clic en Listo .


Al final, Steve'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 : Actualizar oportunidades abiertas a perdidas {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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

Práctica Independiente (Tú-haces):

Piense en su propio proceso de ventas. ¿Cuáles son las acciones adicionales que podríamos agregar a este proceso?

Prueba de concepto

A partir de ahora, si un usuario comercial actualiza una Cuenta fuera del negocio a Verdadero , el flujo activado por registros actualizará automáticamente las oportunidades abiertas relacionadas a Perdidas cerradas.

  1. Actualmente, hay dos oportunidades abiertas adjuntas a la cuenta Deer Valley Corp, como se muestra en la siguiente captura de pantalla:
  2. Ahora actualizamos el Fuera del negocio en Cuenta   a Marcado .
  3. Vuelva a la Cuenta y verifique el estado de la Oportunidad. El flujo activado por registros marcó automáticamente esas oportunidades abiertas como perdidas cerradas.

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/02/define-additional-conditions-when-updating-records-4/

Categories
Developers

Actualizar cotizaciones relacionadas a denegadas excepto la que se aceptó

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

Gran idea o pregunta duradera:

¿Cómo uso la automatización para actualizar otros registros relacionados de un objeto?

Objetivos:

Después de leer este blog, podrá:

  • Use Salesforce para actualizar automáticamente las cotizaciones asociadas con una oportunidad
  • Use el elemento de decisión para verificar el estado de la cotización
  • Definir criterios para que registros específicos reciban actualizaciones específicas
  • y mucho más

Tamara McCleary trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Usan Salesforce para administrar Oportunidades y Cotizaciones, y cada Oportunidad puede tener múltiples Cotizaciones. Cada vez que un cliente acepta una Cotización, todos los demás registros de Cotización relacionados con esa oportunidad deben tener el Estado actualizado a Denegado

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

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 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 comercial de Tamara mediante Record-Triggered Flow . Debemos:

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Agregue un elemento de decisión para verificar el estado de la cotización
  3. Agregue un elemento Actualizar registros para actualizar el estado de la cotización relacionada a denegado

Paso 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 : Cita
    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 4: uso del elemento de decisión para verificar si el estado de la cotización es igual a aceptado

Ahora usaremos el elemento Decisión para verificar el estado de la cotización y asegurarnos de que sea igual a Aceptado.

  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.Status}
      2. Operador : Igual
      3. Valor : Aceptado

La razón por la que seleccionaríamos la casilla de verificación para la pregunta es: Solo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición , es para permitir que el flujo desencadenado por el registro ejecute las acciones solo si el registro cumple con los requisitos. criterios ahora, pero los valores que tenía el registro inmediatamente antes de que se guardara no cumplían los criterios. Esto significa que estas acciones no se ejecutarán cuando se realicen cambios irrelevantes.

Paso 3: Agregar acción: actualizar registros

El siguiente paso es actualizar el estado de cotización relacionado a denegado. Usaremos los registros de actualización   elemento.

  1. En Flow Designer, debajo del nodo Aceptado , haga clic en el ícono + 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 Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Cita
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de oportunidad
      2. Operador : Igual
      3. Valor : {!$Record.OpportunityId}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : Estado
      2. Operador : no es igual
      3. Valor : Aceptado
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : Estado
      2. Valor : Denegado
  8. Haga clic en Listo .

Al final, Tamara'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 : actualizar citas relacionadas a denegadas {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

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

Nota : antes de activar su flujo, querrá asegurarse de haber asignado los datos en el formato correcto porque Salesforce Flow obedece las reglas de validación. Si se requieren algunos campos mediante el uso de reglas de validación, asegúrese de haber agregado esos campos. Por el contrario, si se requieren algunos campos en el diseño de la página, puede ignorar esos campos.

Prueba de concepto

A partir de ahora, cuando un usuario comercial actualice el Estado de la cotización a Aceptado, el flujo activado por registro actualizará automáticamente la Descripción de la cotización y el Estado de todas las demás cotizaciones a Denegado.

  1. Actualmente, hay tres cotizaciones adjuntas a Opportunity Deer Valley Corp, como se muestra en la siguiente captura de pantalla
  2. Ahora actualizamos el Estado en Cita 1   a Aceptado y haga clic en Marcar como estado actual
  3. Vuelva a la oportunidad para confirmar que se cambiaron otros registros.

Práctica Independiente (Tú-haces):

Cree un flujo de Salesforce que anule la selección de cualquier otro contacto principal cuando se seleccione uno nuevo.

Nota : Comience creando una casilla de verificación para 'Contacto principal' en el objeto Contacto.

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/02/update-related-quotes-to-denied-except-for-the-one-that-was-accepted-2/

Categories
Developers

Agregar productos automáticamente a la nueva oportunidad

Última actualización el 30 de marzo de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo agrega automáticamente productos a una nueva oportunidad?

Objetivos:

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

  • Usar el generador de flujo de Salesforce para asignar automáticamente el producto a una oportunidad
  • Use obtener elementos para evitar la codificación rígida de Id.
  • Funciona con el libro de precios y la entrada del libro de precios.
  • y mucho más

Martin Jones trabaja como administrador de sistemas en Gurukul on Cloud (GoC) . Ha creado un proceso utilizando Process Builder para asignar automáticamente Pricebook a una nueva oportunidad en función de los tipos de registro, como se menciona a continuación:

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

Funciona bien y los representantes de ventas están contentos. Sin embargo, Martin recibió otro requisito del vicepresidente de ventas : cuando se agrega el libro de precios de fabricación a una oportunidad recién creada , se le agregan automáticamente los siguientes productos :

  • iPhone 13 Plus – Cantidad (3) – Precio de venta ($0)

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

Una vez que los representantes de ventas crean una nueva oportunidad, el siguiente paso es agregarle el libro de precios y los productos. Los productos son bienes o servicios físicos que vendes a los clientes. Sus representantes de ventas pueden usar productos para generar cotizaciones de ventas, contratos o pedidos.
Price Book es un catálogo en el que se enumera el precio de venta regular de los productos. Los libros de precios se utilizan para vender productos a diferentes precios según la geografía , el volumen, los contratos gubernamentales, los clientes sin fines de lucro, los clientes estratégicos, etc. En Salesforce , un producto se puede asociar con varios Libros de precios y un Libro de precios puede tener varios productos.
¡Sí! ¡Tienes razón! Esto requiere un objeto Junction. ¡Y he aquí que tenemos uno conocido como Price Book Entry ! Price Book Entry es un objeto de unión entre Product y Price Book , como se muestra en la siguiente captura de pantalla:

Este blog es una continuación de mi blog anterior: asignación automática de Pricebook según el tipo de registro de oportunidad .

En el blog anterior, discutí cómo asignar automáticamente el libro de precios según el tipo de registro de Oportunidad . Recibí toneladas de solicitudes para escribir otro blog sobre cómo agregar algunos productos predeterminados a la nueva oportunidad.

¡Asi que aqui esta! El requisito es interesante. Entonces, crearemos una solución para el requisito existente, ¡usando Salesforce Flow!

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 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 Martin mediante Record-Triggered Flow . Debemos:

  1. Definir propiedades de flujo para el flujo desencadenado por registro
  2. Fórmula para determinar si la oportunidad se crea o actualiza
  3. Agregue un elemento de decisión para verificar el libro de precios asociado en la oportunidad
  4. Agregue un elemento Obtener registros para encontrar la entrada del libro de precios para iPhone 13 Plus
  5. Agregue un elemento de decisión para verificar si se encontró o no la entrada del libro de precios para iPhone 13 Plus
  6. Agregue un elemento de creación de registros para agregar un producto a la oportunidad

Paso 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 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: 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 3: uso del elemento de decisión para verificar la lista de precios asociada en la oportunidad

Ahora usaremos el elemento Decisión para verificar si el libro de precios de fabricación está asociado a una oportunidad.

  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.Verdadero}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Recurso: {!$Record.PriceBook2Id}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    4. Haga clic en Agregar condición
    5. Fila 3:
      1. Recurso: {!$Record.PriceBook2.Name}
      2. Operador: Igual
      3. Valor: Fabricación
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 4: Adición de un elemento Obtener registro para encontrar el ID de entrada del libro de precios del iPhone 13 Plus

El siguiente paso es usar el elemento Obtener registros para encontrar el ID de entrada del libro de precios del iPhone 13 Plus.

  1. En Flow Designer, debajo del nodo Fabricación , 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 Entrada de libro de precios de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Pricebook2Id
      2. Operador : Igual
      3. Valor : {!$Record.PriceBook2Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo: Nombre
      2. Operador: Igual
      3. Valor: iPhone 13 Plus
  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 5: usar el elemento de decisión para verificar si se encontró o no la entrada del libro de precios del iPhone 13 Plus  

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 4 para encontrar si devuelve el Id. de entrada del libro de precios 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: {!Find_Pricebook_Entry}
      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 6: agregue el elemento Crear registros para agregar el producto a la oportunidad

El paso final es agregar el producto iPhone 13 Plus a la oportunidad. Para ello utilizaremos el elemento Create Records .

  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 : Producto de oportunidad
    4. Establecer valores de campo para la licencia del paquete de usuario
    5. Fila 1:
      1. Campo : ID de oportunidad
      2. Valor : {!$Record.Id}
    6. Haga clic en Agregar campo
    7. Fila 2:
      1. Campo : Cantidad
      2. Valor : 3
    8. Haga clic en Agregar campo
    9. Fila 3:
      1. Campo : PricebookEntryId
      2. Valor : {!Find_Pricebook_Entry.Id}
    10. Haga clic en Agregar campo
    11. Fila 4:
      1. Campo : PrecioUnitario
      2. Valor : 0
  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 : Agregar producto automáticamente a la oportunidad {!$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 usuario comercial crea una Oportunidad con el tipo de registro Fabricación , Salesforce Flow agregará automáticamente el libro de precios y los productos.

  1. Navegar a la Oportunidad   y cree una nueva oportunidad para el tipo de registro Fabricación .
  2. Una vez hecho esto, haga clic en Guardar   botón. El flujo agregará automáticamente el libro de precios y los productos predeterminados, 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? 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/03/30/automatically-add-products-to-new-opportunity-2/