Is there any special permission available to edit read-only fields? Please explain

Short answer

There is no universal “unlock” permission that lets you edit every kind of read-only field in Salesforce. Whether you can edit a read-only field depends on why it’s read-only. However, there are a few special permissions and features (for example, “Set Audit Fields upon Record Creation”) that allow controlled edits to certain system/audit fields. The ability to change a field also depends on Field-Level Security, page layouts, field type (formula, auto-number, roll-up), and managed-package protection.

Why a field is read-only (and what that means)

Before attempting to edit, identify the cause of read-only behavior — each cause has a different solution:

  • Field type: Formula, roll-up summary, auto-number and other calculated/system fields are inherently non-editable.
  • Field-Level Security (FLS): If a profile or permission set marks the field as read-only, the user (and API calls made by that user) cannot modify it.
  • Page layout read-only: Fields set as read-only on the page layout are still editable via API if FLS permits; the page layout setting only affects the UI.
  • Validation rules / triggers / process builders / flows: Business logic can block or revert edits.
  • Managed package / namespace protection: Some fields in managed packages are protected and cannot be edited.
  • System audit fields: Fields like CreatedDate, CreatedById and LastModifiedDate are normally read-only but have special handling (see below).

Special permissions & features

These are the main exceptions or special permissions that affect read-only fields:

  • Set Audit Fields upon Record Creation

    This feature (also called “Create Audit Fields”) must be enabled for your org and the user must be given the corresponding permission. It allows you to set audit fields such as CreatedDate, CreatedById, LastModifiedDate, CreatedById, and LastModifiedById during record creation via the API or data loader. Note: this applies only at creation time (not for arbitrary later edits) and requires an org-level feature enablement by Salesforce Support for older orgs. Use cases: data migration, backfills.

  • Modify All Data / Customize Application

    These broad administrative permissions let administrators change security settings (for example, update FLS or page layouts) so fields become editable for certain users. They do not bypass immutable field types (formula/auto-number) or protected managed-package fields directly.

  • Permission Sets / Profile FLS

    Granting the Edit permission via FLS in a profile or permission set is the standard way to allow a previously read-only field to be edited. This is not an override — it’s the normal access control mechanism.

  • API vs UI differences

    Fields set read-only on a page layout can still be updated via API (SOAP/REST/Bulk) if FLS allows edit. Conversely, if FLS marks the field as read-only, API updates will fail too. So using the API isn’t a magical bypass for FLS/security restrictions.

What you cannot do (even with high-level permissions)

There are clear limits — these cannot be circumvented with an admin flag:

  • Modify formula, roll-up summary, and auto-number fields — these are system-controlled and calculated.
  • Edit fields protected by a managed package if the package provider set protection (unless the package specifically exposes an interface).
  • Arbitrarily change audit fields after creation (except in some data migration scenarios when “Set Audit Fields” is allowed at creation time).

Practical steps to allow editing

If you need to edit a read-only field, follow these steps:

  1. Identify why the field is read-only (field type, FLS, page layout, managed package, or business logic).
  2. If it’s FLS, update the profile or create a permission set with Edit access and assign it to the user.
  3. If it’s read-only on the page layout but editable by FLS, you can use API or provide a different page layout for the user to edit in the UI.
  4. For audit fields during migrations, request the “Set Audit Fields upon Record Creation” permission and use the API (or Data Loader) to populate the values at insert time.
  5. If a field is formula/auto-number/roll-up, consider creating a new editable custom field and populating it via data migration or using automation where appropriate.

Example: updating an editable-but-layout-read-only field via REST API

If FLS allows it but the page layout is read-only, you can update via API. Example using REST (replace instance URL and session token):


PATCH /services/data/vXX.X/sobjects/Account/001XXXXXXXXXXXXXXX
{
"Custom_Field__c": "New value"
}

Remember: if the field is read-only due to FLS, this call will fail with an error about insufficient access.

Summary

There isn’t a single special permission that overrides every kind of read-only field. What you can do depends on the underlying reason the field is read-only. Use permission sets and FLS to grant edit access, ask Salesforce to enable “Set Audit Fields upon Record Creation” for migrations, and remember that true system fields and calculated fields cannot be edited.