A Salesforce record can be updated through Flow, Apex, REST API, or the UI. The steps below cover the most common paths an admin or developer chooses between.
- Update a single record in the UI
Open the record page, click the field's pencil icon to edit, change the value, and click Save. The UI runs the user's profile permissions and any field-level security; validation rules and triggers fire as normal.
- Update records in a Flow
Add an Update Records element to the flow. Pick the object, supply a record collection or filter criteria, and set the field values. The Flow's transaction handles the DML; bulk-loaded flows pass a record collection in one DML call.
- Update records in Apex with DML
Write Apex code that calls update on an sObject or a List of sObjects. Wrap the call in a try-catch if you want to handle DmlException explicitly. Bulkify by building the list inside the calling logic and calling update on the list outside any loops.
- Update a record via REST API
Send a PATCH request to the sObject endpoint with a JSON body containing the fields to update. The API runs under the connected app's user context and obeys the same validation and triggers as the UI.
- Mass update via Data Loader or Inline Edit
For bulk admin updates, use Data Loader with a CSV of record Ids and new values. For ad-hoc list view updates, enable Inline Edit on the list view and edit cells directly. Both paths run the full order of execution per record.
The canonical declarative update path. Picks records by criteria or collection and writes field values.
The canonical programmatic update path. Runs on an sObject or List with full governor-limit cost.
The canonical external integration update path. Authenticates via OAuth and produces the same database effect as Apex update.
- Single-record updates inside a loop hit the 150-DML governor limit after 150 records. Bulkify by collecting records into a list and updating the list once outside the loop. The same rule applies to Flow For Each loops.
- Validation rules fire on every update, not just on user-initiated updates. A Flow or Apex update can be blocked by a validation rule the user did not realise was active; the failure surfaces as a runtime exception.
- Field History Tracking only captures changes on the fields you explicitly enabled, up to 20 per object. The rest of the field changes are invisible to history reporting; broader audit needs Field Audit Trail or platform events streamed to an external store.