You are here:
Decide Between Before-Save and After-Save Record-Triggered Flows
Record-triggered flows run when someone creates, updates, or deletes a record in Salesforce. Before-save flows run before Salesforce saves the record. After-save flows run after Salesforce saves the record. Use this guide to pick the right type for your automation.
Required Editions
| View supported editions. |
| User Permissions Needed | |
|---|---|
| To open, edit, create, activate or deactivate a flow using all flow types, elements, and features available in Flow Builder, including Einstein and Agentforce for Flow: | Manage Flow |
When to Use a Before-Save Flow
Use a before-save flow when you want to update or validate the record that triggered the flow before it's saved to the database. A before-save flow can only update and validate records.
When to Use an After-Save Flow
Use an after-save flow to do anything beyond what a before-save flow can do. After-save flows can update or validate the triggering record after it's saved to the database. In addition, after-save flows use the triggering record's ID to update or create related and unrelated records, send emails, and perform many other actions.
Comparison: Before-Save Versus After-Save
| Consideration | Before-Save | After-Save |
|---|---|---|
| When it runs | Before Salesforce saves the record to the database. | After Salesforce saves the record and gives the record an ID. |
| Triggering record ID availability | Not available. | Available. Use it to create related records, add to formulas, or to pass to external systems. |
| Updating the triggering record | Yes. Best choice if that's all you're doing. | Yes, but updating the triggering record requires an extra save operation on the backend. |
| Validating data and prevent saving | Yes. Show error messages and block the save before bad data is committed. | No. The record saves when the flow runs. |
| Creating or updating related records | No. Only update triggering record. | Yes. Create and update any record. |
| Sending email or calling external systems | No. Not supported. | Yes. Send email, outbound messages, and call external systems or APIs. |
| Use post-save field values | No. Salesforce sets the values of system-populated fields, such as Last Modified Date or Created Date, after it saves the record to the database. | Yes. Record ID, Last Modified Date, Created Date, and other system fields are available. |
| Available elements | Limited: Assignment, Decision, Get Records, and Loop only. | All: Create Records, Update Records, Send Email, subflows, and so on. |
| Performance | Up to 10 times faster with no extra save. | Runs in the background after the save completes and can have extra save operations. |

