# Create a Feature Migration Template

## Overview <a href="#overview" id="overview"></a>

This details the step-by-step process to create a standard/community nCino migration template.

## What is a Feature Migration Template?&#x20;

A Feature Migration Template in AutoRABIT is essentially a blueprint that helps you manage and automate the process of moving features from one environment to another. It’s like a checklist that defines exactly what should be moved, how it should be transferred, and in what order, ensuring everything gets to the new environment correctly, without missing any critical steps.&#x20;

The template saves time and effort by letting you set up migration rules once and use them repeatedly for consistent, error-free deployments. Whether you're moving configurations, customizations, or entire features, the template streamlines the whole process, making it much smoother and more predictable.&#x20;

## Standard vs Community Templates&#x20;

**Standard Feature Templates**: These are templates that are pre-defined and ready to be used by customers/partners. Such templates are updated regularly as nCino releases changes to any configurations. AutoRABIT provides several default templates to be directly used by our community for migrating Record-Based Configurations (RBCs). &#x20;

**Community Feature Templates**: Community templates are non-standard templates. In other words, users can define their own migration templates that are not already published by AutoRABIT. Community templates are useful if there are any customizations in nCino users want to migrate that are not listed as part of the default Standard templates. &#x20;

Community templates, just like the Standard ones, are designed to be long-lasting. They need to be created once, and then can be used multiple times as a template.&#x20;

### Procedure <a href="#procedure" id="procedure"></a>

1. Hover your mouse over the **nCino** module and click on the option: **Feature Management.**

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F3MDPDJRx4JgcqcBXSedd%2Fimage.png?alt=media&#x26;token=37d82d20-c83f-42a4-97d9-422db7050d6a" alt="" width="197"><figcaption></figcaption></figure>

2. Click on **New Feature Migration Template** button.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FK5is6TrsXRSwcVIZSsCp%2Fimage.png?alt=media&#x26;token=6c274600-8a8d-4562-932e-fd3147acbc61" alt=""><figcaption></figcaption></figure>

3. On the next screen, click **Create New** to create a fresh template and include objects of your choice.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fzi9mgzdFyIISYF6jlL0w%2Fimage.png?alt=media&#x26;token=bf656841-85fe-48d7-9a11-0b21192c2961" alt=""><figcaption></figcaption></figure>

4. You'll be taken to the record-based configuration section, where you will find three tabs that need completed to proceed ahead:
   * **Metadata Configuration**
   * **Record Configuration and**
   * **Preview and Save**

### Metadata Configuration <a href="#metadata-configuration" id="metadata-configuration"></a>

Metadata in the context of nCino is the same as that of Salesforce. It includes a collection of nCino customizations and configurations that together form a blueprint for your lending processes, e.g., Page Layout, Custom Field, Workflows and Automation.

Under **Feature Details**, enter the items below:

1. **Name:** Provide a feature migration template name.
2. **Associated Partner:** The default associate partner would be nCino, which you can change if necessary.
3. **Version:** Enter the version number here. If you're creating the feature template for the first time, it is recommended to keep the version number as 1.0.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FIjXSiQNF41uJRRW0gwNN%2Fimage.png?alt=media&#x26;token=c712a772-6398-4ff1-8df4-86e2bc9a20f0" alt=""><figcaption></figcaption></figure>

Under the **Salesforce Org** **Details** section, do the following:

4. Choose your **Salesforce Org**.
5. Click **Fetch Objects** to retrieve all available objects in the selected Source Org.
6. By default, only nCino objects available in the Source Org will be auto-populated. To view all the objects available, click on **Show All** **Objects**.&#x20;
7. Using![](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FfBJoimsm78dRdEAf6djv%2Fimage.png?alt=media\&token=8112af12-b52e-49d2-9ea1-1cb5906d907d)/![](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FnTDx1pR2bCXesrCtPnLG%2Fimage.png?alt=media\&token=e3c5d76f-c96c-47ea-b07e-4dc287cf8826)button, you can select/deselect all the objects for your template. Or, use the **Ctrl** key and select multiple objects of your choice and move them to the selected tab using the![](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fw8JCSZqFGI1Y5KESnlHw%2Fimage.png?alt=media\&token=e9f2cf55-84bf-41c6-844b-cd8f79380ea5)/![](https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FIjfCiZAEIHwktNsefvlC%2Fimage.png?alt=media\&token=db7ce568-a199-4e27-9bf5-dad244b14a87)button. Once you have selected the object, [ARM](https://www.autorabit.com/) will retrieve the fields included in that object behind the scenes.

   <figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fv8KQHM67bF1QG4Rm44gp%2FOld%20UI%20-%20Ability%20To%20Sync%20The%20Metadata%20-%203.png?alt=media&#x26;token=7a015a84-11ba-4bea-ab49-c7f8a53cadd8" alt=""><figcaption></figcaption></figure>

   1. **Sync Schema:**
      1. **Overview**

         The Sync Schema option ensures that the latest metadata structure from the selected Salesforce source org is reflected for the chosen objects. This includes updates to object definitions, fields, and their attributes.
      2. **Functionality:** &#x20;
         1. When the Sync Schema option is enabled:
            1. The system fetches the latest metadata from the source org for the selected object.
            2. Newly added fields are included.
            3. Updated field properties (data type, required status, etc.) are refreshed.
            4. Deprecated or inactive fields are removed.
            5. The object schema in the template is updated before proceeding.
      3. **Behavior:**
         1. Sync is applied only to selected objects.
         2. The operation occurs during schema retrieval or object fetch.
         3. Existing configurations are updated to match the source org structure.
8. Click on **Next** to go to the **Record Configuration** Tab.

{% hint style="info" %}
**Important Note:** Only those objects will be considered nCino objects if their related prefix is included in the **Plugins** section under the [**My Account**](https://knowledgebase.autorabit.com/product-guides/arm/arm-administration/user-management/manage-users-account-settings) page.
{% endhint %}

### Record Configuration <a href="#record-configuration" id="record-configuration"></a>

This section allows users to configure nCino records. The nCino platform that will be available to your end users solely depends on how the records are configured. Every record of nCino that the end user interacts with, you can configure a different outcome for the same. The entire platform’s behavior lies on these Record-Based Configurations (RBCs).&#x20;

1. **Selected List**&#x20;

   This list shows the objects that you have explicitly picked to include in your migration. These are the features or configurations you actually want to move, like specific custom objects that are part of the change you're working on.&#x20;
2. **Related List**&#x20;

   Objects in this list are automatically identified by AutoRABIT as being related to your selected objects. For example, if your selected object has lookup relationships or dependencies, those related objects will appear here. This ensures all necessary dependent data is considered during migration.&#x20;
3. **Required List**&#x20;

   These are objects that AutoRABIT identifies as essential for the integrity of the migration. They are mandatory and cannot be removed from the template. This typically includes standard Salesforce objects or configurations that are foundational to the selected features.&#x20;
4. **Excluded List**&#x20;

   This list comprises objects that are not required and have been explicitly excluded from the migration. You might place objects here to prevent unnecessary data from being migrated, especially if it's irrelevant to the current feature or could cause conflicts in the target environment. Note that such objects in the excluded list are still available for user selection (case-by-case basis).&#x20;

   &#x20;

   AutoRABIT automatically groups related objects into different buckets based on how they’re connected. While it’s not required, you’ll need to apply at least one filter to each bucket. By default, AutoRABIT marks one object in each bucket as the "entry point" — that’s the object the filter will apply to. Although you can choose any object, it’s generally a best practice to apply the filter to the entry point itself, since that helps keep things clean and consistent.&#x20;

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2F7M1uxsgtqtSOuJgCyw6L%2Fimage.png?alt=media&#x26;token=37e7bc1b-d993-46fb-a7d7-e3b9a918ed27" alt="" width="210"><figcaption></figcaption></figure>

Based on the relationship between the objects, the AutoRABIT application will segregate the object sets, and applying a filter to each bucket is mandatory. By default, AutoRABIT will denote an object in a bucket as an entry point, which can be applied by a filter. This is not mandatory, but as a best practice, AutoRABIT recommends applying filters to the entry point object rather than any other object.

The **entry object** is selected by default, and the user can apply a filter. The entry object is denoted by **“E”**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FdVHrYuZcXvhEyLN3ZCAE%2Fimage.png?alt=media&#x26;token=11d2cd58-a3c8-406d-9b51-f1c3b2a7d721" alt=""><figcaption><p>Entry Object </p></figcaption></figure>

**Applying the Filters**

Apply the filter(s) using the steps as shown below:

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FkVgURWR3Pihia9F5Z7k9%2Fimage.png?alt=media&#x26;token=8de3bbc0-d67c-44a1-ae7f-5e2bfdbcf019" alt=""><figcaption><p>Applying the Filters</p></figcaption></figure>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fo829U2zitHX7CmQ3cz36%2Fimage.png?alt=media&#x26;token=177a67ca-d287-48aa-9f27-3e28f046052f" alt=""><figcaption><p>Filter Selection</p></figcaption></figure>

Click **Add**.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Ft7hoqJXezb7D1W4hmgUP%2Fimage.png?alt=media&#x26;token=f18fc7d5-51f7-4a77-b906-b4284ec930d5" alt=""><figcaption><p>Add the Filter</p></figcaption></figure>

The filter query is added and displayed in the filter box. You can edit the query if any modification is required. Nevertheless, multiple queries can be added based on your requirements. **Validate** your query to see whether the query entered is stable. Additionally, you'll be able to view several records that will get fetched.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2Fw1xW0UZgOizgc965ZF07%2Fimage.png?alt=media&#x26;token=c1305089-a827-42be-ae40-d4c4b2de6bd1" alt=""><figcaption><p>Validate Your Query</p></figcaption></figure>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FqMSSNi3IiYkDgQhskmr6%2Fimage.png?alt=media&#x26;token=54f246ac-16d2-497f-bc67-f8b3b61bffc7" alt=""><figcaption><p>Success Notification</p></figcaption></figure>

{% hint style="info" %}
**Important Note:**

1. All records that get fetched will be in order by "ASC nFORCE\_\_lookupKey\_\_c." Nevertheless, if "nFORCE\_\_lookupKey\_\_c" is unavailable, then using order by "ASC Id," the records will be fetched.
2. For the **Attachment** object, the filter cannot be applied.
   {% endhint %}

You can also use the **Query Editor** to execute an SOQL query on the selected Source Org. Results are displayed in a **Query Results** grid.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FBXmbzAs86AMuRyEEGoVP%2Fimage.png?alt=media&#x26;token=5933d79a-2fcb-42f6-b3a1-7b459d63eb2b" alt=""><figcaption><p>Query Editor</p></figcaption></figure>

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FrFjmO0gyXm6ooorBmHUQ%2Fimage.png?alt=media&#x26;token=c63b5f43-23b0-415a-b98d-b0cca9ffae3b" alt="" width="563"><figcaption><p>Query Results</p></figcaption></figure>

Similar steps are to be followed for objects in other buckets as well.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FMmVibYRxOdD7vxTMTHTJ%2Fimage.png?alt=media&#x26;token=4e194962-8fa2-45c7-89c5-5bfa2cfd169d" alt=""><figcaption><p>Selecting Additional Objects</p></figcaption></figure>

Once done, click **Next** to proceed to the **Preview and Save** screen.

{% hint style="info" %}
**Important Note:**

1. If your nCino objects include an Attachment object, users must confirm whether they want to fetch the Attachment dataset.
2. Check the number of attachments pulled for the job once the attachment object is selected for the data deployment. For each API call, Salesforce returns at least one and a maximum of five attachments based on the size of the attachments. More APIs calls will get triggered for more attachments, which may result in the APIs limit being exceeded and the application reporting an error.
   {% endhint %}

#### Preview and Save <a href="#preview-and-save" id="preview-and-save"></a>

This is the summary page for the Feature Migration template you're about to create. You can view the feature details and filters you have applied for the last time before the template is created. Any change log information that needs to be added can be mentioned in the **Change Log** box.

<figure><img src="https://1912836914-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9vAxMuDrkUkB4OXlH9CL%2Fuploads%2FE7L5OEMT5XHXXuSeA9U5%2Fimage.png?alt=media&#x26;token=e7c7aa12-c22f-4ab4-becb-48e9e131d36c" alt="" width="563"><figcaption><p>Summary Page</p></figcaption></figure>

{% hint style="info" %}
**Important Note:** **Related List** section will display only if the **Attachment** object is part of the Feature Migration Template.&#x20;
{% endhint %}

Click **Save,** and you will be redirected to the [Feature Migration Summary](https://knowledgebase.autorabit.com/product-guides/arm/arm-features/ncino/feature-migration/feature-migration-summary-page) screen, where you can track your template recently created.
