Empiece a realizar un seguimiento de su progreso
Inicio de Trailhead
Inicio de Trailhead

Combinar el poder de Process Builder y Flow Builder

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Describir un proceso de negocio que puede automatizarse empleando un proceso y un flujo.
  • Definir qué es una variable de flujo.
  • Crear un flujo que itera en un grupo de registros.
  • Crear un proceso que inicia un flujo.

Cuando Process Builder no es suficiente

Process Builder no está diseñado para adaptarse a todos los casos de uso posibles, por lo que podría descubrir que puede automatizar partes de su proceso de negocio, pero no todas. Por ejemplo, Process Builder no puede:

  • Publicar en noticias en tiempo real de una comunidad.
  • Enviar un registro relacionado para su aprobación.
  • Eliminar registros.
  • Crear muchos registros y asociarlos entre sí.
  • Realizar lógicas complejas.

¡Pero hay buenas noticias! No tiene que volver a crear toda la automatización en otra herramienta. Configure la función más compleja en un flujo y luego agregue una acción de flujo a su proceso. Si un flujo no puede hacer lo que necesita, usted o su desarrollador pueden redactar Apex para ello. A continuación agregue una acción de Apex a su proceso.

Duplicar registros con secundarios

Se le pidió crear automáticamente oportunidades de renovación cuando una oportunidad es Cerrada ganada. La renovación debe ser un duplicado de la oportunidad original. Podemos duplicar registros en Process Builder, pero también debemos duplicar los productos y asociarlos con la oportunidad de renovación.

En Process Builder, no puede obtener el Id. del registro creado y utilizarlo en otra parte. Afortunadamente, puede hacer eso en un flujo. Solo tiene que crear un flujo que duplique la oportunidad y sus productos y crear un proceso que llame al flujo cuando una oportunidad es Cerrada ganada.

Más allá de los fundamentos

En la última unidad, platicamos acerca de flujos que guían los usuarios por un proceso de negocio con pantallas. Los llamamos flujos de pantalla. También puede crear flujo iniciados automáticamente, que se ejecutan en segundo plano como un proceso. La diferencia principal es que los flujos iniciados automáticamente no pueden tener pantallas, lo que requiere la interacción del usuario. Como no tienen pantallas, puede llamar los flujos iniciados automáticamente desde temas de apoyo como procesos y clases de Apex.

Crear un proceso

En vez de crear otro proceso, creamos en el que creamos en una unidad anterior.
Nota

Nota

No puede modificar un proceso activo. Si ya activó su proceso, haga clic en Duplicar para crear una nueva versión del proceso actual.

El proceso Oportunidades cerradas ganadas de una unidad anterior

En el proceso Oportunidades cerradas ganadas, agregue un nodo de criterios denominado Cerrada ganada con esta condición de filtro.

Campo Valor
Oportunidad > Etapa Cerrada ganada

No podemos configurar las acciones en Process Builder, así que guardemos y cambiemos a Flow Builder.

Crear un flujo

En Configuración, ingrese Flujos en el cuadro Búsqueda rápida, luego seleccione Flujos, haga clic en Nuevo flujo, seleccione Flujo iniciado automáticamente (Sin desencadenador), haga clic en Siguiente, y haga clic en Forma libre.

Estamos creando un flujo que:

  • Duplica una oportunidad.
  • Duplica productos de oportunidad.
  • Asocia los productos duplicados con la oportunidad duplicada.

Para ello, el flujo necesita algunos datos del proceso: la oportunidad original y sus productos de oportunidad.

La variables de flujo se presentan en cuatro tipos.

Tipo Puede almacenar... Ejemplo
Variable Un valor único “Hello World”, true, 6
Variable de colección Múltiples valores del mismo tipo de datos [1, 2, 3, 5, 8, 13]
Variable de registro Un conjunto de valores de campo para un registro único Puntuaje, Id. y Nombre para una cuenta
Variable de colección de registros Un conjunto de valores de campo para múltiples registros del mismo tipo de objeto Puntuaje, Id. y Nombre para múltiples cuentas

Para almacenar la oportunidad y sus productos de oportunidad, creamos una variable de registro y una variable de colección de registros. Más adelante, cuando agregamos el flujo como una acción en el proceso, pasamos datos a estas variables, por lo que deben permitir ingreso.

  1. Desde el Gestor en Caja de herramientas, haga clic en Nuevo recurso y establezca estos valores.
    Campo Valor
    Tipo de recurso Variable
    Nombre de API opportunity
    Tipo de datos Registro
    Objeto Oportunidad
    Disponible para ingreso Seleccionado
  2. Haga clic en Listo.
  3. Haga clic en Nuevo recurso y establezca estos valores.
    Campo Valor
    Tipo de recurso Variable
    Nombre de API oppProducts_Original
    Tipo de datos Registro
    Permitir varios valores (colección) Seleccionado
    Objeto Producto de oportunidad
    Disponible para ingreso Seleccionado
  4. Haga clic en Listo.

Duplicar la oportunidad

Cuando se llama al flujo por el proceso, la variable {!opportunity} contiene campos de la oportunidad original. Antes de duplicar esa oportunidad, actualicemos algunos de los campos. De ese modo, la oportunidad de renovación no se inicia como Cerrada ganada.
  1. Desde Elementos en la Caja de herramientas, arrastre un elemento Asignación al lienzo.
  2. En Etiqueta, asígnele el nombre Actualizar campos de oportunidad.
  3. Defina la etapa como Prospección.
    1. Para Variable, seleccione VARIABLES (ÚNICAS) DE REGISTROS | oportunidad | StageName.
    2. Para Operador, seleccione Es igual a.
    3. Para Valor, seleccione VALORES DE LISTA DE SELECCIÓN | Prospeccción.
  4. Defina Fecha de cierre como 90 días a partir de hoy.
    1. Haga clic en Agregar asignación.
    2. Para Variable, seleccione VARIABLES (ÚNICAS) DE REGISTROS | oportunidad | CloseDate.
    3. Para Operador, seleccione Es igual a.
    4. Para Valor, seleccione Nuevo recurso y establezca estos valores.
      Campo Valor
      Tipo de recurso Fórmula
      Nombre de API ninetyDays
      Tipo de datos Fecha
  5. En Fórmula, deje Insertar un recurso… en blanco e ingrese HOY() + 90 en el cuadro de texto.
  6. Haga clic en Listo y Listo.
  7. Para crear la oportunidad, arrastre un elemento Crear registros al lienzo y establezca estos valores.
    Campo Valor
    Etiqueta Duplicar una oportunidad
    Registro  VARIABLES (ÚNICAS) DE REGISTROS > opportunity

  8. Haga clic en Listo.
  9. Haga clic en el nodo de la parte inferior de Inicio y arrástrelo a Actualizar campos de oportunidad.
  10. Haga clic en el nodo en la parte inferior de Actualizar campos de oportunidad y arrástrelo a Duplicar oportunidad.

Cuando se crea la oportunidad, el campo de Id. en esa variable ({!opportunity.Id}) se rellena con el Id. del nuevo registro. Hacemos referencia ese valor más adelante para asociar los nuevos productos con la oportunidad de renovación.

Duplicar los productos de oportunidad

Ahora llega la parte divertida: la duplicación de los productos de oportunidad.

Cuando se llama al flujo por el proceso, la variable {!oppProducts_Original} incluye campos de los productos de oportunidad originales. Antes de duplicar esos productos, debemos asociarlos con la oportunidad de renovación en vez de la oportunidad original y establecer el precio total para cada producto como nulo. (Los productos de oportunidad no pueden tener un precio unitario y un precio total.)

La única forma de actualizar elementos en una colección es iterar en la colección con un bucle. Un bucle indica al flujo que procese cada elemento en la colección uno por uno, ejecutando la misma lógica en cada elemento hasta que se procese la colección completa.

Cada producto de oportunidad en nuestra colección de registros {!oppProducts_Original} debe asociarse con la oportunidad de renovación, y el precio total establecerse en nulo.

Cada vez que itera el bucle, la variable de bucle representa un elemento en la colección. Cuando se inicia un bucle, el primer elemento en la variable de colección se copia en la variable de bucle. Al término de una iteración, la variable de bucle se sustituye con los valores del siguiente elemento. Y así sucesivamente hasta que no se deje ningún elemento en la colección.

Se copia un elemento de colección en una variable de bucle. Los datos de variable de bucle se actualizan y luego se copian para crear un nuevo elemento en otra colección. La variable de bucle se actualiza a continuación por una copia del siguiente elemento en la colección original.
Sugerencia

Sugerencia

  • Para actualizar los valores de campo de un elemento en un bucle, actualice la variable de bucle. A continuación, antes de que finalice la iteración para ese elemento, agregue la variable de bucle como un elemento en otra variable de colección. Si no lo hace, los cambios se sobrescriben cuando se carga el siguiente elemento en la variable de bucle.
  • Evite agregar acciones, como la creación o actualización de registros, en un bucle. Es una forma segura de alcanzar los límites.

En el bucle, actualizamos Id. de oportunidad y Precio total de cada elemento y luego agregamos el elemento a una nueva variable de colección. Tras el bucle, utilizamos la nueva variable de colección para crear los productos de oportunidad.

  1. Arrastre un elemento Bucle en el lienzo y establezca estos valores.
    1. En Etiqueta, asígnele el nombre Iterar en productos.
    2. Para Variable de colección, seleccione VARIABLES DE RECOPILACIÓN DE REGISTROS | oppProducts_Original. Esta opción indica al bucle en qué colección iterar al asignar elementos a la variable de bucle.
    3. Haga clic en Listo.
  2. Conecte la oportunidad duplicada con el bucle.
  3. Establezca el Id. de oportunidad de la variable de bucle y el Id. de la nueva oportunidad y su precio total como nulo. Arrastre un elemento Asignación al lienzo.
    1. En Etiqueta, asígnele el nombre Actualizar producto de oportunidad.
    2. En Establecer valores de variables, configure estas asignaciones. Haga clic en Agregar asignación para agregar una segunda línea.
      Variable Operador Valor
      VARIABLES (ÚNICAS) DE REGISTROS > Elemento actual procedente del bucle Iterate_Over_Products > OpportunityId Es igual a VARIABLES (ÚNICAS) DE REGISTROS > opportunity > Id
      VARIABLES (ÚNICAS) DE REGISTROS > Elemento actual procedente del bucle Iterate_Over_Products > TotalPrice Es igual a Dejar en blanco

      Asignaciones de flujo que establecen los campos Precio total e Id. de oportunidad de la variable de bucle.
    3. Haga clic en Listo.
  4. Conecte el bucle a Actualizar producto de oportunidad. Aparece la ventana Seleccionar conector de bucle.
  5. Verifique que para cada elemento de la colección está seleccionada en el campo Conector de bucle y haga clic en Listo.
  6. Agregue la variable de bucle actualizada a una nueva variable de colección de registro.
    1. Arrastre otro elemento Asignación al lienzo.
    2. En Etiqueta, asígnele el nombre Agregar a nueva colección.
    3. Para Variable, seleccione Nuevo recurso y cree una nueva variable de recurso con estos valores.
      Campo Valor
      Tipo de recurso Variable
      Nombre de API oppProducts_new
      Tipo de datos Registro
      Objeto Producto de oportunidad
      Permitir varios valores (colección) Seleccionado
    4. Haga clic en Listo.
    5. Para Operador, seleccione agregar.
    6. Para Valor, seleccione VARIABLES (ÚNICAS) DE REGISTROS | Elemento actual procedente del bucle Iterate_Over_Products. Elimine el punto entre {!Iterate_Over_Products y la llave derecha } y luego haga clic fuera del campo Valor.
    7. Haga clic en Listo.
  7. Conecte Actualizar producto de oportunidad a Agregar a nueva colección. Luego conecte Agregar a nueva colección al bucle.
  8. Para duplicar los productos de oportunidad, arrastre un elemento Crear registros al lienzo y establezca estos valores.
    Campo Valor
    Etiqueta Duplicar productos
    Cuántos registros crear Seleccione Múltiples
    Variable de colección de registros VARIABLES DE COLECCIÓN DE REGISTROS > oppProducts_new
  9. Haga clic en Listo.
  10. Conecte el bucle a Duplicar productos.
El flujo finalizado

Finalizar el flujo

¡Ya casi ha terminado! Para finalizar el flujo, guárdelo y actívelo.
  1. Haga clic en Guardar.
  2. Guarde el flujo y denomínelo Oportunidad de renovación. Haga clic en Mostrar avanzado y asegúrese de que Tipo está establecido en Flujo iniciado automáticamente.
  3. Haga clic en Guardar.

Active el flujo de modo que pueda hacer referencia a él en Process Builder. Cierre Flow Builder.

Finalizar el proceso

Ahora que finalizó la creación del flujo, asegúrese de que el proceso inicia el flujo cuando una oportunidad es Cerrada ganada. ¿Recuerda esas variables que creamos al inicio del flujo? En el proceso, las utilizamos para pasar valores del registro de oportunidad y su secundario al flujo.
  1. Abra el proceso Oportunidades cerradas ganadas.
  2. En el grupo de criterios Cerrada ganada, agregue una acción inmediata donde el tipo es Flujos y el nombre es Crear renovación.
  3. Para Flujo, seleccione Oportunidad de renovación.
  4. Bajo Establecer variables de flujo, agregue dos filas, establezca estos valores y luego haga clic en Guardar.
    Variable Tipo Valor
    opportunity Referencia a un campo Seleccionar el registro de oportunidad que inició su proceso
    oppProducts_original Referencia a un campo Opportunity > OpportunityLineItems
    Cuando una oportunidad es Cerrada ganada, siempre se debe crear la renovación. Pero debemos asegurarnos de que los contratos de borrador y las tareas de seguimiento se crean si la oportunidad se considera también de valor elevado.
  5. Arrastre el nodo de criterios Cerrada ganada sobre Cerrada ganada y Alto valor.
  6. Para el grupo de criterios Cerrada ganada, haga clic en DETENER.
  7. Seleccione Evaluar los siguientes criterios y, a continuación, haga clic en Guardar. El proceso final
  8. Para comenzar a utilizar el proceso, actívelo.

Recursos