# Configuring Custom Pages

Vault Custom Pages allow developers to extend the Veeva Vault Platform by adding custom UI to Vault. Learn more about <a class="external-link " href="https://developer.veevavault.com/custompages" target="_blank" rel="noopener">Custom Pages in the Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.

You can configure Custom Pages in your Vault from **Admin > Configuration > Pages** or by using MDL.

Once you've [configured a Custom Page][1] in Vault, you can [display your page in a custom tab][2] or [create a page link][3] that navigates to it when a user views, creates, edits, or copies an object record.

##  How to Configure Custom Pages {#Configure_Custom_Pages}

To create a Custom Page from the Vault UI, you must first write the client code and deploy a client code distribution to your Vault. Learn more in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Developing_Client_Code" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.

You can optionally create and deploy Vault Java SDK server code to exchange Vault data with your Custom Page. Configuring the client and server code for the Custom Page links them and allows them to send data to each other.

To configure a new Custom Page in the Vault UI:

1. Navigate to **Admin > Configuration > Pages** and click **Create**.
2. Enter a **Label** for your Custom Page. This will be the HTML page title.
3. Optional: Enter a **Description** for the page.
4. Select a **Distribution** for this Custom Page. You must first upload a client code distribution to Vault containing the client code for your page. Learn more in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Client_Code_Distributions" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.
5. Optional: Select a Vault Java SDK **Page Controller** for this Custom Page. You must first upload and deploy the custom server code to Vault containing this `Pagecontroller`. Learn more in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Developing_Server_Code" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>. 
6. Select whether the **Vault Header** should be _Visible_ or _Hidden_ on the Custom Page.
7. Click **Save**. 

## How to Configure Custom Page Tabs {#Configure_Custom_Page_Tabs}

You can create a custom tab to display a Custom Page from your Vault's navigation bar. 

To access a Custom Page from a tab, users must have _View_ permission on both the tab and the Custom Page.

You can configure a tab using MDL or the Vault Admin UI. Learn more about configuring tabs to display Custom Pages in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Creating_Tabs" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.

To create a tab to display a Custom Page:

1. Navigate to **Admin > Configuration > Tabs** and click **Create**.
2. Enter a **Label** for the tab.
3. Select the **Tab Type** of **Page**.
4. Select the **Page** component to display in this tab.
5. Optional: Add path parameters to the prepopulated **URL**. The URL includes the `{{Page.url_path_name}}` token that resolves to the Custom Page path. Learn more in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Creating_Tabs" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.
6. Click **Save**.

## How to Configure Page Links to Custom Pages {#Configure_Custom_Page_Links}

You can create a page link to navigate users to your Custom Page when they perform an action such as viewing an object record.

To access a Custom Page from a page link, users must have _View_ permission on the Custom Page. A user's _Object_ permissions determine access to the object record actions configured with a page link. 

You can configure a page link using MDL or the Vault Admin UI. Learn more about configuring page links to Custom Pages in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Creating_Page_Links" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.

To create a page link to a Custom Page:

1. Navigate to **Admin > Configuration > Page Links** and click **Create**.
2. Enter a **Label** for the page link.
3. Optional: Enter a **Description**. This appears in the _Page Links_ list view.
4. Select the **Page Mode** to determine which user action is overridden to link to your Custom Page.
5. Select the **Object** to which the page link will apply.
6. Select the **Link Type** of **Page**.
7. Select the **Page** component to navigate to.
8. Optional: Add path parameters to the prepopulated **URL**. The URL includes the `{{Page.url_path_name}}` token that resolves to the Custom Page path. Learn more in the <a class="external-link " href="https://developer.veevavault.com/custompages/#Creating_Page_Links" target="_blank" rel="noopener">Developer Portal<i class="fa fa-external-link" aria-hidden="true"></i></a>.
9. Click **Validate**. Vault displays an error if your URL is invalid.
10. Click **Save**.

 [1]: #Configure_Custom_Pages
 [2]: #Configure_Custom_Page_Tabs
 [3]: #Configure_Custom_Page_Links
