delivered for clients · names withheldupgrade CRM, ITSM and automation

Salesforce Workflow Rules and Process Builder to Flow

Cohash moves Salesforce Workflow Rules and Process Builder automation to Flow. We pull every rule and process from metadata, group them by object, and rebuild them as a few well-ordered record-triggered flows instead of one flow per rule. Time-based actions become scheduled paths, tests cover each object, and old automation is deactivated object by object after the new flows prove out in a sandbox.

  1. 01Metadata inventory
  2. 02Design per object
  3. 03Build and convert
  4. 04Test
  5. 05Deploy and deactivate
case-study / salesforce-workflow-rules-to-flow delivered
beforeWorkflow Rules and Process Builder afterRecord-triggered and scheduled flows
01 · CHANGES AND RELEASES 02 · FLOW PER OBJECT 03 · RESULTS Users and integrations: UI edits · API and bulk loads Users andintegrations UI edits · API andbulk loads Source control: flows · flow and Apex tests Source control flows · flow and Apextests Before-save flow: field updates Before-save flow field updates After-save flow: related records · actions After-save flow related records ·actions Scheduled paths: replace time-based actions Scheduled paths replace time-basedactions Record and related records: field values Record and relatedrecords field values Email alerts and reminders Email alerts andreminders
01 · CHANGES AND RELEASES02 · FLOW PER OBJECT03 · RESULTS Users and integrations: UI edits · API and bulk loads Users andintegrations UI edits · API andbulk loads Source control: flows · flow and Apex tests Source control flows · flow andApex tests Before-save flow: field updates Before-saveflow field updates After-save flow: related records · actions After-saveflow related records· actions Scheduled paths: replace time-based actions Scheduledpaths replacetime-basedactions Record and related records: field values Record andrelated records field values Email alerts and reminders Email alertsand reminders © Cohash · cohash.com
case file

The story

Told without the client's name or anything that could identify them.

what happened

A software company's Salesforce admins had objects where many Process Builder processes and Workflow Rules fired on the same save, and nobody could say what order they ran in. Support for both tools ended on 31 December 2025, and an earlier pass with Migrate to Flow had left a pile of one-to-one flows that nobody reviewed. We pulled every rule, process and Apex trigger from metadata and mapped them per object. Each object now has a small set of before-save and after-save flows with trigger order set on purpose, time-based actions run as scheduled paths, and the old automation was switched off object by object after sandbox comparisons matched.

why it was urgent

Since 31 December 2025, Workflow Rules and Process Builder have been out of support. They keep running. But when a release breaks one, Salesforce won't fix the bug or answer the case, and there's nobody to escalate to.

problem statement
  • openOne object has a dozen Process Builder processes and several Workflow Rules firing on the same save.
  • recurringNobody can say what fires first on save, so admins leave automation alone.
  • blockedPending time-based actions sit in the workflow queue and nobody owns them.
  • openSomeone ran Migrate to Flow and got a pile of one-to-one flows that no one has reviewed.
architecture

The estate, before and after

before
before

Before: Workflow Rules and Process Builder firing on every save

One save could trigger Workflow Rules, several processes, unreviewed converted flows and Apex triggers in an order nobody had mapped. Field updates re-fired triggers, and time-based actions waited in a queue with no owner.

Before: Workflow Rules and Process Builder firing on every save One save could trigger Workflow Rules, several processes, unreviewed converted flows and Apex triggers in an order nobody had mapped. Field updates re-fired triggers, and time-based actions waited in a queue with no owner. 01 · RECORD CHANGES 02 · AUTOMATION ON SAVE 03 · RESULTS save save save re-fires triggers field update update related unknown order time trigger alert Users and integrations UI edits · API and bulkloads Sf Workflow Rules field updates · emailalerts Sf Process Builderprocesses several per object Unreviewed convertedflows one flow per old rule Apex triggers re-fired by field updates Record and relatedrecords field values Time-based workflow queue pending actions, no owner Email alerts and outboundmessages © Cohash · cohash.com
01 · RECORD CHANGES02 · AUTOMATION ON SAVE03 · RESULTS Users and integrations: UI edits · API and bulk loads Users and integrations UI edits · API and bulk loads Workflow Rules: field updates · email alerts Workflow Rules field updates ·email alerts Process Builder processes: several per object Process Builderprocesses several per object Unreviewed converted flows: one flow per old rule Unreviewedconverted flows one flow per oldrule Apex triggers: re-fired by field updates Apex triggers re-fired by fieldupdates Record and related records: field values Record andrelatedrecords field values Time-based workflow queue: pending actions, no owner Time-basedworkflowqueue pendingactions, noowner Email alerts and outbound messages Email alertsand outboundmessages save save save field update update related unknown order time trigger alert © Cohash · cohash.com
after
after

After: a few record-triggered flows per object

Per object, one before-save flow handles field updates and one after-save flow handles related records and actions, in a trigger order someone actually chose. Scheduled paths carry the time-based work, and all of it deploys from source control.

After: a few record-triggered flows per object Per object, one before-save flow handles field updates and one after-save flow handles related records and actions, in a trigger order someone actually chose. Scheduled paths carry the time-based work, and all of it deploys from source control. 01 · CHANGES AND RELEASES 02 · FLOW PER OBJECT 03 · RESULTS save deploy deploy field values set trigger order update related schedule email alert reminders Users and integrations UI edits · API and bulkloads Source control flows · flow and Apex tests Sf Before-save flow field updates Sf After-save flow related records ·actions Scheduled paths replace time-based actions Record and relatedrecords field values Email alerts andreminders © Cohash · cohash.com
01 · CHANGES AND RELEASES02 · FLOW PER OBJECT03 · RESULTS Users and integrations: UI edits · API and bulk loads Users andintegrations UI edits · API andbulk loads Source control: flows · flow and Apex tests Source control flows · flow andApex tests Before-save flow: field updates Before-saveflow field updates After-save flow: related records · actions After-saveflow related records· actions Scheduled paths: replace time-based actions Scheduledpaths replacetime-basedactions Record and related records: field values Record andrelated records field values Email alerts and reminders Email alertsand reminders save deploy deploy field values update related email alert reminders © Cohash · cohash.com
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    Each object has a known save order

    Field updates run in before-save flows and related-record work in after-save flows, with entry conditions and trigger order written into the design per object.

  2. result 02

    Time-based work kept running

    Renewal reminders and other time-based actions still go out. Pending ones were handled before each rule was deactivated, and new ones run as scheduled paths.

  3. result 03

    Automation ships through source control with tests

    Flows deploy from source control with flow and Apex tests that cover each object's save path, including bulk loads and integrations.

  4. result 04

    Results were compared before the switch

    We compared before-and-after field values in a full sandbox, then deactivated each object's old rules in the same release as its new flows.

  5. result 05

    Package automation has a vendor plan

    Rules that live in managed packages are the package vendor's job. We left them to the vendor's plan and track them in the inventory rather than rebuilding them locally.

what can go wrong

Risks we plan for

  1. Order of execution changes

    Workflow field updates can re-fire triggers in ways flows don't. Moving logic can change results or cause recursion if save order isn't tested.

  2. Managed package automation

    Don't rebuild rules that live in a managed package. They're the package vendor's, and so is the plan for them.

  3. Lost scheduled work

    Deactivate a rule with pending time-based actions and you can drop work customers expect, renewal reminders for example. Plan the queue before the switch.

  4. Too many flows

    One flow per old rule recreates the original tangle in a new tool. Consolidation per object is what makes the result maintainable.

ai in this move

Where AI helps, and where it needs guardrails

Winter '27 turns Agentforce on by default for eligible orgs, and agents often act through flows, so messy automation becomes messy agent behavior. We use an LLM to read each old rule and process and draft a plain-English spec, and an admin checks it before anything is built. Any flow an agent can call should check the running user's permissions and log what it changed.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • inventory01

    Automation inventory per object, including Apex and existing flows

    yours to keep
  • design02

    Target flow design per object with trigger order

    yours to keep
  • tests03

    Flows and tests in source control

    yours to keep
  • report04

    Before-and-after field comparison report from a full sandbox

    yours to keep
  • plan05

    Deactivation plan with time-based queue handling

    yours to keep
what's involved

Platforms and services on this move

field notes

Learn the background

Terms from this page in plain English. If you want the why, the field note behind it is right there.

01Rules
The JavaScript snippets Auth0 used to run at login. Someone would write one to add a role to the token or block a sign-in, and each one ran after the last.in context →
02Actions
The replacement for both. Each one is a small JavaScript function you attach to a trigger such as post-login. It carries its own secrets, and other Actions can't read them.in context →
03sandbox
A non-production copy of your system that people test and train on. It eats into your storage just like production does.in context →
Time to get under Copy, restoreblocked Sandboxadmin-only Sandboxdisabled Day 0 Day 90
field note · 15 min · 3-question check Dynamics 365 storage limits start to bite on 9 November: what gets blocked, how to get out the ideaGo over capacity and a clock starts. Production stays open, sandboxes don't. read the note
talent and delivery · record-triggered and scheduled flows

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01Our old rules still run. Why move?

Because nobody will fix them if a release breaks them, and every new automation already has to be a flow. Mixing old and new tools on one object is where most save-order bugs come from.

02Is the Migrate to Flow tool enough?

It's fine for the simple stuff. Because it converts one rule or process at a time, a complex org ends up with a pile of little flows to consolidate and test.

03How long does it take?

It depends on how many objects carry automation, how much is in managed packages, and test coverage. We count rules and processes per object first and estimate from that.

fact-checked Checked against vendor and official documentation last checked 2026-10-20 content fingerprint 6127db5e
  1. 01Book a 30-minute working sessionsenior engineer
  2. 02Talk to an engineer about your setupreply within 24 hours
  3. 03See how similar projects wentcase studies
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it