# Delta on PermissionSets

## Overview

Starting with Salesforce **API version 40**, deploying PermissionSets by default replaces the entire set in the destination org with the incoming metadata. This can result in the loss of existing permissions if not managed carefully.

By selecting the **Enable Delta on PermissionSets** option, AutoRABIT retrieves the existing PermissionSets from the Source Org or Source Branch and **appends only the new changes** to the deployment package—preserving existing permissions in the destination org.

![Enable Delta on PermissionSets UI](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FEW7CDod2lyamlJBo84Sh%2Fimage.png?alt=media\&token=6f63421d-d9f4-4974-801e-49982c04bbc0)

{% hint style="info" %}
**Important Note:**\
The **Enable Delta on PermissionSets** feature is available **only** in the **CI Job module**. It is **not supported** in EZ-Commit, EZ-Merge, or standalone Deployment modules.
{% endhint %}

***

## Scenario 1

* **Source Org:** A PermissionSet contains a permission to an **Apex class A**.
* **Destination Org:** The same PermissionSet already includes **Apex class B**.

### Behavior:

* **Without Delta Enabled:** The PermissionSet in the destination org is **replaced**, and only **Apex class A** remains.
* **With Delta Enabled:** The PermissionSet in the destination org is **appended**, so both **Apex class A** and **Apex class B** permissions exist post-deployment.

![Permission Set Behavior with Delta](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fb5dkE4fMCc5jIhcAQIFp%2Fimage.png?alt=media\&token=f0524267-1de9-494b-885e-7df74c281838) ![Resulting Permission Set with Delta Enabled](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FfiGmUGJby8jt8lclaIGb%2Fimage.png?alt=media\&token=72a20368-c65b-4582-b475-1b16c4ca7193)
