← Back to Platform & Technical
PLAT-003 Platform & Technical 18 min read For: Technical Leads

Triggers vs Flows vs Process Builder: The Migration Path Forward

Process Builder is retired. Workflow Rules are deprecated. Flow is the strategic tool. But millions of orgs still run on the old automation stack — and migrating it is one of the most underestimated technical debt challenges in the Salesforce ecosystem today.

VS

Vishal Sharma

Salesforce Architecture Specialist · Updated May 2026

What you will learn...
  • The Salesforce automation tool timeline: what is deprecated, retired, and strategic
  • Why Workflow Rules and Process Builder are being replaced — the architectural reasoning
  • How triggers, flows, and the legacy tools interact in the order of execution
  • Migration strategy: which tools to migrate first and how to approach the work
  • The Salesforce Migration Assistant for Process Builder and its limitations
  • Governance going forward: preventing the same automation debt from re-accumulating in Flow

The Automation Tool Timeline

Salesforce's automation tooling has evolved through three distinct generations, and understanding the history explains the current migration pressure.

Generation 1 — Workflow Rules (2004): Simple if-then automation: if a field meets a condition, do one of four actions (field update, email alert, task creation, outbound message). Simple, reliable, but severely limited in capability. Still widely used in orgs built before 2015. Salesforce has announced Workflow Rules will be retired, with creation of new Workflow Rules disabled for new orgs since 2023.

Generation 2 — Process Builder (2015): More capable than Workflow Rules — multiple criteria, multiple actions, ability to create related records and invoke Apex. But Process Builder had a fundamental architectural problem: multiple Process Builder processes on the same object fire in an undefined order, interact poorly with each other, and can create recursive loops. Process Builder is deprecated — creation disabled for new orgs, still runs in existing orgs but receives no new features. Salesforce's migration guidance is clear: migrate to Flow.

Generation 3 — Flow (2014, major investment from 2020): Flow, specifically Record-Triggered Flow, is the strategic automation tool. It consolidates Workflow Rules, Process Builder, and much of what previously required Apex triggers into a single, well-governed tool. Flow has much stronger support, active development, and Salesforce's full investment.

💡
Why now, not later: The pressure to migrate is not just technical — it is operational. As Salesforce adds new platform features, they are built for Flow only. Orgs still running on Process Builder miss feature updates, can't use newer flow capabilities in their automation, and accumulate compatibility risk with each Salesforce release.

The Interaction Problem: Mixed Automation Stacks

The most dangerous configuration in a Salesforce org is a mix of all three automation types on the same object — a Workflow Rule, a Process Builder process, and an Apex trigger all firing on Opportunity update. The interactions are unpredictable and the combined behaviour is difficult to debug.

In the order of execution, Record-Triggered Flows fire before and after the DML operation in specific positions, Apex triggers fire before and after DML, and Workflow Rules fire after triggers in the after-update context. Process Builder also fires in the after context. When all of these are active on the same object, a change to one record can trigger a cascade of interactions where each tool's output feeds into the next tool's trigger condition.

The symptom is typically: a record update that should trigger one action ends up triggering five, or a record gets into an infinite loop of updates until the recursion guard kicks in. Debugging requires understanding the entire automation inventory for the object — which most orgs do not have documented.

-- Query to inventory all automation on a specific object
-- (useful first step before starting a migration)

SELECT Id, Name, TableEnumOrId, TriggerType,
       ProcessType, Status
FROM Flow
WHERE TriggerType = 'RecordBeforeSave'
   OR TriggerType = 'RecordAfterSave'
ORDER BY TableEnumOrId, ProcessType

-- Also check via Tooling API for WorkflowRule:
SELECT Id, Name, TableEnumOrId, Active
FROM WorkflowRule
WHERE TableEnumOrId = 'Opportunity'

Migration Strategy: Prioritisation and Approach

Most orgs cannot migrate all automation at once — the scope is too large and the risk of regression is real. A prioritised, phased approach is the only practical strategy.

Phase 1 — Inventory first: Before writing a single migration plan, produce a complete automation inventory. Every Workflow Rule, Process Builder process, Apex trigger, and Flow on every object — its purpose, its owner (the person who can validate it), and its last-modified date. Automation that was last modified 5 years ago and has an unknown owner is the highest-risk item to migrate.

Phase 2 — Retire the dead: Before migrating, deactivate and delete automation that is no longer needed. In most orgs, 20-30% of active automation is actually obsolete — processes that were built for requirements that have since changed. Migrating obsolete automation just carries the debt forward in a new tool.

Phase 3 — Migrate highest-risk first: Objects with the most automation (typically Account, Opportunity, Contact) should be migrated first because they have the most interaction risk from mixed stacks. Clear the stack on one object at a time — get it to a pure Flow (or Flow + Apex) model before moving to the next.

🔑
Owner validation is mandatory: Never migrate automation without business owner validation. A Workflow Rule that sends an email alert on Contract renewal may look simple but has a business owner who relies on it. Migrate without validation, and you either break the process silently or re-discover it through a user complaint six months later.

The Salesforce Migration Assistant

Salesforce provides a Migration Assistant tool (in Setup under Process Automation Settings) that attempts to automatically convert Process Builder processes to equivalent Record-Triggered Flows. The tool covers common patterns: field updates, record creation, email alerts.

The Migration Assistant is a starting point, not a complete solution. Its limitations are significant. It does not handle complex branching logic well. It does not validate the migrated flow's behaviour against edge cases. It cannot migrate Process Builder processes that use features with no Flow equivalent. And critically, it generates flows that are functional but not optimised — the generated flows often have redundant elements, inefficient looping patterns, and no comments explaining the business logic.

Use the Migration Assistant to generate a draft. Then review and refactor the generated flow against the original Process Builder logic and the documented business requirement. Testing the migrated automation in a sandbox with representative data volumes (not just happy-path scenarios) before deploying to production is non-negotiable.

💡
Migration as improvement opportunity: Migration from Process Builder to Flow is an opportunity to improve, not just replicate. Often the original Process Builder process was built quickly without proper design. The migration conversation with the business owner should include: "Is this automation still needed? Does it work correctly today? Are there known issues we should fix?" Migrating a broken process faithfully just moves the problem.

Governance Going Forward: Preventing Flow Debt

The same automation debt that accumulated in Workflow Rules and Process Builder will accumulate in Flow if governance is not in place. The tool changed but the human behaviours that create debt — building without design, never deleting old automation, no ownership model — remain.

The governance practices that prevent Flow debt are: mandatory naming conventions (flows named by object, trigger type, and purpose), a single flow per object per trigger context where possible (rather than many small flows that interact unpredictably), a business owner assigned to every flow in the inventory, and a regular automation review (quarterly) where unused flows are deactivated and deleted.

Record-Triggered Flows should also be monitored for performance. Unlike Workflow Rules (which were lightweight), complex flows with many elements, external callouts, or inefficient loops add measurable transaction time to record saves. Salesforce's Flow Analyser in Setup can surface performance issues in deployed flows.

Key Takeaways

  • Workflow Rules are deprecated and being retired; Process Builder is deprecated. Flow (Record-Triggered Flow) is Salesforce's strategic automation tool and the only one receiving active investment and new features.
  • Mixed automation stacks on the same object (Workflow + Process Builder + Apex triggers) create interaction risks, recursion loops, and debugging nightmares. The goal is a clean stack: Flow + Apex where needed, nothing else.
  • Migration strategy: inventory first, retire obsolete automation second, migrate highest-risk objects (most automation) first. Validate every migration with the business owner before deploying.
  • The Salesforce Migration Assistant converts Process Builder to Flow automatically but generates drafts that need review and refactoring — not production-ready flows. Use it as a starting point.
  • Migration is an opportunity to fix known issues and retire obsolete processes, not just replicate old logic in a new tool.
  • Prevent Flow debt with: naming conventions, single-flow-per-object discipline, assigned business owners, and quarterly automation reviews with deactivation of unused flows.

Test Your Understanding

1. An org has 15 active Process Builder processes across 8 objects, some last modified 4 years ago with unknown owners. What should be the FIRST step in the migration plan?

A. Run the Salesforce Migration Assistant on all 15 processes immediately to generate Flow equivalents
B. Produce a complete automation inventory — identify the purpose, owner, and current-use status of every process before writing a single migration plan
C. Deactivate all Process Builder processes immediately since they are deprecated and replace them with blank Flows

2. A developer uses the Salesforce Migration Assistant to convert a Process Builder process to Flow and deploys the generated flow directly to production. What is the key risk with this approach?

A. The Migration Assistant generates flows that are incompatible with the current Salesforce release version
B. The Migration Assistant generates functional but unoptimised drafts — without review, refactoring, and sandbox testing against representative data, edge cases, and business validation, silent bugs may reach production
C. Generated flows require manual activation — deploying them directly does not enable the automation

3. A Salesforce org has Workflow Rules, Process Builder processes, and Apex triggers all active on the Opportunity object. A record update triggers unexpected behaviour — multiple actions fire in a loop. What is the architectural root cause?

A. Salesforce platform bug — multiple automation types on the same object are not officially supported
B. Mixed automation stack interaction — multiple tools firing in sequence, each potentially triggering the next, with no single view of the full execution chain. The fix is consolidating to a single automation model (Flow + Apex).
C. Governor limit bypass — recursive triggers are allowed in Workflow Rule context but not in Flow context, causing conflict

Discussion & Feedback