What’s trending
UPCOMING EVENTS
How to Create a Salesforce Screen Flow
By Andreea Doroftei
Salesforce Flow – now the hottest out-of-the-box tool available – caters to anyone administering a Salesforce instance, from complete beginners to experienced architects, allowing them to automate processes within their org.
There are multiple types of flow, and the sky’s the limit when it comes to choosing how simple or complex they can be. We will begin with Flow basics before focusing specifically on how you can get started using Salesforce Screen Flows.
What Is a Flow in Salesforce?
Before jumping into Screen Flows, let’s talk about Salesforce Flow in general. Simply put, flows are the new best friend you didn’t know you needed. Since Salesforce announced that Workflow and Process Builder are being retired in favor of Flow, the demand (as well as curiosity) around this functionality has seen a drastic increase in the ecosystem.
Salesforce Flow is an automation tool that can support most required business processes. It offers far greater capabilities and improved performance when compared to WorkFlow Rules or Process Builder. For example, flows can run before save (similar to Apex), which improves performance. There are several types of Flow, which you can see highlighted below.
Salesforce has done a great job of including a short explanation for each type (directly in the Flow Builder) to help you make the right choice for your requirement.
You can also find more information about each type in the official documentation.

While you can opt to start from scratch every time you are creating a flow, within the settings of each flow, existing ones can be marked as templates for you to reuse. Salesforce provides a variety of out-of-the-box templates for standard processes such as user provisioning, and there are also many more free templates you could try out from the AppExchange.
What Is a Salesforce Screen Flow?
Screen Flows guide users through a business process, providing instructions or call scripts, prompting users to complete certain fields, and performing actions behind the scenes such as Record Create or Record Update.
Your users will move through a series of screens that you have created – all without you having to write a single line of code.
When I first heard about Salesforce Screen Flows a few years ago, the functionality seemed very interesting; it looked as though it could open up a new realm of possibility. However, I never expected it to be so user-friendly, especially when creating from scratch without being an experienced developer. Salesforce proved me wrong!
While Salesforce Flows are easier to get started with than Apex, this doesn’t mean that you should forget about best practices and potential implications of introducing a new automation that will alter your Salesforce data.
Before creating a new Flow, you should consider if an existing one shouldn’t be modified instead, if another functionality could be used, and how it will behave alongside the other automations in your org it you decide to proceed with a new flow.
Layout and Features
The key element that differentiates this type of flow from all others is the Screen Element. This is what we will configure and what users will see when the flow is exposed to them.

As previously mentioned, a single Salesforce Screen Flow can have multiple screens. These displayed screens will sit on your Flow canvas alongside your other elements. You can find out more about each flow element here.
On the Screen Flow, the components panel on the left represents the items available to be added within the screen element itself – these can be either input elements or display elements. This is where you will find both standard components, such as picklist and text, as well as custom components that have either been developed internally or come from managed packages.
The screen properties on the right-hand side allow you to control the Header and Footer of each individual screen. For example, you can choose if you’d like to rename the buttons that users will click on, as well as use the new screen actions functionality if needed.

Here are just a few examples of commonly used out-of-the-box screen components:
- Email: This component is very handy when an email address is needed from the user running the Screen Flow. You can determine if it will be required or not, and similar to other components, you can control the visibility and validate the input users add – for example, maybe your organization doesn’t want gmail.com emails to be added.
- File Upload: Exactly as the name says, this will allow your users to upload files into Salesforce directly through the Screen Flow. This is especially handy as users won’t have to navigate to other pages to add files.
- Toggle: A personal favorite of mine, this component is fun for the user experience within a Screen Flow as it can replace a checkbox or a yes/no picklist.
- Datatable: This component uses a collection variable as the source and allows users to select one or more records from a list or just view them if needed. While setting it up, you can control whether you allow searching or not, determine the columns, and even set a custom label for each column in case it needs to be different than the field name.
- Display Text: Perhaps the most versatile and used of the components, which allows you to display instructions, success messages, and custom error messages to your users. Within this component, you can use flow resources combined with static text and even images or hyperlinks.
We will not be using the Fields section during this post. However, you should definitely explore this further, as it allows you to add on the screen fields directly from a record variable within the flow. This saves quite a bit of time, especially if you are adding multiple fields from the same record.
Note that on the same screen, you can add both record fields as well as other components. You can find more information about this feature here.

Where Can a Screen Flow Be Used?
I’d say almost everywhere! If the process can be broken down into steps that require user input (or acknowledgment), and it should be displayed for users based on record criteria or on previous choices in the flow, then a Screen Flow is appropriate.
A Salesforce Screen Flow can be beneficial to many different types of users and teams. There are plenty of use cases for Screen Flows that can be accessed in different ways in Salesforce, including Lightning Record Pages, custom actions and buttons, Digital Experiences, or even within the utility bar.
One of the most common examples is using a Screen Flow to collect data in order to create a record – which is what we will be creating next.
How to Create a Salesforce Screen Flow
Now that we have covered the basics of a Screen Flow, it’s time to get hands-on! We’ll go through a step-by-step tutorial on how to create a Screen Flow, how to expose it to your users, and, of course, how to make sure your flow works as expected.
Create the Flow
For this example, I chose to create a flow that will allow users to create a Contact. Keep in mind that while I have only used a few fields, multiple fields, and screens can be added to support your use case. Don’t forget to account for any existing validation rules!
49 STEPS
1. After navigating to the Automation app and clicking new, the New Automation screen will come up. The first step is to choose the Screen category.
2. Select Screen Flow as the type.
3. Click the “+” to add a new Element.
4. Click Screen.
5. Add a Label for your element. This will automatically complete the API Name. You can optionally enter a Description too.
6. Click the arrow next to Configure Footer.
7. For the Next or Finish Button, choose “Use a custom label“.
8. Enter “Create Contact” as the new label.
9. In the left panel, search for “lookup“.
10. Drag and drop the Lookup component.
10b. Drop
11. Type Account for the API Name.
12. Type AccountId for the Field API Name. This is the API name of the Account field from the Contact object.
13. Type “Choose Account” for the Label.
14. Type Contact for the Object API Name.
15. Scroll down and click Required.
16. Choose $GlobalConstant.True.
17. In the Search on the left side panel, type “Name“.
18. Drag and drop the Name component under the Choose Account field.
18b. Drop
19. Type an API Name for the component.
20. Type Contact Name for the Label.
21. Search for Email in the list of components.
22. Drag and drop the Email component under the Contact Name.
22b. Drop
23. Input an API Name for the component.
24. For the Required attribute, set the value to $GlobalConstant.True.
25. Click Done.
26. Click the “+” to add another Element.
27. Click Create Records.
28. Type “Create Contact” for the component label. The API Name will be automatically filled and you can opt to add a Description too.
29. Click How to set record field values and choose Manually.
30. Select Contact as the object.
31. Since Last Name is a mandatory field on the Contact, it will appear as a field value to map.
32. Map Last Name to the Last Name from the Contact Name component on the New Contact screen.
33. Click Add Field.
34. Click Search fields…
35. Choose First Name then map it to the First Name value from the Contact Name component. Repeat this step for all the other fields from the New Contact screen.
36. Review the fields you mapped, and once done click on the “+” to add one more Element.
37. Type Success as the Label. The API Name will be automatically completed.
38. Search for “Display” within the list of components.
39. Drag and drop the Display Text component.
39b. Drop
40. Type SuccessMessage for the API Name.
41. Enter the message you would like your users to seem including any Flow resources if needed.
42. Once the message is written, it can be formatted. Select the text and click the “center align text” button.
43. Set the Font Size to 14.
44. Once happy with the formatting, click Done.
45. For now, this is the Screen Flow. Click Save so that you don’t lose what you did so far.
46. Enter a descriptive Flow Label. The API Name will be automatically completed.
47. Even if it’s optional, make sure to add a Description for the Flow, so that future you and your colleagues know what the flow is meant to do.
48. Click Save.
49. That’s it. You’re done.
Here’s an interactive tutorial
** Best experienced in Full Screen (click the icon in the top right corner before you begin) **
https://www.iorad.com/player/2515541/How-to—Create-Screen-Flow-2025
Note: The Name component doesn’t have a “Required” attribute within the component itself as other components do. However, you can use the Validate Input option to require the First and Last Name in this example. With Spring ‘25, flow validations are now displayed in real time, rather than the users having to click the Next or Finish buttons to trigger them.

Prepare for Potential Errors with Fault Paths
Sometimes, things do not go smoothly; changes will keep happening in your organization after this flow is created. For example, a new required field may be added in the future, which will make the Contact creation through this flow error out unless the new field is added, right?
While you can’t foresee the future, when building the flow, you can account for unexpected changes such as these or unexpected errors by adding a Fault Path to your Create Records component.
This way, your users will be provided with clear instructions of what to do and with the error message from the $Flow.FaultMessage global variable if you choose to expose it to them.

Test Your Screen Flow
Once the flow is ready and saved, it should be thoroughly tested before reaching your user base in production. The easiest way to test the Screen Flow is through the Debug button, or you could opt to use it in the interface in a Sandbox and see if it works as expected.
However, in order to use it in the interface, you will need to save and activate it, then create new versions if changes are needed. The debug option, on the other hand, allows you to just save, test, make changes, and then save again if needed.
Considering the flow complexity, testing in a developer sandbox might be sufficient for a simple automation. But if a Flow has a broader impact, either on the existing implementation or on the user experience, testing should be completed A-Z, including the UAT – as well as any integration testing, if needed.
When clicking the Debug button – which appears within Flow Builder – the screen behavior will be the same as the interface (including the required fields, for example), but it will give exact information as far as the values for each component, as well as any errors if they occur and where. Once you’re happy that it works as intended, go back to Flow Builder and activate the flow!

If any errors appear within the process when a record insert or update is done, you will receive an email with details to help you troubleshoot. The users will also see the actual error on screen, which is not the ideal experience.
So make sure to consider this when building and adding a fault path with a nicer user-facing error message and screen, as well as accounting for any additional error logging mechanism you may be using in your org.
Don’t forget that Trailhead is a great resource to learn, with modules, trails, and even Superbadges dedicated to Salesforce flow – there is a whole lot to choose from! Here are a few examples you should explore:
- Screen Flows
- Screen Flow Fundamentals Superbadge Unit | Salesforce Trailhead
- Quick Start: Build Reactive Screen Flows | Salesforce Trailhead
- Automate Business Processes with Flow Builder | Salesforce Trailhead
Testing should be done for any Flow, automation, and functionality you add, not just for Screen Flows!
Make the Flow Available in the Interface
As mentioned above, the flow can be accessed in a few different ways – we will explore one of them, but feel free to try any other option that suits your use case best. Make sure that your flow is active before reaching this step.
We will add the flow we just created to the Home Page within the Sales Lightning App. For the sales team in particular, it is important to make this process as seamless and accessible as possible (with the least number of clicks).
If this flow had been added on the Account Record Page instead of the Home Page, we would need the Account Id from the current record rather than allowing users to select any of them. Make sure that the record Id is passed onto the flow variable accordingly through the Lightning component checkbox.

After the Home Page changes are saved, you can go ahead and use the flow directly from the page, just like your users will!

Take Einstein for Flow For a Spin
Once you’re comfortable with the elements and overall Screen Flows yourself, why not give Einstein for Flow a try? With generative AI functionality embedded in Salesforce to enhance the admin’s productivity, you could save some time and also explore how these can optimize your way of working within Salesforce.
Einstein for Flow became generally available in the Spring ’25 release and can create simple draft flows from scratch based on detailed instructions you can input in natural language, be it Screen Flows, record-triggered ones, or scheduled ones, for example, which you can then continue expanding on.
Additionally, you can leverage the summarization feature to automatically generate descriptions for new or existing Flows and even work with Einstein to build formulas for you within a flow formula resource.
Keep in mind that the instructions should be as detailed as possible and include the names of objects, fields, or directly any referenced resource and its type when it comes to formulas. You can review the recommended best practices here.
Key Considerations
- Salesforce Screen Flows always require some sort of user interaction. If you’d like a fully automated flow, consider one of the other flow types, such as “record-triggered” or “scheduled” flows.
- There is no actual limit as to how many Screen Flows you can have, but keep in mind that having multiple components will increase the complexity or the time the user has to spend completing the flow. Instead of using multiple individual screens, you could take a look at the repeater component or simply use conditional visibility to add components that may not be needed all the time, and you can hide on fewer screens.
- Screen Flows can be accessed in many ways. They can be embedded into a Lightning Record Page, custom actions, custom Lightning Web components, Visualforce pages, and more.
- You can choose when and if a screen is actually displayed to the user running the flow by leveraging Decision Elements within the flow or conditional visibility on the Lightning Record Page to show or hide the entire flow.
Summary
Now that you have built your first Salesforce Screen Flow and are familiar with Flow basics, it’s time to get hands-on and continue your journey. Be sure to keep practicing in a developer org and check out our other Flow articles to keep building your skills!
Here are a few suggestions to get you started:
- 10 New Salesforce Flow Features in Spring ‘25
- Creating a Schedule-Triggered Flow in Salesforce: A Step-by-Step Guide
- Salesforce Flow Best Practices: 5 Ways to Hack Productivity
Have you already created Screen Flows for your users? Let us know in the comments section below!