Skip to main content
Join the Agentforce Virtual Hackathon to build innovative solutions and compete for a $50k Grand Prize. Sign up now. Terms apply.

Estimación de tiempo

Combine variables y elementos de datos

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Utilizar las variables que generan algunos elementos.
  • Recuperar los datos de los registros de Salesforce para utilizarlos en sus flujos.
  • Utilizar las variables de registro en los elementos Create Records (Crear registros) y Update Records (Actualizar registros).
Nota

Nota

¿Su idioma de aprendizaje es español? Comience el reto en un Trailhead Playground en español y utilice las traducciones proporcionadas entre paréntesis para navegar. Copie y pegue solo los valores en inglés, ya que las validaciones del reto se basan en los datos en inglés. Si no aprueba el reto en su organización en español, le recomendamos que (1) cambie la configuración regional a Estados Unidos, (2) cambie el idioma a inglés, siga las instrucciones descritas aquí y, a continuación, (3) vuelva a hacer clic en el botón Check Challenge (Comprobar el reto).

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

Nota

Esta insignia es un paso más en el proceso de dominar Flow Builder. De principio a fin, la ruta Crear flujos con Flow Builder lo guía por todos los conceptos sobre Flow Builder. Siga esta secuencia recomendada de insignias para desarrollar capacidades sólidas de automatización de procesos y convertirse en experto de Flow Builder.

Variables generadas por elementos

Las variables son increíblemente útiles en los flujos, pero acabará harto de ellas si tiene que crear una variable para cada uno de los datos en un flujo. Por suerte, algunos elementos del flujo crean variables por sí mismos, por lo que no tendrá que hacerlo usted. Estas variables tienen etiquetas que coinciden con su elemento de origen, por lo que en todo momento sabrá de dónde vienen: [Record type] from [API name].

Por ejemplo, si tiene un elemento Get Records (Obtener registros) que recupera un registro de contacto y su nombre de API es Get_Latest_Contact, ese elemento crea una variable de registro con una etiqueta Contact from Get_Latest_Contact.

La lista de recursos de Flow Builder muestra una variable llamada "Contact from Get_Latest_Contact".

Nota

Es posible que haya observado que se puede ver y acceder a la variable a través del flujo, incluso si el elemento que lo crea se encuentra al final. Esto es solo un requisito técnico de funcionamiento de los flujos: todas las variables deben existir de principio a fin. Las variables no contienen nada hasta que su elemento se ejecute y recupere los datos.

Veamos el elemento Get Records (Obtener registros), cómo funciona y cómo crea esa variable por usted.

Recuperar valores de un único registro

Para cualquier cosa que quiera hacer en Flow Builder, necesita datos. Los flujos pueden acceder a sus datos de registro de Salesforce, pero tiene que decirle al flujo qué datos debe obtener. El flujo almacena de manera temporal los valores de un registro para que pueda utilizarlos más adelante.

Para recuperar datos de un registro de Salesforce, utilice el elemento Get Records (Obtener registros). Eche un vistazo a este vídeo sobre el funcionamiento del elemento Get Records (Obtener registros):

Al recuperar los valores de registro, puede obtener todos los valores de los campos de un único registro o de una colección completa de registros. El flujo almacena los valores recuperados en una única variable.

Veamos un ejemplo. Pyroclastic registra contactos clave en una oportunidad en el objeto relacionado Opportunity Contact Role (Función de contacto de oportunidad). El departamento de ventas quiere que los propietarios de las oportunidades se pongan en contacto con la persona que tiene la función Decision Maker (Responsable de la toma de decisiones) cada vez que se pierda una oportunidad. Flo le solicita que cree un flujo que genere una tarea cada vez que se pierda una oportunidad de mucho valor. El responsable de la toma de decisiones no está guardado en la oportunidad, sino en otro objeto diferente: Opportunity Contact Role (Función de contacto de oportunidad). Necesita que el flujo recupere el nombre del responsable de la toma de decisiones desde la función de contacto de la oportunidad antes de crear la tarea.

Describamos el flujo antes de empezar a construirlo.

Primero, el flujo se activa cada vez que se pierde una oportunidad con un importe superior a 100 000. Esto se hace con un flujo desencadenado por un registro que se activa cuando se actualiza una oportunidad y con un requisito de condición: StageName = Closed Lost (Cerrada perdida).

Segundo, el flujo recupera los registros de la función de contacto de la oportunidad cuya función es Decision Maker (responsable de la toma de decisiones). Esto se hace con un elemento Get Records (Obtener registros) para el objeto Opportunity Contact Role (Función de contacto de oportunidad). En el elemento Get Records (Obtener registros), establezca dos filtros en la función de contacto de oportunidad: (1) Opportunity (Oportunidad) = Id. de la oportunidad desencadenante; y (2) Role (Función) = Decision Maker (Responsable de la toma de decisiones).

Tercero, quiere almacenar solamente los responsables de la toma de decisiones más recientes. Esto se hace con tres ajustes en el elemento Get Records (Obtener registros): (1) How many records to store (Registros para almacenar): Only the first record (Solo el primer registro); (2) Sort by (Ordenar por): CreatedDate; y (3) Sort Order (Orden de clasificación): Descending (Descendente).

Por último, el flujo crea una tarea que le recuerda al propietario de la oportunidad que haga un seguimiento con el responsable de la toma de decisiones. Esto se hace con un elemento Create Records (Crear registros) en el objeto Task (Tarea). Debe establecer los valores de campo para la tarea utilizando el Id. del propietario de la oportunidad, el Id. de la oportunidad y el Id. de contacto de la función de contacto de la oportunidad.

¡Ya está preparado para empezar a construir el flujo!

  1. Cree un flujo desencadenado por un registro:
    • Object (Objeto): Opportunity (Oportunidad)
    • Trigger the Flow When (Active el flujo cuando): Se actualiza un registro
    • Condition Requirements (Requisitos de condición): All Conditions Are Met (Se cumplen todas las condiciones) (AND)
    • Condition (Condición):
      • Field (Campo): StageName
      • Operator (Operador): Es igual a
      • Value (Valor): Closed Lost (Cerrada/perdida)
    • Haga clic en +Add Condition (Añadir condición):
      • Field (Campo): Amount (Importe)
      • Operator (Operador): Greater Than or Equal (Mayor o igual que) 
      • Value (Valor): 100000 (100,00)
    • When to Run the Flow for Updated Records (Cuándo ejecutar el flujo para registros actualizados): Only when a record is updated to meet the condition requirements (Solo cuando un registro se actualiza para cumplir los requisitos de condición)
    • Optimize the Flow for (Optimizar el flujo para): Actions and Related Records (Acciones y registros relacionados)
  2. En el lienzo del flujo, en la ruta que sigue al elemento Start (Iniciar), haga clic en Agregar elemento. Seleccione Get Records (Obtener registros).
  3. En Label (Etiqueta), introduzca Get Decision Maker (Obtener responsable de la toma de decisiones).
    Recuerde que este nombre se utiliza para etiquetar la variable generada, por lo que es una buena idea utilizar un nombre descriptivo.
  4. En Object (Objeto), seleccione Opportunity Contact Role (Función de contacto de oportunidad).
  5. En Condition Requirements (Requisitos de condición), seleccione All Conditions Are Met (AND) (Se cumplen todas las condiciones [Y]).
    El panel New Get Records (Nuevo elemento Obtener registros) correspondiente a los pasos 3-5
  6. En la sección Filter Records (Filtrar registros), establezca las condiciones que indiquen al elemento qué registros recuperar.
    • Primera condición:
      • Field (Campo): OpportunityId (Id. de la oportunidad)
      • Operator (Operador): Es igual a
      • Value (Valor): $Record> Id
    • Segunda condición:
      • Field (Campo): Función
      • Operator (Operador): Es igual a
      • Value (Valor): Decision Maker (Responsable de la toma de decisiones)
Nota

Filtrar registros en un elemento de flujo le permite garantizar que solo está obteniendo los registros que desea. Es parecido a crear múltiples condiciones y definir una lógica personalizada en vistas de listainformes.

El panel New Get Records (Nuevo elemento Obtener registros) correspondiente al paso 6.

Nota

Si el objeto que está consultando tiene muchos registros, evite recuperar todos sus registros si es posible. Es posible que termine editando registros cerrados que no se deberían modificar, y corre el riesgo de superar los límites de ejecución, lo que hará que el flujo falle.

  1. En Sort Order (Orden de clasificación), seleccione Descending (Descendente).
  2. En Sort By (Ordenar por), seleccione CreatedDate (Fecha de creación).
  3. En How many records to store (Registros para almacenar), seleccione Only the first record (Solo el primer registro).
    Si selecciona Only the first record (Solo el primer registro), el elemento almacena solamente un registro en la variable de salida.
    Si selecciona All records (Todos los registros), se devuelven todos los registros que cumplen con las condiciones del filtro.
  4. En How to Store Record Data (Cómo almacenar los datos del registro), seleccione Automatically store all fields (Almacenar automáticamente todos los campos).
    Esta opción es la predeterminada, y por una buena razón. Con esta opción habilitada, el elemento automáticamente crea una variable de registro por usted y almacena los datos en ella. No se preocupe: aunque el registro completo se almacene en una única variable, usted podrá recuperar los valores individuales de los campos cuando lo necesite.
Nota

Automatically store all fields (Almacenar automáticamente todos los campos) suele ser la mejor opción, porque reduce su trabajo y simplifica los datos en una sola variable. Incluso si solo necesita recuperar un único valor de un registro, es poco probable que exceda ningún límite del flujo al almacenar el registro completo. Por el contrario, si el objeto tiene unos pocos cientos de campos personalizados, el aumento de la carga puede afectar al rendimiento. En ese caso, seleccione Choose fields and let Salesforce do the rest (Elegir campos y dejar que Salesforce haga el resto) para obtener solamente los campos que necesita.

El panel New Get Records (Nuevo elemento Obtener registros) correspondiente a los pasos 7-10.

  1. Guarde el flujo. En Flow Label (Etiqueta de flujo), introduzca Create Follow-Up with Decision Maker (Crear seguimiento con el responsable de la toma de decisiones).

Combinación de How Many Records to Store (Registros para almacenar) y ajustes del orden

En el elemento Get Decision Maker (Obtener responsable de la toma de decisiones), quería encontrar un responsable de la toma de decisiones, por lo que optó por almacenar solamente el primer registro. Si varios registros coinciden con las condiciones del filtro, ¿cómo sabe cuál se almacenará? Puede utilizar los ajustes Sort Order (Orden de clasificación) y Sort By (Ordenar por) para establecer qué registros van primero. Los clasificó por orden descendente según su fecha de creación para que el flujo devolviese la función Decision Maker (Responsable de la toma de decisiones) creada más recientemente.

Ahora su flujo puede obtener la información que necesita para crear la tarea de recordatorio. A continuación, añada un elemento Create Records (Crear registros) para crear esa tarea.

Utilizar los valores recuperados

Una vez ejecutado el elemento Get Records (Obtener registros), su variable contiene todos los datos que necesita. Ahora los elementos de su flujo pueden obtener esos datos para cualquier cosa que necesiten.

Volvamos a nuestro ejemplo. El flujo recupera los datos para la función de contacto Decision Maker (Responsable de la toma de decisiones), pero todavía necesita crear la tarea. Creemos un elemento Create Records (Crear registros). Utilice la variable creada por el elemento Get Records (Obtener registros) (Opportunity Contact Role from Get Decision Maker [Función de contacto de oportunidad desde Obtener responsable de la toma de decisiones]) para establecer el contacto de la tarea (Id. de nombre).

  1. En el flujo Create Follow-Up with Decision Maker (Crear seguimiento con el responsable de la toma de decisiones), añada un elemento Create Records (Crear registros) después del elemento Get Decision Maker (Obtener responsable de la toma de decisiones):
    • Label (Etiqueta): Create Task (Crear tarea)
    • How to set record field values (Cómo configurar valores de campo de registro): Manually (De forma manual).
    • Object (Objeto): Tarea
  2. Define the field values for the new task record (Definir los valores de campo para un nuevo registro de tarea).
    • Field (Campo): Assigned To ID (Asignado al Id.), Value (Valor): Triggering Opportunity (Oportunidad desencadenante)> Owner ID (Id. del propietario) (Deslícese hacia abajo y seleccione el campo Owner ID [Id. del propietario] que no contenga > al final de la línea).
    • Field (Campo): Priority (Prioridad), Value (Valor): Normal (Normal)
    • Field (Campo): Status (Estado), Value (Valor): No iniciada
    • Field (Campo): Subject (Asunto), Value (Valor): Closed Lost Follow-Up (Seguimiento de cerrada perdida)
    • Field (Campo): Related To ID (Id. de relacionado con), Value (Valor): Opportunity ID (Id. de oportunidad)
    • Field (Campo): Name ID (Id. de nombre), Value (Valor): Opportunity Contact Role from Get Decision Maker (Función de contacto de oportunidad desde Obtener responsable de la toma de decisiones) > Contact ID (Id. de contacto) (Deslícese hacia abajo y seleccione el campo Contact ID [Id. de contacto] que no contenga > al final de la línea).
  3. Guarde el flujo.

Una vez activado el flujo, cuando una oportunidad se establece como Closed Lost (Cerrada perdida), el flujo crea una tarea de seguimiento en la oportunidad y en el contacto más reciente con la función Decision Maker (Responsable de la toma de decisiones).

En la siguiente unidad, conocerá otros elementos que se comunican con sus usuarios.

Recursos

Reto práctico

+500 puntos

Prepararse

Completará esta/este unidad en su propia organización de prácticas. Haga clic en Iniciar para empezar a trabajar o haga clic en el nombre de su organización para seleccionar otro diferente.

Su reto

Mark New Leads If There’s Already an Account With That Name
At Pyroclastic, Inc., leads for existing customers sometimes get into Salesforce. The sales director wants them marked so they can be checked and processed.

Create a flow that checks new leads to see if there’s already an account whose Name matches the lead’s Company field. If there’s a match, add that account to the lead’s Possible Matching Account field. In case there are multiple matches, make sure you mark each lead with its most recent account.

Prework: Create a custom field:
  • Object: Lead
  • Data Type: Lookup Relationship
  • Related To: Account
  • Field Label: Possible Matching Account
  • Field Name: Possible_Matching_Account
  • Leave default values for other settings, field-level security, and Lead page layouts
  • Don’t add the Leads related list to any Account page layout
  • Create a Record-Triggered flow:
    • Object: Lead
    • Trigger the Flow When: A record is created
    • Optimize the Flow for: Actions and Related Records
    • Keep default values for all other settings
  • Add a Get Records element:
    • Label: Look for Matching Account
    • API Name: Look_for_Matching_Account
    • Object: Account
    • Filter Account Records:
      • Field: Name
      • Operator: Equals
      • Value: $Record > Company
    • Sort Order: Descending
    • Sort By: CreatedDate
    • Keep default values for all other settings
  • After the Look for Matching Account element, add an Update Records element:
    • Label: Update Matching Account
    • API Name: Update_Matching_Account
    • How to Find Records to Update and Set Their Values: Use the lead record that triggered the flow
    • Condition Requirements to Update Record: None—Always Update Record
    • Field Values:
      • Field: Possible_Matching_Account__c
      • Value: Account from Look_for_Matching_Account > Id
  • Save the flow.
    • Label: Check New Lead for Matching Account
    • API Name: Check_New_Lead_for_Matching_Account
Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios