---
title: "Creating a Custom Application Page Using Form Widgets"
slug: "custom-application-widgets"
description: "Enhance Slate applications with custom widgets for data collection, offering customizable fields, conditional logic, and easy edits via Form Builder."
tags: ["Widgets", "Custom Application Pages", "Slate-Hosted Application"]
updated: 2025-10-03T20:16:39Z
published: 2025-10-03T20:16:39Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.technolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating a Custom Application Page Widget

> [!NOTE]
> 📚 Part of the series **Application Building Phase II:**[**The Slate-hosted Application**](/v1/docs/introduction-to-the-slate-hosted-application)

In Slate, a **form widget**lets the user enter data into one or more fields in a popup.

On the school history page, for example, applicants can enter as many schools as they’ve attended. When they select the *Add Institution,* they’re presented with a popup that lets them enter values for the school’s name, CEEB code, address, level of study, and so on.

You can create your own application form widgets and place them on application pages to collect the information you need from applicants.

![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Application widget.png)

## Application pages that use form widgets

If you’re in a database provisioned from one of our [admissions models](/v1/docs/customizing-your-turnkey-4-year-graduate-admissions-database), you may find a folder in *Forms* called **Slate-Hosted Application Pages.**

Some of the forms in this folder represent entire application pages, while others represent the **widgets**embedded in those pages. These include:

- [Activities/Interests](/v1/docs/custom-interest-page)
- [Courses](/v1/docs/custom-school-history-page)
- [Employment History](/v1/docs/custom-employment-history-page)
- [Recommendations](/v1/docs/reference-overview-getting-started)
- [Relationships](/v1/docs/custom-relationship-page)
- [School Reports](/v1/docs/external-school-report-page)
- [School History](/v1/docs/custom-school-history-page)
- [Sports](/v1/docs/custom-sport-page)

If you don’t see these forms, you can import them using the Suitcase IDs found in the application-page articles in this section.

![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Application form widgets.png)

## When to use application form widgets

Some things to consider when deciding whether you want to create or modify form widgets on your application:

- **Standard and custom fields can be labeled and ordered as desired**, and can appear conditionally.
- **An applicant can add up to 99 responses in an application form widget.** This is recommended if multiple submissions are expected.
- **Use only one application form widget of each type per application.**Widgets will display all records saved on the corresponding data table on the person record. For example, school record information entered in an application form widget to collect high schools attended also appears in a separate application form widget for colleges and universities attended. Instead, one widget should be used to collect all school data in the application.
- **Required fields on custom application widgets.**Unlike [application-page scoped forms](https://knowledge.technolutions.net/docs/custom-application-pages-overview), fields on a custom widget on a custom application page can be configured as Required and will be enforced in the application.

## Step 1: Creating the widget-scoped form

When you [create a form](/v1/docs/creating-a-form), you must set a **scope**for the data collected on that form.

You may have noticed that, in the list of scopes, there is a group called **Page Construction Widgets**. Each of the scopes in this group correspond with a type of form widget.

![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Page construction widget scopes.png)

Let’s go with the **School Widget**as an example. If you select this scope, the data registrants enter in the form fields you create can be mapped to system *School*s**fields.

![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Maps to system school fields.png)

We can repeat this for as many widgets as we need on a given application page.

## Step 2: Creating a form to contain the widget

Next, we create a form of the scope *Slate-hosted application page* to contain the widgets*,*in this example called *Education History.*

On this form, we add a [widget table](/v1/docs/form-palette#widget-table) from the form palette. From the **Widget Form**list, we select the widget form we’ve just created.

![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Add widget table to slate-hosted-application-scoped form.png)

We repeat for as many widget-scoped forms as we created in the previous step.

## Step 3: Collecting data from the widgets

The fields on our application form widgets can be mapped to data on the appropriate tables on the **Profile** **tab**of the person record—in this example, [*Schools*](/v1/docs/person-record-profile-tab#schools).

#### Viewing application widget data in Reader

[Auto PDF](/v1/docs/auto-pdf) **will not render custom fields** from the application form widgets.

You must create a [Data Container](https://knowledge.technolutions.net/docs/data-containers), [Custom PDF](https://knowledge.technolutions.net/docs/custom-pdf), or [Reader portal](https://knowledge.technolutions.net/docs/portals-in-reader) to display a widget’s custom fields in the Reader.
