Eliminación definitiva de registros con Salesforce Flow

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.

Seguir leyendo

Agregar seguidores de Chatter al registro

Cómo agregar automáticamente seguidores de Chatter al registro

La publicación Agregar seguidores de Chatter al registro apareció primero en Automation Champion .

Seguir leyendo

Archivar un canal de Slack con Flow

Última actualización el 5 de diciembre de 2022 por Rakesh GuptaGran 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, puedes

La publicación Archive A Slack Channel usando Flow apareció primero en Automation Champion .

Seguir leyendo

Implemente la gamificación en su Salesforce

Última actualización el 22 de noviembre de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puedo usar la gamificación en Salesforce para impulsar las ventas? ¿Cuáles son las formas de automatizar la gamificación? Objetivos: después de leer esta publicación de blog, el lector podrá: Crear un flujo que publicará automáticamente un

La publicación Implemente la gamificación en su fuerza de ventas apareció primero en Automation Champion .

Seguir leyendo

Simplemente diga NO a la identificación codificada

Última actualización el 19 de octubre de 2022 por Rakesh GuptaGran 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

La publicación Just Say NO to Hard-Coded ID apareció primero en Automation Champion .

Seguir leyendo

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 .

Seguir leyendo

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 buena práctica, sino que, a la larga,

La publicación Establezca su productividad con esteroides mediante la creación de subflujos apareció primero en Automation Champion .

Seguir leyendo

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

Última actualización el 25 de junio de 2022 por Rakesh GuptaGran 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

La publicación Agregar automáticamente un nuevo usuario a un grupo público o cola apareció primero en Automation Champion .

Seguir leyendo

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 .

Seguir leyendo

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 .

Seguir leyendo

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

Última actualización el 7 de junio de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puede agregar automáticamente miembros del equipo de oportunidad a un seguidor en una oportunidad? Objetivos: después de leer este blog, podrá: Trabajar con el elemento obtener registros para encontrar el registro Usar el elemento de decisión para verificar

La publicación Agregar automáticamente miembro del equipo de oportunidades al seguidor de oportunidades apareció primero en Automation Champion .

Seguir leyendo

Agregar miembro automáticamente al equipo de cuenta predeterminado del nuevo usuario

Última actualización el 2 de junio de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo puede agregar automáticamente un usuario específico al equipo de cuenta predeterminado del nuevo usuario? ¿Qué tan bueno sería si Salesforce agregara automáticamente un usuario (usuario especificado) al Equipo de cuenta predeterminado para cada nuevo usuario?

La publicación Agregar miembro automáticamente al equipo de cuenta predeterminado del nuevo usuario apareció primero en Automation Champion .

Seguir leyendo

¿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

La publicación ¿Ha necesitado alguna vez seleccionar varios valores de listas de selección en el flujo? ¿Qué tal a través de una sola condición? apareció por primera vez en Automation Champion .

Seguir leyendo

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 debe uno.

La publicación Creación automática de un caso a partir de la palabra clave utilizada en Chatter apareció primero en Automation Champion .

Seguir leyendo

Envíe un mensaje directo de Slack usando Flow

Gran idea o pregunta duradera: ¿Cómo se envía un mensaje directo al propietario de la cuenta en Slack a través de Salesforce Flow? Slack es una aplicación de mensajería para empresas que conecta a las personas con la información que necesitan. Sus espacios de trabajo le permiten organizar las comunicaciones por canales para discusiones grupales y le permiten

La publicación Enviar un mensaje directo de Slack mediante Flow apareció por primera vez en Automation Champion .

Seguir leyendo

Publicar un mensaje en un canal de Slack mediante Flow

Última actualización el 24 de mayo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se publica un mensaje en un canal de Slack a través de Salesforce Flow? Slack es una aplicación de mensajería para empresas que conecta a las personas con la información que necesitan. Sus espacios de trabajo te permiten organizar las comunicaciones por canales

La publicación Publicar un mensaje en un canal de Slack usando Flow apareció primero en Automation Champion .

Seguir leyendo

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. Usar el flujo para notificar al propietario de la oportunidad cuando se reciba una respuesta a la encuesta posterior a la venta. Averiguar si un

La publicación Notificar al propietario de la oportunidad cuando se recibe una respuesta a la encuesta apareció primero en Automation Champion .

Seguir leyendo

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 .

Seguir leyendo

Definir condiciones adicionales al actualizar registros

Última actualización el 2 de abril de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puedo usar la automatización para actualizar las oportunidades abiertas relacionadas con una cuenta? Objetivos: Usar el elemento de decisión para verificar el estado actual de la cuenta. Definir criterios para que registros específicos reciban actualizaciones específicas. Usar flujo desencadenado por registros para actualizar.

La publicación Definir condiciones adicionales al actualizar registros apareció primero en Automation Champion .

Seguir leyendo

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á: Usar Salesforce para actualizar automáticamente las cotizaciones asociadas con una Oportunidad Usar el elemento de decisión para

La publicación Actualizar cotizaciones relacionadas a denegadas excepto la que fue aceptada apareció primero en Automation Champion .

Seguir leyendo

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

Última actualización el 3 de abril de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puede usar Flow para asignar automáticamente el grupo de conjunto de permisos a nuevos usuarios? ¿Han pasado solo cinco años desde que escribí 'autoasignar conjunto de permisos a nuevos usuarios'? El artículo fue escrito usando Flow Trigger – ahora,

¿El perfil de la publicación? ¡Asi que ayer! – Asignar automáticamente un grupo de conjuntos de permisos a un usuario apareció por primera vez en Automation Champion .

Seguir leyendo

Crear casos automáticamente a partir de preguntas de Chatter no resueltas

Última actualización el 5 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: a medida que crece su comunidad, las organizaciones deben asegurarse de que los clientes obtengan respuestas rápidas a sus preguntas. Pregunta a caso permite a los moderadores derivar preguntas de Chatter no resueltas a casos desde la página de Chatter. Puede automatizar este proceso de escalamiento

La publicación Crear casos automáticamente a partir de preguntas de Chatter no resueltas apareció primero en Automation Champion .

Seguir leyendo

¡Descubra cómo completar automáticamente el campo de aprobador delegado en un nuevo registro de usuario!

Cómo completar automáticamente el campo de aprobador delegado en un nuevo registro de usuario

La publicación ¡Descubra cómo completar automáticamente el campo de aprobador delegado en un nuevo registro de usuario! apareció por primera vez en Automation Champion .

Seguir leyendo

Notificación por correo electrónico sobre la asignación de temas

Última actualización el 5 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo puede notificar al propietario del tema sobre la asignación del tema? Objetivos: después de leer este blog, podrá: Crear un flujo activado por registro para enviar notificaciones de correo electrónico personalizadas para la asignación de tema Crear un correo electrónico

La notificación por correo electrónico posterior a la asignación de temas apareció primero en Automation Champion .

Seguir leyendo