When do you use a before-save record-triggered flow instead of after-save?
Testing Whether you reach for the cheap one by default, or use after-save for everything because it can do more.
Before-save when all I need is to set a field on the record being saved, because it happens before the record is written and costs no extra DML. After-save when I need anything else — creating or updating a related record, sending an email, calling Apex. The rule I follow is to try before-save first and only move to after-save when the requirement genuinely reaches outside the record.
Before-save updates the record in memory on its way to the database, so
there is no second save and no second pass through the automation. That
makes it dramatically cheaper than the after-save equivalent, which had to
issue its own DML and re-enter the order of execution to change the same
field. What it cannot do is the whole reason after-save exists: no related
records, no callouts, no email, no Apex actions, and on an insert there is
no record Id yet because the row does not exist. So the split is not about
preference — anything that only touches Trigger.new-equivalent fields
belongs in before-save, and everything else has no choice.
They'll ask next Can a before-save flow stop a save?
Not by throwing. Validation is still a validation rule's job, or an after-save flow with a custom error — before-save is for setting values.
They'll ask next Why does before-save avoid re-entering the automation?
Because it never issues a DML statement. The field change rides along with the save that was already happening.