# Deployment Using Version Control

This section is all about deploying the nCino data using [Version Control](https://www.autorabit.com/blog/8-benefits-of-version-control-in-salesforce-development/)

1. Hover your mouse over the [**nCino** module](https://www.autorabit.com/industry-solution/banking-financial-services-ncino/) and click on the **Deployment History** option.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F8yQYaK1LcoepYWkw7Wkj%2Fimage.png?alt=media&#x26;token=4854ec61-05d7-4d8a-b98f-549d9519429c" alt="" width="202"><figcaption></figcaption></figure>

2. Click on the **Feature Deployment** button.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FQnu1ccmRT7duRU1E8na8%2Fimage.png?alt=media&#x26;token=e1c3e435-2581-435b-8ebf-e0c673bb386b" alt=""><figcaption></figcaption></figure>

3. On the next screen, give the process a **name** and a brief **description**.
4. In the **SOURCE** section, select **Deployment From** as **'Version Control.'**
5. Select your **version control** type.
6. Select your **repository** and **branch**.
7. Select the deployment type. There are three options to choose from:

   * **Entire Branch:** This option will fetch the feature migration templates configured on your branch. You'll be asked to choose the **template** and **version when selecting** the entire branch option.

   <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FFbfDV1urkuIqr6EIDtZq%2Fimage.png?alt=media&#x26;token=65332526-c7af-40f7-8860-f82541af9d62" alt="" width="470"><figcaption></figcaption></figure>

   * **Single Revision:** This option will pull all of the versions from your repo, allowing you to choose which revision to use in the deployment.

   <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FwK1U1vGZvpHpYbugyQXf%2Fimage.png?alt=media&#x26;token=af789144-5d55-4f01-839e-bc00118508c0" alt="" width="454"><figcaption></figcaption></figure>

   <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FzXI6N5s9yLFrRJZ6S1ML%2Fimage.png?alt=media&#x26;token=68e0a9bf-e20c-4368-9600-2e918f4dd6e0" alt=""><figcaption></figcaption></figure>

   * **Revision Range:** This option allows you to specify a commit range from which the revisions are to be deployed.

   <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FnVr9rIcmVbS0n5uc9lR3%2Fimage.png?alt=media&#x26;token=cd293595-f235-48d0-91ac-84ed6a64e4ed" alt="" width="434"><figcaption></figcaption></figure>

{% hint style="info" %}
After deploying a job, modifying the deployment type during subsequent edits may affect the integrity or effectiveness of any rollbacks performed thereafter.
{% endhint %}

8. The object configuration section will render the selected objects and apply filters and mappings based on your selection.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FHCMDQlPFnm4Ny8JdSCs6%2Fimage.png?alt=media&#x26;token=2d612846-7213-4200-8fc6-4859fee1f6f3" alt=""><figcaption></figcaption></figure>

9. Choose your **target org**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FT79x9oickXkz9MX6W6gd%2Fimage.png?alt=media&#x26;token=bbf1424d-0f0f-4982-b869-c7a6cf8cd8f5" alt=""><figcaption></figcaption></figure>

10. There are various options that you can configure to your objects before you proceed with deployment:

    * Applied Mappings
    * Applied Filters

    <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FTYLJVhtuhDB9flemzm6l%2Fimage.png?alt=media&#x26;token=4a1eff98-7a48-40c3-8909-e843038cc56f" alt=""><figcaption></figcaption></figure>

#### Applied Mapping <a href="#applied-mapping" id="applied-mapping"></a>

In this section, you can use an external ID in place of a related record's Salesforce record ID to relate or associate records to each other as you process an Upsert operation. For example, if **Object B** has a lookup field to another **Object A,** you can use the values in a field marked as an External ID on **Object A** to relate the two (**Object B** to **Object A** records).

In the **Source** field: Select your source field whose values will be populated in the destination External Id field.

In the **Destination** field: Select the required field from the destination org whose values will remain unique for all the records.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FIZ7V8wgC731TYvRtb6Kd%2Fimage.png?alt=media&#x26;token=e3a52847-669b-4ed4-8263-4b2567a56a72" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Important Note (About Applied Mappings):**

1. If there is no Lookup key and the name is set to External ID, AutoRABIT is still supported.
2. Because the source for this is a CSV extract and not a salesforce org, all fields from the source sandbox will be fetched, regardless of the External ID in the **Source** column, whereas the source for Destination is a salesforce org.
   {% endhint %}

#### Applied Filters <a href="#applied-filters" id="applied-filters"></a>

Such filters will be displayed here if any filter is applied to the objects.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FbrPjYzO8S19sxKdpc2aQ%2Fimage.png?alt=media&#x26;token=0a9e96bb-55ba-41eb-963a-65fcbb43c9e6" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Important Note**: The dataset is already prepared at the time of the commit, so you can’t edit it at this point. However, if you like to edit the filter, use the feature: [Deployment via Version Control using Salesforce org](https://knowledgebase.autorabit.com/~/revisions/cT0ZuVgeUzTQt27sMR9n/product-guides/arm/arm-features/ncino/feature-deployment/deployment-via-version-control-using-salesforce-org)
{% endhint %}

Click on **Deploy** to proceed to the next screen. The next screen will display the list of deployment criteria that you can opt for before proceeding with deployment.

#### Deployment Settings <a href="#deployment-settings" id="deployment-settings"></a>

1. **Disable Workflow Rules:** This option will deactivate the workflow rules associated with objects part of the deployment
2. **Disable Validation Rules:** This option will deactivate the validation rules associated with objects part of the deployment
3. **Insert/update with Null Values:** This will either insert or update record field values with null (if the value is null in source org) in destination org.
4. **Use UTF-8 file encoding for file read and write operations:** Use UTF-8 as the internal representation of strings. Text is transcoded from the local encoding to UTF-8 when data is written to or read from a file. UTF-8 must be enabled if your data exclusively contains English alphabets. UTF-8 must be disabled if your data contains non-English alphabets. UTF-8 should be enabled by default in accordance with Salesforce.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FjhL5darwSPBEUAZUHu0z%2F3.png?alt=media&#x26;token=c1f8e118-1017-4fa3-8405-2c58d9d6785e" alt=""><figcaption></figcaption></figure>

Click **OK** to complete the feature deployment process.

You'll be redirected to the [Feature Deployment Summary](https://knowledgebase.autorabit.com/~/revisions/cT0ZuVgeUzTQt27sMR9n/product-guides/arm/arm-features/ncino/feature-deployment/feature-deployment-summary) screen, where you can view detailed deployment reports or re-deploy the nCino objects to your Salesforce Org once again.
