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

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

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

La publicación Buscar el siguiente día hábil a partir de una fecha específica apareció por primera vez 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

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

Cree un canal Slack usando Flow

Última actualización el 30 de mayo de 2022 por Rakesh Gupta Gran idea o pregunta persistente: ¿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, usted

La publicación Create A Slack Channel usando Flow 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

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

Última actualización el 6 de abril de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se publica automáticamente un mensaje en el mensaje del grupo de Chatter cuando un usuario crea un evento? En Salesforce, Chatter Group representa el grupo de personas. Es una excelente manera de impulsar la colaboración en su organización.

La publicación Publicar automáticamente un mensaje en Chatter cuando se crea un evento apareció primero en Automation Champion .

Seguir leyendo

Fórmula de flujo para estandarizar el nombre de oportunidad

Última actualización el 16 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo estandariza el nombre de la oportunidad para seguir la convención de nomenclatura definida por el negocio? Objetivos: después de leer este blog, podrá: Comprender cuándo usar el flujo antes de guardar Usar la fórmula para concatenar campos en el

La fórmula de flujo posterior para estandarizar el nombre de la oportunidad apareció primero en Automation Champion .

Seguir leyendo

Cómo reparar el error de operación DML MIXTO

Última actualización el 18 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo resuelve MIXED_DML_OPERATION: la operación DML en el objeto de configuración no está permitida después de haber actualizado un error de objeto que no es de configuración (o viceversa)? El flujo activado por registros es una forma de automatizar los procesos comerciales. El flujo activado por registro es un

La publicación Cómo corregir un error de operación DML MIXTO apareció primero en Automation Champion .

Seguir leyendo

Cómo reparar el error FIELD_INTEGRITY_EXCEPTION

Última actualización el 18 de abril de 2022 por Rakesh Gupta Gran idea o pregunta duradera: ¿Cómo resuelve el error FIELD_INTEGRITY_EXCEPTION? El flujo activado por registros es una forma de automatizar los procesos comerciales. Record-Triggered Flow es una poderosa herramienta para que los administradores y desarrolladores de sistemas implementen procesos comerciales sin escribir código. Sin embargo, con gran poder viene

La publicación Cómo corregir el error FIELD_INTEGRITY_EXCEPTION apareció primero en Automation Champion .

Seguir leyendo

Agregar automáticamente un invitado a un evento

Última actualización el 16 de abril de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se comparten eventos automáticamente con un invitado cuando las actividades compartidas están habilitadas? Esta es una continuación de mi último artículo Compartir eventos automáticamente desde un calendario compartido. En mi artículo anterior, había discutido un uso

La publicación Agregar automáticamente un invitado a un evento apareció por primera vez en Automation Champion .

Seguir leyendo

Agregar usuario de socio automáticamente al grupo público

Última actualización el 11 de marzo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se agregan automáticamente usuarios asociados a un grupo público? Esta es una continuación de mi último artículo Primeros pasos con Process Builder – Parte 56 (Creación automática de un grupo público para una cuenta nueva). En mi artículo anterior,

La publicación Agregar automáticamente un usuario de socio a un grupo público apareció por primera vez en Automation Champion .

Seguir leyendo

Notificación de correo electrónico personalizada para tareas completadas

Última actualización el 10 de marzo de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se envían notificaciones por correo electrónico personalizadas para las tareas completadas al cedente? Objetivos: después de leer esta publicación de blog, el lector podrá: Crear un flujo activado por registro para enviar notificaciones de correo electrónico personalizadas para el

La publicación Notificación de correo electrónico personalizada para tareas completadas apareció primero en Automation Champion .

Seguir leyendo

Asigne el origen del cliente potencial al origen de la cuenta durante la conversión del cliente potencial

Última actualización el 24 de febrero de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo puede asignar el origen del cliente potencial al origen de la cuenta durante la conversión del cliente potencial? Un cliente potencial en un contexto de marketing es un contacto de ventas potencial, una persona u organización que expresa interés en sus productos.

La publicación Asignar origen de cliente potencial a origen de cuenta durante la conversión de cliente potencial apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow: parte 89 (Creación y activación automáticas de un contrato)

Última actualización el 7 de febrero de 2022 por Rakesh GuptaGran idea o pregunta duradera: ¿Cómo se crea y activa un contrato mediante Salesforce Flow? Objetivos: después de leer esta publicación de blog, el lector podrá: Usar el flujo desencadenado por registro después de guardar para crear un borrador de contrato Usar un elemento de decisión para verificar

La publicación Primeros pasos con Salesforce Flow: Parte 89 (Crear y activar automáticamente un contrato) apareció primero en Automation Champion .

Seguir leyendo

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

Última actualización el 25 de enero de 2022 por Rakesh Gupta Quizás esté pensando, ¿por qué estoy tan entusiasmado con el lanzamiento reciente de Salesforce? Bueno, ¡déjame contarte las razones! Sin embargo, una de las razones que más destaca son las mejoras relacionadas con Process Builder: ¡oh, sí! lo tienes

La publicación Primeros pasos con Salesforce Flow: parte 86 (¡Mejore la productividad con notificaciones push en el escritorio o el móvil!) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 78 (Reenvío automático de registros a una conexión)

Última actualización el 3 de noviembre de 2021 por Rakesh Gupta Para comprender cómo resolver el mismo caso de uso comercial utilizando Process Builder. Consulte este artículo Introducción a Process Builder – Parte 10 (Reenvío automático de registros a una conexión). Gran idea o pregunta duradera: Salesforce-to-Salesforce es una función compatible de forma nativa

La publicación Getting Started with Salesforce Flow – Part 78 (Auto Forward Records to a Connection) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 71 (¡Ahora, generar un PDF de cotización es muy sencillo! ¡Aprenda cómo!)

Genere PDF de cotización automáticamente utilizando Salesforce Salesforce.

La publicación Getting Started with Salesforce Flow – Part 71 (¡Ahora, generar un PDF de cotización es muy fácil! ¡Aprenda cómo!) Apareció primero en Automation Champion .

Seguir leyendo

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 .

Seguir leyendo

Introducción a Salesforce Flow – Parte 65 (Registro de seguimiento automático basado en criterios)

Gran idea o pregunta duradera: ¿Cómo pueden los usuarios seguir automáticamente los registros cuando los registros cumplen con criterios específicos? Dentro de Salesforce, los usuarios pueden seguir y dejar de seguir registros haciendo clic en el icono Seguir en la página de detalles del registro. Si quieres… Sigue leyendo

La publicación Getting Started with Salesforce Flow – Part 65 (Registro de seguimiento automático basado en criterios) apareció primero en Automation Champion .

Seguir leyendo

Introducción a Salesforce Flow – Parte 64 (Mejora en Flow – Aprenda a usar NO CONTIENE Operador – ¡y presumir!)

Última actualización el 25 de mayo de 2021 por Rakesh Gupta Gran idea o pregunta duradera: ¿Qué sucede si su caso de uso requiere que use el operador NO CONTIENE en Flow? Con un suspiro, es posible que desee recordarme que, en Salesforce Flow, uno… Continuar leyendo

La publicación Getting Started with Salesforce Flow – Part 64 (Upskill on Flow – Learn How to Use DOESN'T CONTAINS Operator – and Show-Off!) Apareció primero en Automation Champion .

Seguir leyendo