Ú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:
- Ohana
- Ayuda de Salesforce
- ayuda
- TrailheadDX
- MidwestDreamin
- SuresteDreamin
- IndiaDreamin
- TDX17
- SalesforceOhana
- JDF17
- 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:
- Cree un disparador de Apex en el objeto FeedItem: trabajaremos en esta opción en nuestra próxima serie de Apex.
- 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.
- Use la configuración personalizada para almacenar las palabras clave y luego use el flujo activado por registro para administrar su lógica.
- 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:
- Cree tipos de metadatos personalizados para almacenar las palabras clave
- Flujo de fuerza de ventas
- Definir propiedades de flujo para el flujo desencadenado por registro
- Fórmula para determinar si el registro se crea o actualiza
- Agregue un elemento de decisión para verificar si la publicación de chat se crea o edita
- Agregue un elemento de obtención de registros para encontrar las palabras clave del tipo de metadatos personalizados
- 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)
- Agregue un elemento de bucle para recuperar registros de la variable de colección de registros (del paso 2.4)
- Agregue un elemento de decisión para verificar si la publicación de chat contiene palabras clave o no
- Agregue un elemento de asignación para indicar el final del bucle
- Agregue un elemento de decisión para verificar la variable booleana EndLoop para encontrar si queremos crear un caso o no
- Agregue un elemento Crear registros para crear un caso
Paso 1: cree tipos de metadatos personalizados para almacenar palabras clave
- Primero, crearemos un tipo de metadatos personalizados para almacenar palabras clave .
- 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:
- Una vez que haya terminado, haga clic en el botón Guardar .
- 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:
- 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.
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos y luego haga clic en Nuevo flujo .
- Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
- Objeto: FeedItem
- Activar el flujo cuando: se crea y actualiza un registro
- Establecer criterios de entrada
- Requisitos de condición: Ninguno
- Optimice el flujo para la acción y los registros relacionados
- Haga clic en Listo .
Paso 2.2: Fórmula para determinar si el registro se crea o actualiza
- En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro se crea o actualiza.
- Ingrese la siguiente información:
- Tipo de recurso : Fórmula
- Nombre de API : forB_IsNew
- Tipo de datos : booleano
- Fórmula : EsNuevo()
- 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.
- En Flow Designer, debajo del nodo Ejecutar inmediatamente , haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso : {!forB_IsNew}
- Operador : Igual
- Valor : {!$ConstanteGlobal.Verdadero}
- Fila 1:
- Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
- 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 .
- En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Seleccione el objeto Chatter_Keyword__mdt de la lista desplegable.
- Seleccione Se cumplen todas las condiciones (Y) .
- Establecer condiciones de filtro
- Fila 1:
- Campo : Palabra clave__c
- Operador : no es igual
- Valor : {!$ConstanteGlobal.EmptyString}
- Fila 1:
- Cuántos registros almacenar:
- seleccione Todos los registros
- Cómo almacenar datos de registro:
- Elija la opción para Almacenar automáticamente todos los campos .
- 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 .
- En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!Get_Keywords}
- Operador: es nulo
- Valor: {!$ConstanteGlobal.Falso}
- Fila 1:
- Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
- 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 .
- En Flow Designer, debajo del nodo Sí , haga clic en el icono + y seleccione el elemento Bucle .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Para Variable de colección, seleccione {!Get_Keywords} .
- Para Especificar dirección para iterar sobre la colección, seleccione la opción Del primer elemento al último elemento.
- 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 .
- En Flow Designer, debajo del nodo Para cada , haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!$Record.Body}
- Operador: Contiene
- Valor: {!Loop_Over_Keywords.rakeshistomMVP__Keyword__c}
- Fila 1:
- Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
- Haga clic en Listo .
Paso 2.7.1: agregar un elemento de asignación para indicar el final del bucle
- Cree una variable varB_EndLoop de tipo booleano para indicar el final del ciclo.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Establecer valores de variables
- Fila 1:
- Campo: {! varB_EndLoop }
- Operador: Igual
- Valor: {!$ConstanteGlobal.True}
- Fila 1:
- 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 .
- En Flow Designer, debajo del nodo Después del último , haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!varB_EndLoop}
- Operador: Igual
- Valor: {!$ConstanteGlobal.True}
- Fila 1:
- Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
- 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 .
- En Flow Designer, debajo del nodo Continuar con la creación de casos , haga clic en el icono + y seleccione el elemento Crear registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Ingrese la siguiente información :
- Cuántos registros crear : uno
- Cómo establecer los campos de registro : use recursos separados y valores literales
- Objeto : Caso
- Establecer valores de campo para el caso
- Fila 1:
- Campo : Origen
- Valor : Charla
- Haga clic en Agregar campo
- Fila 2:
- Campo : Estado
- Valor : Nuevo
- Haga clic en Agregar campo
- Fila 3:
- Campo : Tipo
- Valor : Otro
- Haga clic en Agregar campo
- Fila 4:
- Campo : Descripción
- Valor : Verifique esta publicación {!$Record.Id}
- Haga clic en Listo .
Una vez que todo se vea bien, realice los siguientes pasos:
- Haga clic en Guardar .
- Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
- Haga clic en Mostrar avanzado .
- Versión de API para ejecutar el flujo : 55
- Etiqueta de entrevista : Crear un caso desde la publicación de Chatter {!$Flow.CurrentDateTime}
- 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/