#salesforcehowto — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #salesforcehowto, aggregated by home.social.
-
Visual Comparison and Beyond – Flow Versions Just Got Easier
As we dive into the massive Salesforce Summer ’26 release, it is clear that the platform is delivering some serious automation upgrades. We have been watching a clear pattern for a few cycles now: Salesforce is steadily removing the friction points that have historically slowed admins down and is giving teams more control over how their automations behave. Today, we are focusing on one specific, highly anticipated quality-of-life win for Flow Builder that will change how you manage your automation versions: Visual Flow Version Comparison.
If you have ever taken over a flow mid-project, handed one off to a colleague, or simply tried to remember what you changed three weeks ago before hitting deploy, you already know the pain this feature is solving. In this article, we are breaking down exactly how Visual Flow Version Comparison works, what types of changes it surfaces, and why it is one of the most practical governance upgrades Salesforce has shipped in recent memory. Whether you are a solo admin trying to move faster or part of a team that needs tighter deployment controls, this feature has something for you.
What Are Flow Versions?
To truly understand the value of this new feature, we first need to talk about what flow versions are and how Salesforce handles automation architecture. In Salesforce, Flow Builder does not simply overwrite your active automation when you make a change. Instead, it utilizes a strict versioning system. Every time you open an existing flow, make adjustments, and click “Save As,” you create a new version of that flow.
This means a single flow can have dozens of versions, each capturing a snapshot of the automation’s logic at a specific point in time. However, only one version can be active at a time. This architecture is absolutely crucial for safe deployments and enterprise governance. It allows administrators to build and test new logic in a draft version while the older, active version continues to run uninterrupted in the production environment.
Furthermore, if a new deployment causes unexpected errors, this versioning system provides an immediate fallback mechanism, allowing admins to quickly deactivate the broken version and reactivate a previous, stable version.
The Old Way of Flow Version Comparison
Despite the benefits of having multiple versions, comparing them has historically been a nightmare for Salesforce administrators. Before the Summer ’26 release, if you took over a flow from another admin or simply forgot what you changed a month ago and needed to know the exact differences between Version 12 and Version 13, you had very few good options.
You generally had to open two browser tabs and manually click through every single node on the canvas, playing a tedious game of “spot the difference.” Alternatively, developers had to export the flow metadata and manually parse through raw, abstract XML files to find changes in the code. For a platform championing “low-code” and “no-code” solutions, this was a highly technical, time-consuming, and error-prone process. It often led to deployment risks when undocumented or accidental changes slipped through the cracks unnoticed.
The Summer ’26 Solution: Visual Flow Version Comparison
The Summer ’26 release completely revolutionizes flow management by solving this exact problem. Flow Builder now includes a visual comparison tool that allows you to identify flow version changes at a glance. Instead of relying on abstract tables or manually comparing complex XML files, admins can now visually identify differences side-by-side directly on the Flow Builder canvas. This tool improves overall readability and significantly reduces the risk of deployment errors by bringing transparency directly to the builder interface.
Types of Changes Highlighted
When you use the comparison tool, Flow Builder highlights modifications at a highly granular level, tracking everything from broad element changes down to specific configuration adjustments. When comparing versions, the interface will highlight elements and tag them with specific terms to indicate what happened:
Added: This indicates a brand-new element that exists in the newer version of the flow but was entirely absent in the older version being compared.
Updated: This status applies to elements that exist in both versions but have undergone configuration adjustments. The underlying logic, variable assignments, routing rules, or properties of the element have been altered between the two versions.
Removed: This highlights an element that was present in the older version but has been actively deleted or removed from the canvas in the newer version.
Changed Connector: Connector(s) are tied to different elements.
Compare Transform Element Changes
One of the most powerful aspects of this new visual tool is its deep integration with Transform elements. Data transformations can be incredibly complex, often containing dozens of individual field mappings. The Flow Version Comparison tool now provides a detailed breakdown of transform mappings, joins, and formulas.
If you modify complex data transformations, the tool makes it incredibly simple to easily identify any added, updated, or removed field mappings. You can review detailed configuration changes for complex transformations without having to manually inspect every single mapping line.
Supported Flows and Conditions
So, how do you access this new feature? The process is wonderfully straightforward and supported under standard Flow Builder conditions. To compare versions, you simply open a flow and navigate to the version dropdown menu at the top of the screen. From there, you select Compare Versions.
Once initiated, the tool provides flexibility in how you view the data. You can switch seamlessly between a table view (for a list-based breakdown) and the visual canvas view. To dive deeper into a specific modification, simply click an element with changes to get more granular details and see exactly what configuration adjustments were made.
Supported Licenses and Availability
Salesforce has made sure this highly anticipated feature is widely available to the ecosystem, not just restricted to premium tiers. The Visual Flow Version Comparison tool applies to both Lightning Experience and Salesforce Classic. It is available across a comprehensive range of licenses, specifically in Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions. Whether you are a solo admin in a small business or part of a massive enterprise deployment team, you will have access to these critical visibility tools to keep your automations safe and predictable.
The Automation Visibility You’ve Been Waiting For
The ability to visually compare flow versions is exactly the kind of quality-of-life win that Flownatics have been asking for. No more tab-switching, no more XML spelunking, no more hoping you remember what you changed three weeks ago.
For admins managing complex orgs, this feature is a genuine risk reducer. Deployment reviews get faster. Handoffs between team members get cleaner. Audits stop being a scramble. And for any admin who has ever activated a flow and immediately wondered what actually changed since the last version, this is the answer.
Salesforce is taking the no-code and low-code automation story seriously at the enterprise level, and Visual Flow Version Comparison is proof that robust lifecycle management tooling is no longer reserved for developers. It belongs in the builder interface, and now it finally is. If you are not already reviewing your most critical flows and documenting version histories, Summer ’26 is the perfect time to start. This tool makes it easier than ever to build that habit.
Explore related content:
11 Flow Updates in Summer 26 Release
Open a Page Action: Redirect Users After a Screen Flow
Choices, Choices: What Are Radio Button Groups Best Used For
Warn and Inform with Native Toast Messages in Salesforce Flow
#Automation #SalesforceAdmin #SalesforceHowTo #SalesforceTutorial #SalesforceUpdate #Summer26 -
Clean Data, Smart Flows: Automating Data Cleanup in Salesforce Nonprofit Cloud
I had the privilege of presenting at Nonprofit Dreamin, one of the most community-driven Salesforce events on the calendar. With a sold-out crowd of 300 participants, the energy in the room was exactly what you’d hope for when talking about technology that actually matters for mission-driven organizations. It was a great session, and the conversations that followed reminded me why this work matters. For everyone who attended, asked questions, or tracked me down afterward, thank you. Here’s a deeper look at everything we covered.
The Case for Clean Data in Nonprofit Cloud
Every Nonprofit wants to make decisions grounded in accurate, real-time data. But as any Salesforce professional knows, “accurate data” doesn’t just happen on its own. It requires deliberate architecture, thoughtful automation, and a clear understanding of which tools belong where.
In Salesforce Nonprofit Cloud (NPC), that challenge is multiplied. Built on the Salesforce Industries architecture, NPC introduces a purpose-built data model with Person Accounts, Gift Commitments, Gift Transactions, and volunteer management objects that all need to stay tightly synchronized. The good news? Salesforce Flow, especially with the addition of the Transform element, has become a powerful enough tool to handle both the data hygiene work and the complex calculations your fundraising and volunteer teams depend on, without touching your DPE credit limits.
This post covers two interconnected use cases: automating data sanitization for volunteer management and building advanced donor fulfillment calculations with Flow, including the new Transform element. Together, they demonstrate what’s possible when clean data and smart automation work in concert.
Why Clean Data Is the Non-Negotiable Starting Point
Before we get into calculations and check-in flows, let’s establish something foundational: none of this works without clean data.
In the Salesforce world, “clean data” means records that are accurate, consistent, and free of duplicates. For admins, this has always been best practice. But with the rise of AI Agents, autonomous programs that can execute real transactions inside your org, data quality has become a hard requirement. AI is only as good as what it’s grounded in. Garbage in, garbage out, and now that garbage can trigger a bad transaction at scale.
In NPC specifically, clean data is the backbone of reliable volunteer coordination, accurate donor reporting, and eventually, trustworthy AI-assisted fundraising. One of the most common, and most overlooked, data quality issues is mobile phone formatting.
Part 1: Automating Data Sanitization with Record-Triggered Flow
Volunteers check in using their last name and mobile phone number. That sounds simple until you realize that the same phone number can be stored dozens of different ways: (512) 555-0100, 512-555-0100, 5125550100, 512 555 0100. When a Get Records element tries to match on an exact value, any inconsistency breaks the lookup.
The fix is a record-triggered flow that strips all non-digit characters from the mobile phone field the moment a Person Account is created or updated.
Person Account
A person account is a Salesforce record type that combines Account and Contact into a single entity, allowing you to manage individuals like donors or volunteers without needing a separate business account record. NPC relies on Person Accounts as its primary constituent record.
The “Clean Mobile Phone” Flow
This flow runs when a Person Account is created, or when the mobile phone field is changed and is not blank. The sanitization logic uses a chained SUBSTITUTE formula that removes spaces, dashes, and parentheses in sequence, leaving only pure digits. The result: a consistent, matchable value in every record.
If you need flexibility, there are alternatives. Validation rules can reject improperly formatted entries at the point of save, preventing the problem before it’s created. Scheduled flows can run as a daily batch job to clean up any legacy data that snuck through before your automation was in place. For most organizations, a combination of all three provides the most airtight coverage.
Part 2: Reactive Screen Flows for Volunteer Check-In
Once your data is clean, you can build experiences that actually work. In NPC, volunteer management tracks jobs, positions, and shifts, and getting volunteers into the right slot quickly is a real operational challenge.
Rather than relying on a standard digital experience site, we built a custom screen flow that leverages reactive functionality: the ability for a screen to update dynamically based on user input without navigating to a new page.
Reactive Screen Flow
A reactive screen flow allows components on the same screen to communicate with each other in real time. A data table can update the moment a user types a search term or makes a selection, with no page reload.
How the Check-In Flow Works
The volunteer enters their last name and mobile phone number. Because we’ve already sanitized the phone field, the Get Records query finds an exact match reliably. If no match exists, a warning screen appears immediately.
From there, a data table displays available jobs, such as “Food Distribution.” Once the volunteer selects a job, a Screen Action triggers an auto-launched subflow in the background.
That subflow queries available shifts for that specific day and passes them back to a second data table on the same screen. The volunteer selects their shift and clicks Next, and the flow creates a Job Position Assignment record with a status of “Complete.” Clean, fast, no paper sign-in sheet required.
Part 3: Complex Donor Fulfillment Calculations with Flow and the Transform Element
With volunteers managed and data sanitized, let’s look at the other side of the NPC operation: donor management. Here, the goal is to give fundraising teams a real-time snapshot of donor health directly on the Account page.
Specifically, we want to calculate three things for each donor:
Current Year Gift Commitment: The donor’s pledge for the year. In NPC’s data model, this tracks promises rather than payments.
Current Year Paid Amount: The total actually received via Gift Transactions. A single commitment can have multiple transactions associated with it as the donor makes payments over time.
Fulfillment Rate and Membership Level: The percentage of the commitment that’s been paid, and a tiered classification (Gold, Silver, Bronze) based on actual payments.
Why Flow Instead of DPE?
NPC includes pre-built Data Processing Engine (DPE) calculations for Donor Gift Summary. Think of DPE as a mini-ETL tool built directly into Salesforce, designed to handle millions of records with joins, filters, and aggregations that would push a standard Flow to its governor limits. It’s powerful, but it comes with two significant constraints: a steep learning curve that many admins haven’t climbed yet, and a license-based DPE credit limit that can be exhausted quickly if calculations run in real time or too frequently.
Flow provides a low-code alternative that doesn’t count against those credits, making it the right choice for on-demand or daily updates across mid-sized datasets. The golden rule: always use the tool you already know if it fits the case at hand.
Step 1: The Auto-Launched Subflow
We start by building an Auto-Launched Flow to house all the calculation logic. Keeping the math in a subflow means the same logic can be triggered by a user button, a nightly schedule, or an automated event, without ever rebuilding it.
The flow takes three input variables: the Account ID we’re processing, a StartDate, and an EndDate. Formulas handle null inputs gracefully, defaulting to January 1st of the current year and today’s date respectively, so the flow still works if those values aren’t provided.
Two Get Records elements pull the data. The first retrieves Gift Commitments filtered by DonorId and EffectiveStartDate within the selected range. The second retrieves Gift Transactions for the same donor where Status is Paid and TransactionDate falls within range.
The Transform Element
This is where Flow Builder has meaningfully evolved. The Transform element allows you to map and aggregate data collections without the traditional Loop + Assignment pattern. Instead of iterating through every transaction record manually, we point the Transform element at the Gift Transactions collection, set the target to a currency variable, select Sum, and choose the Amount field. The element does the rest. Repeat the process for Gift Commitments.
This approach is bulkified by design and significantly easier to debug than a loop-based alternative.
Categorization via Formulas
A nested IF formula handles Membership Level assignment: Bronze for paid amounts under $50,000, Silver up to $100,000, and Gold above that. A separate formula calculates the Fulfillment Rate as a percentage. Both formulas include null checks to handle donors who have commitments but no transactions yet.
Step 2: The Screen Flow and Quick Action
The subflow handles all three rollups in a single execution: total paid amount, total commitment, and the derived fulfillment rate and membership tier. The Screen Flow itself grabs the Account ID from the page, passes it into the subflow, receives the calculated values back, and writes them to custom fields on the Account using an Update Records element. A Flow Message component displays a toast-style confirmation to the user when the calculation is complete.
Step 3: Nightly Automation via Scheduled Flow
A button is great for one-off checks. But data goes stale. The subflow architecture makes automation straightforward: a Schedule-Triggered Flow runs nightly at 8:00 PM, loops through all active donor Accounts, and calls the same subflow we built for the button. Every morning, the fundraising team logs in to dashboards and Account views that are already current.
Conclusion
Clean data and efficient automation are the engine of nonprofit effectiveness. Accurate volunteer check-ins mean accurate service records. Accurate service records mean accurate outcome data. And accurate outcome data is what allows organizations to apply for larger grants, deepen constituent relationships, and scale their mission year over year.
The same principle applies on the donor side. When gift fulfillment data is reliable and up to date, fundraising teams can have better conversations, identify at-risk donors earlier, and make the case for continued investment with confidence.
With NPC’s purpose-built data model and Flow’s growing capabilities, especially the Transform element, there has never been a better time to consolidate your automation strategy around tools your team already understands. The result is an org that’s not just manageable, but genuinely ready for whatever comes next, including AI.
Want to walk through these builds step by step? The Clean Data Playbook is available FREE on Flow Canvas Academy.
Explore related content:
Mastering Data Rollups in Nonprofit Cloud
What Nonprofits Taught Me About Building Salesforce for Humans, Not Just Systems
Salesforce NPSP vs Nonprofit Cloud Consultant Certifications
How the Salesforce Architecture Program Is Being Rebuilt with the Community
#Nonprofit #NonprofitCloud #NPC #NPSP #SalesforceAdmins #SalesforceDevelopers #SalesforceHowTo #SalesforceTutorials -
Should You Use Fault Paths in Salesforce Flows?
If you build enough Flows, you’ll eventually see the dreaded flow fault email. Maybe a record you tried to update was locked, a required field value was not set in a create operation, or a validation rule tripped your commit. Regardless of the root cause, the impact on your users is the same: confusion, broken trust, and a support ticket. The good news is you can catch your faults using the fault path functionality. In this post, we’ll walk through practical patterns for fault handling, show how and when to use custom error element, and explain why a dedicated error screen in screen flows is worth the extra minute to build. We’ll also touch on the roll back records element for screen flows where this functionality can make a difference.
Why Fault Paths Matter
Faults are opportunities for your Salesforce Org automation to improve. While unhandled faults are almost always trouble, handled faults do not have to be a huge pain in our necks.
The Core Building Blocks of Flow Fault Handling
1) Fault paths
Gets (SOQLs), DMLs (create, update, and deletes) and actions support fault paths. Fault paths provide a way for the developer to determine what to do in the event of an error.
2) Fault actions
You can add elements to your fault path to determine the next steps. You can also add a custom error element in record-triggered flows or error screens in screen flows for user interactivity. Multiple fault paths in the flow can be connected to the same element executing the same logic. A subflow can be used to standardize and maintain the fault actions such as temporarily logging the fault events.Logging Errors
Here is a list of data that may be important to include in your fault communications and logging:
- Flow label
- User Name
- Date/Time
- Technical details (e.g. $Flow.FaultMessage)
- Record Id(s) and business context (e.g., Opportunity Id, Stage)
- User-friendly message (plain English)
Subflow Solution
The advantage of a subflow when dealing with fault paths is that you can modify the logic once on a central location. If you want to start logging temporarily, you can do that without modifying tons of flows. If you want to stop logging, this change can be completed fairly easily, as well.
Inside the subflow, decide whether to:
- Log to a custom object (e.g., Flow_Error__c)
- Notify admins via Email/Slack
Meet the Custom Error Element
The Custom Error element in Salesforce Flow is a powerful yet often underutilized tool that allows administrators and developers to implement robust error handling and create more user-friendly experiences. Unlike system-generated errors that can be cryptic or technical, the Custom Error element gives you complete control over when to halt flow execution and what message to display to your users.
The Custom Error element lets you intentionally raise a validation-style error from inside your flow, without causing a system fault, so you can keep users on the same screen, highlight what needs fixing, and block navigation until it’s resolved. Think of it as flow-native inline validation.
What The Custom Error Element Does
It displays a message at a specific location (the entire screen or a specific field) and stops the user from moving forward. This functionality does present a less than ideal self-disappearing red banner message if you make a change to a picklist using the path component, though. Refrain from using the custom error messages in these situations.
The unique thing about the custom error message is that it can be used to throw an intentional exception to stop the user from proceeding. In these use cases, it works very similarly to a validation rule on the object.
This becomes particularly valuable in complex business processes where you need to validate data against specific business rules that can’t be easily captured in standard validation rules. For instance, you might use a Custom Error to prevent a case from being closed if certain required child records haven’t been created, or to stop an approval process if budget thresholds are exceeded.
Please note that custom error messages block the transaction from executing, while a fault path connected to any other element will allow the original DML (the triggering DML) to complete when the record-triggered automation is failing.
Custom Error Screen in Screen Flows
Incorporating a dedicated custom error screen in your screen flows dramatically improves the user experience by transforming potentially frustrating dead-ends into helpful, actionable moments. When users encounter an error in a screen flow without a custom error screen, they’re often left with generic system messages that don’t explain what went wrong in business terms or what they should do next, leading to confusion, repeated help desk tickets, and abandoned processes.
A well-designed custom error screen, however, allows you to explain the specific issue in plain language that resonates with your users’ understanding of the business process. Beyond clear messaging, custom error screens give you the opportunity to provide contextual guidance, such as directing users to the right person or department for exceptions, offering alternative paths forward, or explaining the underlying business rule that triggered the error. You can also leverage display text components with dynamic merge fields to show users what caused the problem turning the error into a learning moment rather than a roadblock. Additionally, custom error screens maintain your organization’s branding and tone of voice, include helpful links to documentation or knowledge articles, and pair with logging actions to give you valuable insights into potential process improvements or additional training needs.
Here is an example custom error screen element format (customize to your liking):
Error Your transaction has not been completed successfully. Everything has been rolled back. Please try again or contact your admin with the detailed information below. Account Id: {!recordId} Time and Date: {!$Flow.CurrentDateTime} User: {!$User.Username} System fault message: {!$Flow.FaultMessage} Flow Label: Account - XPR - Opportunity Task Error Screen FlowThe “Roll Back Records” Element
There are use cases in screen flows where you create a record and then update this record based on follow-up screen actions. You could be creating related records for a newly created record, which would require you to create the parent record to get the record Id first. If you experience a fault in your screen flow, record(s) can remain in your system that are not usable. In these situations the Roll Back Records element lets you undo database changes made earlier in the same transaction. Roll Back Records does not roll back all changes to its original state, it only rolls back the last transaction in a series of transactions.
Tips for fewer faults in the first place
Here are some practical tips:
- Validate early on screens with input rules (Required, min/max, regex).
- Use Decisions to catch known conflicts before DML.
- Place DMLs strategically in screen flows: Near the end so success is all-or-nothing (plus Roll Back Records if needed) or after each screen to record the progress without loss.
The fewer faults you surface, the more your users will trust your flows.
Putting it all together
Here’s a checklist you can apply to your next Screen Flow:
- Every DML/Callout element has a Fault connector.
- A reusable Fault Handler subflow logs & standardizes messages.
- Custom Error is used for predictable, user-fixable issues on screens.
- A custom error screen presents clear actions and preserves inputs.
- Technical details are available, not imposed (display only if helpful).
- Roll Back Records is used when it matters.
- Prevention first: validate and decide before you write.
Other Considerations
When you use a fault path on a record-triggered flow create element, and your create fails, please keep in mind that you will get a partial commit. This means the records that fail won’t be created while others may be created.
Example: You are creating three tasks in a case record-triggered flow. If one of your record field assignments writes a string longer than the text field’s max length (for example, Subject) and you use a fault path on that create element, one task fails while the other two create successfully.
Conclusion
My philosophy regarding fault paths is to add them to your flows, but never go down them if possible. When you see you are going down fault paths, then that means you have opportunity for improvement in your automation design.
Every fault you handle offers insight into how your flow behaves in the real world. Each one reveals something about the assumptions built into your automation, the data quality in your org, or the user experience you’ve designed. Treating faults as signals rather than setbacks helps you evolve your automations into resilient, reliable tools your users can trust. Over time, these lessons refine both your technical build patterns and your understanding of how people interact with automation inside Salesforce.
Explore related content:
How to Use a Salesforce Action Button to Validate Lookup Fields in Screen Flows
Should You Leave Unused Input and Output Flow Variables?
How To Build Inline Editing for Screen Flow Data Tables in Salesforce
Salesforce Flow Best Practices
Add Salesforce Files and Attachments to Multiple Related Lists On Content Document Trigger
#CustomErrors #FaultHandling #FaultPath #SalesforceAdmins #SalesforceDevelopers #SalesforceHowTo #SalesforceTutorials #ScreenFlows