As a Salesforce admin who’s managed orgs for healthcare, financial services, and retail giants, I’ve seen flow performance kill productivity. Poorly built flows don’t just slow down your org—they cause user frustration, missed SLAs, and budget overruns. Here are 10 concrete mistakes I’ve seen repeatedly, with real-world examples. Skip these and your flows will run like they’re on dial-up.
1. Ignoring Bulkification
Flows process records one-by-one by default. I once inherited a flow that updated 10,000 cases via a loop, hitting SOQL limits in 2 seconds. Solution: Always use "Loop" elements with "Bulk" settings. For large data sets, use record-triggered flows with "Bulk" enabled. Example:
SELECT Id FROM Case WHERE Status = 'New' LIMIT 1000
should be processed in a single bulk query, not 1000 single-record queries.
2. Overusing Screen Flows for Backend Logic
Screen flows add unnecessary UI layers. A client built a screen flow to validate lead data before creation—costing 15 seconds per lead. Instead, use a record-triggered flow with validation rules. The fix cut lead creation time by 82%.
3. Not Optimizing Decision Elements
Complex decisions like "If (A OR B OR C OR D) AND (E OR F)" slow down execution. I saw a flow with 12 nested decisions blocking a billing process. Simplify: Use formula variables or break into multiple decision steps. Each nested condition adds 50ms+ per execution.
4. Forgetting Error Handling
A flow updating customer profiles crashed silently when a related account was deleted. No error logs, no user notification—just lost data. Always add "Error" elements with Set Error and Display Error. Log errors to a custom object for auditability.
5. Using Flows for Simple Field Updates
Creating a flow to update a single field (e.g., "Is_Priority__c = TRUE") when a workflow rule would suffice. One client’s flow triggered 200x slower than a simple workflow. If it’s a one-off field change, use Process Builder or workflow.
6. Overloading a Single Flow
A "master" flow handling lead routing, email alerts, and CRM syncs. It timed out during peak hours. Split into three focused flows: one for lead assignment, one for notifications, one for CRM sync. Each now executes in under 1 second.
7. Skipping Flow Performance Metrics
Many admins never check Setup > Flows > Performance. I audited a client’s org and found a flow running 12,000+ times daily with 2.1s execution time. Optimizing its SOQL reduced runtime to 0.3s—saving 20+ hours of processing per day.
8. Using Dynamic Actions for Basic Logic
Dynamic actions (e.g., "Set Field: {!Variable}") add 50ms per call. A flow using dynamic actions for 20 field updates took 2.4s; replacing with static field assignments cut time to 0.8s. Only use dynamic actions for truly variable logic.
9. Testing in Production
Deploying a flow directly to production after minimal sandbox testing. A retail client’s holiday promo flow crashed during Black Friday due to untested bulk data. Always test with 10k+ records in sandbox first. Use the "Debug" button and check "Performance" metrics.
10. Not Leverage Flow Templates
Building custom flows for common patterns (e.g., "Case Creation Workflow") instead of using Salesforce’s built-in templates. This adds 20+ hours of dev time per flow. Use templates like "Create Record" or "Update Record" as a base to avoid reinventing the wheel.
Flows are powerful—but misused, they become org-clogging nightmares. Fix these 10 mistakes, and your flows will run faster than your budget approval process. If you’re unsure if your org is infected by these pitfalls, run a free health scan. We’ll pinpoint performance killers in your flows (and more) in minutes.
👉 Get your free org health scan now—no credit card required. See exactly where your flows are slowing you down
📚 Recommended Resource: Salesforce for Dummies — great for anyone learning Salesforce.
📚 Recommended Resource: The Phoenix Project — great for anyone IT management.
📚 Recommended Resource: NIST Cybersecurity Framework Guide — great for anyone security frameworks.
Need a second opinion on your Salesforce org? Request a diagnostic.
Top comments (0)