Categorías
Enterprise Software

Comenzando con Salesforce CDRM: Guía de primeros pasos para optimizar tus procesos de gestión de datos

Introducción Salesforce CDRM (Customer Data Relationship Management) es una herramienta poderosa que permite a las empresas gestionar y organizar eficientemente sus datos de clientes. En un mundo cada vez más digital, donde la información es clave para el éxito de cualquier negocio, contar con una solución de gestión de datos robusta se ha vuelto fundamental. […]

Categorías
Developers

Eliminación definitiva de registros con Salesforce Flow

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

Gran idea o pregunta duradera:

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

Objetivos:

Después de leer este blog, podrá:

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

¿Qué es la eliminación completa?

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

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

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

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

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

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

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

En este artículo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El método EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al método EmptyRecycleBin desde Flow, por eso estamos usando la clase Apex Invocable.

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

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

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

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

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

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

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

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


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

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


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

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

Paso 2.1: Definir propiedades de flujo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Prueba de concepto

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

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Categorías
Developers

Limite el número de sesiones simultáneas en Salesforce

Última actualización el 10 de octubre de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo limitar la cantidad de sesiones simultáneas para un usuario? Objetivos: después de leer este blog, podrá: Comprender las sesiones concurrentes y cómo identificarlas usando Flow Limitar el número de sesiones concurrentes con

La publicación Limitar el número de sesiones simultáneas en Salesforce apareció primero en Automation Champion .

Categorías
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 Eliminar mensajes de Chatter mediante Salesforce Flow, en el que analicé una forma que permite a sus usuarios eliminar

La publicación Eliminar conversación completa de Chatter mediante Salesforce Flow apareció primero en Automation Champion .

Categorías
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 persistente: ¿Cómo se puede permitir que los usuarios eliminen mensajes individuales de Chatter? Objetivos: después de leer este artículo, el lector podrá: Usar la automatización para aumentar los permisos de los usuarios Crear un objeto personalizado para almacenar la identificación de

La publicación Eliminar mensajes de Chatter mediante Salesforce Flow apareció primero en Automation Champion .

Categorías
Developers

Eliminar duplicados de variables de recopilación de registros en un flujo

Última actualización el 7 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo se eliminan los duplicados de las variables de colección de registros o las variables de colección en flujo sin escribir código? Objetivos: después de leer este blog, podrá: Comprender los diferentes operadores de flujo en el elemento de asignación Comprender

La publicación Eliminar duplicados de las variables de recopilación de registros en un flujo apareció primero en Automation Champion .

Categorías
Developers Salesforce

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

Última actualización el 19 de mayo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se 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. Tú

La publicación Eliminar automáticamente un registro de los grupos de Chatter apareció primero en Automation Champion .

Categorías
Developers

Consulta de registros por lista de ID en el flujo

Última actualización el 8 de mayo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puede eliminar automáticamente las tareas abiertas relacionadas con la oportunidad y la(s) cotización(es) cuando una oportunidad se marca como cerrada perdida? Objetivos: después de leer esta publicación de blog, el lector podrá: Comprender @InvocableMethod e InvocableVariable Annotation

La publicación Query Records by List of Ids in Flow apareció primero en Automation Champion .

Categorías
Developers Salesforce

¡Elimine automáticamente la licencia del paquete administrado de un usuario desactivado!

Última actualización el 29 de marzo de 2022 por Rakesh GuptaSalesforce Flow es una forma fantástica de automatizar varios procesos comerciales. Le permite crear un flujo basado en ciertos criterios que establezca. El flujo de Salesforce puede hacer muchas cosas: crear un registro, actualizar registros, publicar en Chatter, enviar un correo electrónico, etc.

¡La licencia de paquete administrado posterior a la eliminación automática de un usuario desactivado! apareció por primera vez en Automation Champion .

Categorías
Developers

Eliminación automática de publicaciones de Chatter generadas por el sistema

Última actualización el 3 de marzo de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo se eliminan las publicaciones de Chatter generadas por el sistema? Objetivos: después de leer esta publicación de blog, el lector podrá: Asignar un campo personalizado de prospecto a un campo personalizado de cuenta Crear un flujo activado por registro para eliminar registros y mucho más

La publicación Eliminación automática de publicaciones de Chatter generadas por el sistema apareció primero en Automation Champion .

Categorías
Developers

Primeros pasos con Salesforce Flow: Parte 87 (Eliminación masiva de entrevistas de flujo en pausa y fallidas)

Última actualización el 28 de enero de 2022 por Rakesh Gupta Gran idea o pregunta duradera: en este artículo Acciones programadas, analicé cómo agregar una acción basada en el tiempo a un proceso. También discutí una forma de verificar las entrevistas en pausa y fallidas en el Generador de flujos y procesos, al

La publicación Primeros pasos con Salesforce Flow: Parte 87 (Eliminación masiva de entrevistas de flujo en pausa y fallidas) apareció primero en Automation Champion .

Categorías
Developers

Introducción a Salesforce Flow – Parte 81 (¿Alguna vez se preguntó qué es un flujo activado por registro por objeto – Por tipo?))

Esta es una continuación de mi último artículo Salesforce Flow Design Patterns: from Fundamentals to Mastery. En mi artículo anterior, hablé de varias prácticas recomendadas y consideraciones de diseño cuando se trata de crear un flujo eficiente. Este artículo va un paso más allá y explica cómo un usuario puede crear y

La publicación Getting Started with Salesforce Flow – Part 81 (¿Alguna vez se preguntó qué es un flujo activado por registro por objeto – por tipo?)) Apareció primero en Automation Champion .

Categorías
Developers

Introducción a Salesforce Flow – Parte 79 (Convenciones de nomenclatura de Salesforce Flow)

Última actualización el 9 de noviembre de 2021 por Rakesh Gupta Como programador declarativo, siempre desea crear flujos limpios donde los nombres deben ser apropiados para que a cualquier otro programador le resulte más fácil leer el flujo y comprenderlo. Ahora, esto puede parecerle insignificante, pero piense

La publicación Getting Started with Salesforce Flow – Part 79 (Convenciones de nomenclatura de Salesforce Flow) apareció primero en Automation Champion .

Categorías
Developers Salesforce

Introducción a Salesforce Flow – Parte 66 (Dejar de seguir automáticamente registros según criterios)

Gran idea o pregunta duradera: ¿Desea dejar de seguir automáticamente los registros cuando los registros cumplen con criterios específicos? Como sabe, los usuarios pueden seguir y dejar de seguir registros haciendo clic en el icono Seguir en la página de detalles del registro. Sin embargo, los usuarios pueden automatizar el proceso Seguir / Dejar de seguir, según algunos criterios, ya sea por

La publicación Getting Started with Salesforce Flow – Part 66 (Auto Unfollow Records Based on Criteria) apareció primero en Automation Champion .

Categorías
Developers Salesforce

Introducción a Salesforce Flow – Parte 37 (Eliminación automática de seguidores de una oportunidad cerrada)

Última actualización el 4 de enero de 2021 por Rakesh Gupta Para comprender cómo resolver un caso de uso empresarial similar utilizando Process Builder. Consulte este artículo Introducción a Process Builder – Parte 29 (Eliminación automática de seguidores de las preguntas con las mejores respuestas). Grande … Sigue leyendo

La publicación Getting Started with Salesforce Flow – Part 37 (Eliminar seguidores automáticamente de una oportunidad cerrada) apareció primero en Automation Champion .

Categorías
Developers Salesforce

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

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo permite que sus usuarios programen previamente las publicaciones de Chatter? Chatter es una excelente manera de impulsar la colaboración en su organización. Puede publicar el estado,… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 32 (Preschedule Chatter Posts) apareció primero en Automation Champion .

Categorías
Developers Salesforce

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

Última actualización el 30 de diciembre de 2020 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo utilizar el flujo y configurar el correo electrónico a cliente potencial en Salesforce? Salesforce Flow es una característica poderosa proporcionada por Salesforce para minimizar el código en su… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 40 (Email to Lead with the Help of Salesforce Flow) apareció primero en Automation Champion .

Categorías
Developers

Introducción a Salesforce Flow – Parte 62 (Asignar automáticamente o quitar conjunto de permisos a varios usuarios)

Última actualización el 27 de abril de 2021 por Rakesh Gupta Gran idea o pregunta duradera: los conjuntos de permisos son útiles para proporcionar un conjunto particular de funcionalidades a un usuario además de los permisos proporcionados por su perfil. Por ejemplo, puede… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 62 (Auto Assign or Remove Permission Set to Multiple Users) apareció primero en Automation Champion .

Categorías
Developers Salesforce

Preguntas de la entrevista sobre uso compartido y seguridad en Salesforce

P. ¿Qué es el grupo de conjunto de permisos? Grupos de conjuntos de permisos es una función que permite a los administradores combinar varios conjuntos de permisos en un solo grupo de conjuntos de permisos para la asignación de usuarios. Con el mecanismo de agrupación, admins … Leer más »

Categorías
Developers

Introducción a Salesforce Flow – Parte 56 (Combinar temas de Chatter con la ayuda de Salesforce Flow)

Última actualización el 2 de febrero de 2021 por Rakesh Gupta Gran idea o pregunta permanente: ¿Cómo se puede permitir a los usuarios fusionar temas de Chatter? Los temas para objetos nos permiten organizar los registros utilizando el tema de Chatter. Los temas ayudan a organizar los registros en un… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 56 (Fusionar temas de Chatter con la ayuda de Salesforce Flow) apareció primero en Automation Champion .

Categorías
Developers Salesforce

Preguntas de la entrevista sobre el cargador de datos y el asistente de importación en Salesforce

P. ¿Diferencia entre Bulk Api Vs Data Loader? Dataloader es bueno para insertar hasta 5 millones de registros. La API masiva le permite ejecutar las inserciones en el cargador de datos de forma asincrónica. Utilizando … Leer más »

Categorías
Developers Salesforce

Preguntas de la entrevista en profundidad basadas en escenarios sobre la integración de Salesforce

Generalmente, dominar los conceptos de integración resulta complicado para muchos desarrolladores de Salesforce. Este artículo cubrirá todas las preguntas de la entrevista sobre conceptos de integración de salesforce como Salesforce Connect, Streaming API, SOAP API, … Leer más »