checking for record access in visual workflow
the UserRecordAccess object “Represents a user’s access to a set of records”.
in apex, you can query this object to determine if a user can view, edit, delete, share, or transfer a record.
SELECT RecordId, HasReadAccess, HasTransferAccess, MaxAccessLevel
FROM UserRecordAccess
WHERE UserId = [single ID]
AND RecordId = [single ID]
in flow, you can query this object to test for edit before updates, in theory, but its got some quirks because it has very specific requirements around how the query is structured, and the standard flow “get records” element does not meet them.
the docs specify these requirements for the query. the 2nd and 3rd ones come into play here.
SOQL restrictions:
- When the running user is querying a user’s access to a set of records, records that the running user does not have read access to are filtered out of the results.
- When filtering by UserId...













