Having adequate Flow knowledge as an Admin/Developer is crucial to staying relevant with Salesforce. As such, here are some questions I'd ask to gauge someone's knowledge of Salesforce Flow.
Level 1 - Novice
Someone who knows the broad strokes of what Flow is and how/when it might be used. These might be new admins and developers to the Salesforce platform, or non-technical roles who have been on the platform long enough to experience some spillover.
What is Salesforce Flow?
show answer
Flow is an automation tool within Salesforce and is currently the most robust declarative automation tool on the platform. Flow enables users to automate complex business processes without writing code, but offers comparable features to code-based alternatives.
Why might someone choose to use Salesforce Flow over another automation tool on the Salesforce platform?
show answer
- Flow is low/no-code and well documented, allowing resources of lower technical prowess to learn, implement, and maintain Flow faster than other code-based alternatives.
- Many other on-platform automation tools (Platform builder, Workflow rules) have been slowly phased out, while Flow has received tons of updates and Salesforce attention, further expanding its functionality.
- There are many content-rich examples of Flow use cases, it is unlikely you are the first or only person to have done something specific with Flow.
- Flow is massively flexible, and aids in rapid prototyping for speedy implementations
Name a simple use case where any type of Salesforce Flow might be utilized
show answer
- Whenever a high-priority field changes on a custom object, I want to send an email to the record's owner (Record-Triggered Flow)
- I want to display a custom datatable on an Account record with specific information from related Contacts in a quick view sidebar (Screen Flow)
- Every night, I want to check for stale records and flag them for follow-ups (Schedule-Triggered Flow)
Level 2 - Beginner
Someone who has had some experience in Flow turning the wrench. Folks at this level might have gone through the process a few times of ingesting a requirement, creating a Flow, testing/debugging, and releasing it for end users.
How do you use loops in Flow? What sorts of use cases do loops have?
show answer
Loops are elements that allow you to iterate over collections within Flow. Loops are useful anytime we need to consider each element in a collection individually, whether that be to compare it with a decision element or stage data with an assignment element.
For example, if you were to show a datatable on screen in a Flow that allowed for multiple selected rows, the output of that table is a collection that can be iterated over by a loop to take some sort of action.
Name some bad practices in Flow that can cause outcomes like exceeded SOQL query limits, Apex CPU timeouts, and faulty logic between Orgs. Give some strategies on how to avoid them.
show answer
- DML in a loop - strict transactional limits are in place that prevent DML (Create/Update/Delete) and SOQL elements from running too many times in a single transaction. Instead, consider using the IN operator and collection variables to group information so that single DML/SOQL callouts can be made instead of hundreds
- High volume nested loops - transactional guidelines dictate how long a single transaction can run, so you should be developing with the mindset of making each action you'd like to perform as inexpensive as possible. If you have 200 Accounts and for each Account need to check 1000 Contact records, nesting these loops would generate 200,000 individual runs of these loops. Instead, consider using collection filters to grab subsets of data, rather than looping over all records without purpose.
- Hard-Coded Record Ids - as your Flow moves from Sandbox to Production environments, your hard-coded record Ids will fail and be a huge maintenance headache for all. These can always be avoided by things like querying other objects and using the Get Records response.
What are some of the limitations of Salesforce Flow?
show answer
Level 3 - Intermediate
Someone who has used Flow for some time now and has worked through their fair share of technical challenges. Users in this tier have a higher depth of both theoretical and practical aspects of the platform. These users also demonstrate a deeper understanding of platform capabilities and limitations than the previous tier. Questions for users in this tier start to become more open-ended, and scenario-based examples can help understand how a candidate goes about solving an issue.
Suppose you encounter a limit such as a CPU timeout. You have already taken measures to optimize your Flow. You have taken a look within the Org to see other logic that shares a transaction with your newest logic, which cannot be modified. What might you do to overcome this issue?
show answer
While there are many things you could do (logic consolidation, Apex processing, batch classes), in Flow you could:
- Consider async processing - Record-Triggered Flows can take advantage of asynchronous paths, which break transactions and allow for higher limits at the cost of some real-time guarantees
- Consider moving to a Schedule-Triggered Flow - Schedule-Triggered Flows boast outrageously high upper limits when taking advantage of automatic Flow bulkification. If it can wait to run once daily, Schedule-Triggered Flows are resource-conscious and hugely versatile in their ability to handle processing
Give an example of a Flow you optimized or revised to make more efficient.
show answer
Strong examples might include:
- Replacing nested loops with collection filters
- Tightening up sets of Flow entry criteria so records don't have to waste time passing through
- Using the IN operator more prolifically to cut down on collection sizes
- Pivoting after context Flows to before context Flows, where applicable
Give an example of a Flow update you felt was very impactful.
show answer
Strong 'recent' updates might include:
- The removal of the 2000 element limit, massively increasing the use cases and flexibility of Flow
- The addition of a standard datatable, reducing the need for custom code and external dependencies
- HTTP Callout logic, giving code-less GET and POST ability to Flow builders
- The repeater element, advancing screen Flow tech with modern form offerings
- Collection filters, giving Apex style loop smart loop traversal
Level 4 - Advanced
Someone who exhibits high proficiency and expertise on the platform. While they may not have touched every available feature within Flow, their knowledge is vast. These users can tackle complex automation challenges, innovate solutions, and optimize processes within the Salesforce platform. Many of the folks in this tier might be integration experts, people who generate complex forms and wizards for their users, and frequently mix declarative and code-based approaches to stretch the limits of what is possible.
Explain (in your own words) how Flow Bulkification works.
show answer
The article below outlines in great detail the process of bulkification in Flow. The broad strokes are:
- Individual interviews in a batch run together related to the same transaction
- Interview 1 will run until it hits an element that can be bulkified
- Interview 1 will hold until all other related interviews have hit the same element (or those that apply have).
- Flow then runs that element a single time for all interviews, and continues on
What is one main difference between Apex Trigger "bulkification" and Flow "bulkification" in Record-Triggered Flows?
show answer
- In an Apex trigger, you have access to all records in your batch via Trigger.new. In Flow, you can only access the full batch via an Apex action.
- In an Apex trigger, bulkification is not automatically handled and must be coded for. In Flows like Record-Triggered Flows and Schedule-Triggered Flows, the bulkification is automatic
What is your philosophy on the number of Flows per object? What are some pros and cons of your approach?
show answer
While there is likely no right answer, this Salesforce Ben article summarizes the two major schools of thought and presents them. Option 1 discusses the pros and cons of breaking down Flows by entry criteria, where distinct entry criteria produce distinct Flows, managed by the Flow Trigger Explorer. Options 2 discusses the "rule of three", where logic is grouped by the three possible contexts it can run in. Below is an excerpt from that article that summarizes the two most prevalent paths of thinking:
- Option 1 utilizes the Entry Criteria and Flow Trigger Explorer to make it easier to manage multiple smaller Flows, which will lead to performance improvements (particularly in orgs with large data volumes).
- Option 2 follows the rule of three. This approach is still endorsed by Salesforce themselves in certain circumstances (depending on your license and what your business needs are). It follows a number of best practices that are well-known beyond even the realm of Flow.
In what ways have you extended Flow's out-of-the-box functionality, and what unique approaches or techniques do you employ in Flow that might be less common?
show answer
While this question is very open-ended, some common practices might indicate a candidate is more seasoned in Flow usage. Here are a few of those possible practices:
- For users building forms with Flow, use of the Lightning Design System in Flow to maintain visual cohesion between elements within the Flow, and elements of Salesforce. Article here.
- Use of components like Data Fetcher, which allow dynamic queries without hopping to other screens
- Use of Apex invokables where applicable, as Apex has many prebuilt methods that often tip the scale in the battle between config and code.
- Use of LWC in Flow, to extend the functionality and match a desired style more effectively.
- Use of UnofficialSF components, to extend functionality and reduce time spent by leveraging a huge pool of prebuilt components and utilities
For prospective candidates reading this, remember that value can be provided in so many ways! Even if you aren't a Flow master with experience in every facet of the tool, you might be a rockstar in one particular area. Maybe you are:
- A documentation guru with a knack for diagraming Flow processes
- An AppExchange hero, with a component up your sleeve for any occasion
- A savvy tester with a hunger to help break and bulletproof all your Org's automation
- A limit-oriented admin with an eye for process optimization
- A talented BA with strong communication skills and great user story generation
- An order-of-operations-minded developer with a strong understanding of recursion and the impact of mixed automation types