Flow / Admins

Salesforce Flow Elements: Interaction, Logic, and Data

By Mariel Domingo

Updated June 02, 2026

Similar to how AI is only as smart as your prompts are, a Flow is only as strong as the pieces it’s made of.

Flow elements are like Lego bricks. Each has its own shape and purpose, and when you snap them together in the right way, you end up with something impressive. Skip one, or use the wrong piece, and your structure doesn’t hold. To give you a clearer grasp of which piece to use (and when!), we’ll walk through each element briefly.

Salesforce Flow Elements

The three types of elements are: Interaction, Logic, and Data elements. 

Interaction 

I like to call these elements “performative”, and no, not in the internet-slang way you might’ve seen floating around recently, but because these elements actually do something. They’re the pieces that, for example, show information to a user, ask for input, or take an action on your behalf. Think of them as the hands-on parts of a Flow, and their icons on the builder are blue.

  • Screen: Picture a pop-up that asks a service agent to confirm customer details or capture case specifics before moving forward. The pop-up is your screen, and it is how you gather information from users. They involve and require user interaction. This element only appears when you’re creating a Screen Flow, as expected.
Sample screen configuration.
  • Action: You know how your org has quick actions or even the standard Send Email action, right? This element lets your Flow call on something Salesforce already knows how to do (like these actions). This could mean sending an email, creating a record with a quick action like New Task, submitting for approval, or even running a piece of custom Apex code. Instead of rebuilding those functions from scratch, you can just “plug them in” with the Action element. 
Sample Case Actions that can be added using an Action element

  • Subflow: I think the name speaks for itself, like how a subtab is a tab within another tab. A subflow element lets you call another flow within your current flow. It’s great for reusing logic, so that doing the same set of automations only involves a single subflow element instead of having to build the same steps over and over. It’s like reusing a trusted recipe.
Choose from available Flows in your org to set as a subflow.

Logic 

If Interaction elements are the “performers”, then you can imagine Logic elements as the thinkers. They allow you to make your Flow make decisions, do calculations, or repeat steps when needed. In other words, Logic elements are what give your Flow its brainpower, and their icons on the builder are orange.

  • Assignment: This element is kinda like your Flow’s scratch pad. A variable/s is like a little note your Flow keeps on the side: it holds a piece of information that you might need later. The Assignment element is how you write that note. For example, you might assign today’s date to a variable, or copy a field value into a placeholder you’ll use later. On its own, it seems like it doesn’t do much, but without Assignments your Flow wouldn’t have a way to remember or update the little details that keep everything moving smoothly.
Sample Assignment element configuration.

  • Decision: This is your flow’s “two roads diverged in a yellow wood” moment (hat tip to Robert Frost!) – the classic fork in the road. You can set more than two outcomes, and you also set the conditions for each. Sometimes it’s as simple as: if a record meets your criteria, follow Path A – if not, go down Path B. And since you’re not limited to just two outcomes, it can be powerful, but also something to watch out for, as Flows can quickly get complicated with too many branches.
Sample Decision element configuration.
  • Loop: Often used with the Assignment element, Loop allows you to deal with multiple variables at once. In a collection, it walks through every one. Imagine you’ve got a stack of Contacts to process – the Loop picks up the first one, runs it through the steps you’ve defined, then goes back for the next, and so on until the stack is finished.
Sample Loop element configuration.
  • Transform: I learned to use this one after painstakingly using combinations of Loop, Assignment, and Decision elements to deal with multiple records. Transform allows you to map one or more variables to a new variable/s. It’s a powerful way to map source to target data, allowing you to convert data types, map fields between objects, reformat, or even aggregate.
READ MORE:
Sample Transform element configuration that accomplishes the same task I was trying to do with the Assignment-Loop combo from the previous screenshot.

  • Collection Sort: This element arranges variables in order. When you have a variable that has a collection of records, say, Opportunities, for example, you can use Collection Sort to line them up in the order that you want according to the value in the Amount or Close Date fields. Maybe you want the biggest deals first, or the oldest ones at the top.
  • Collection Filter: If Sort is about order, Filter is about focus. This element lets you take a collection variable and pull out just the ones you care about. For example, from a collection of Contacts, you might filter out only those marked as “Active”. It’s effective for narrowing down records so you don’t have to use so many Get Records elements (we’ll get to this in a bit!) in your Flow. 
  • Wait Elements: Sometimes your Flow needs to take a breather. Wait (or Pause) elements let your Flow wait until a specific time or until a record meets certain criteria before continuing. Note that these elements only appear as options in Autolaunched or Scheduled flows. We won’t dive deep into each kind here, but if you want to learn all about Wait elements and their best use cases, check out this article

Data

If Logic elements give your Flow its brain, then Data elements actually reach into your org, pull back records, and make changes. Think of them as your Flow’s hands reaching into the filing cabinet. Anytime you want to do anything to actual records, like updating them, for example, you’re likely to use these elements. Their icons are pink in Flow Builder.

  • Get Records: This is your Flow’s way of saying, “Go fetch that for me”. It is used to pull information directly from Salesforce. For example, maybe you want to find all the open Cases for a customer, or look up an Account’s details before creating a new Opportunity. The results in a Get Records element are stored in a variable, which you can use in other parts of your flow.
  • Create Records: As the name suggests, this is how your Flow adds something new to Salesforce. Some examples are a fresh Lead record, a Task assigned to a user, or a custom object record.
  • Update Records: This element takes a record that already exists in Salesforce and makes changes to it. For instance, it can mark an open Case as “Closed”, bump an Opportunity’s Stage, or update a Contact’s phone number.
  • Delete Records: Removes records from Salesforce. Like normal deletion, deleted records are sent to the Recycle Bin and stay there for 15 days before they’re permanently gone from your org. You’ll use this one carefully, but it’s essential for cleanup automations. 

Final Thoughts

The elements are your building blocks, but they don’t stand alone. You’ll also need resources, variables, and connectors. 

Get familiar with the elements because once you understand what each can do, building flows feels a lot less overwhelming. No more staring at the toolbox, wondering what to drag onto the canvas, or clicking on the plus signs without a clue about what to pick next. This time, you’ll know exactly which piece to use – and why.

READ MORE: Mastering Salesforce Flow in 90 Days: A 12-Step Learning Plan

The Author

Mariel Domingo

Mariel is a Technical Content Writer at Salesforce Ben.

Leave a Reply