> For the complete documentation index, see [llms.txt](https://docs.doku.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.doku.com/subscription-and-billing/flexibill/member-center/form-management.md).

# Form Management

{% hint style="info" %}
This page covers **Form Management** — creating and managing custom data collection forms for member groups. For registering members → [Member Management](/subscription-and-billing/flexibill/member-center/member-management.md)
{% endhint %}

**Form Management** is the custom data layer of Member Center. It allows merchants to design structured forms that capture business-specific information from members — beyond the standard name, email, and phone fields that all members share.

Forms are organized into **Categories** (sections) and **Details** (individual fields). Each Form is linked to one or more **Groups** in Member Management, so that every member in that Group is associated with the right set of custom data fields for their billing context.

## Key Concepts

#### Form

A Form is a named template of data fields. It is the top-level container. Each Form is identified by a **Form ID** (system-generated) and a **Form Name** (merchant-defined). A Form contains one or more Categories.

*Example: "Aerobic Class Intake Form", "New Student Registration Form", "Tenant Profile Form".*

#### Category

A Category is a named section within a Form that groups related Detail fields together. Categorizing data points makes the form easier to read and fill out — especially when a Form has many fields.

*Example: A "New Student Registration Form" might have Categories such as "Personal Information", "Emergency Contact", and "Academic Background".*

#### Detail

A Detail is an individual data field within a Category. For each Detail, merchants configure:

<table><thead><tr><th width="128.20703125">Property</th><th>Description</th></tr></thead><tbody><tr><td><strong>Detail Name</strong></td><td>The label shown to the member when filling out the form.</td></tr><tr><td><strong>Type</strong></td><td>The input type — determines how the field is rendered and what kind of value it accepts. Three types are available: <strong>Form</strong>, <strong>Upload</strong>, and <strong>Multiple Choice</strong>.</td></tr><tr><td><strong>Criteria</strong></td><td>The specific sub-type or format rule within the selected Type. Options depend on which Type is chosen.</td></tr><tr><td><strong>Required</strong></td><td>Whether the field must be completed before the form can be submitted. Check the box to make the field mandatory; leave unchecked to make it optional.</td></tr></tbody></table>

#### Detail Types and Criteria

**📝 Form**

The **Form** type renders a free-text input field. Use it for any data that members enter as written text — names, IDs, notes, numbers, or mixed content.

Select a **Criteria** to constrain what characters the field accepts:

<table><thead><tr><th width="145.26171875">Criteria</th><th>Accepted Input</th><th>Example Use</th></tr></thead><tbody><tr><td><strong>Alphabet</strong></td><td>Letters only (A–Z, a–z). Numbers and special characters are not allowed.</td><td>Member's full name, city of birth, emergency contact name.</td></tr><tr><td><strong>Numeric</strong></td><td>Numbers only (0–9). Letters and special characters are not allowed.</td><td>Student ID number, unit floor number, age, meter reading.</td></tr><tr><td><strong>Alphanumeric</strong></td><td>Both letters and numbers. Special characters are not allowed.</td><td>Reference code, license plate, mixed identifier fields.</td></tr></tbody></table>

*Example: A "Student ID" field — Type: Form, Criteria: Numeric, Required: Yes.*

***

**📎 Upload**

The **Upload** type renders a file attachment field. Use it when members need to submit a document or image as part of their profile data.

Select a **Criteria** to specify the accepted file category and format:

<table><thead><tr><th width="117">Criteria</th><th width="171.93359375">Accepted Formats</th><th>Example Use</th></tr></thead><tbody><tr><td><strong>Image</strong></td><td>PNG, JPEG</td><td>Profile photo, signed consent form scan, ID card photo.</td></tr><tr><td><strong>Document</strong></td><td>PDF, DOCX, XLSX</td><td>Medical clearance letter, signed agreement, enrollment form.</td></tr></tbody></table>

{% hint style="info" %}
When a member submits an Upload field, the file is stored and linked to their member record. The merchant can access the uploaded file from the member's profile in Member Center.
{% endhint %}

*Example: A "Doctor Clearance Letter" field — Type: Upload, Criteria: Document (PDF, DOCX, XLSX), Required: Yes.*

***

**☑️ Multiple Choice**

The **Multiple Choice** type renders a selection field with predefined options. Merchants define the list of choices, and members select from them. Use it for standardized, controlled-vocabulary fields where free text would be inconsistent.

Select a **Criteria** to specify how the options are displayed and how many selections are allowed:

<table><thead><tr><th width="133.84765625">Criteria</th><th>Behavior</th><th>Example Use</th></tr></thead><tbody><tr><td><strong>Checkbox</strong></td><td>Displays options as checkboxes. Members can select <strong>more than one</strong> option simultaneously.</td><td>Skills or interests (multi-select), applicable programs, dietary preferences.</td></tr><tr><td><strong>Radio Button</strong></td><td>Displays options as radio buttons. Members can select <strong>only one</strong> option.</td><td>Fitness level (Beginner / Intermediate / Advanced), gender, membership tier.</td></tr><tr><td><strong>Select Box</strong></td><td>Displays options in a dropdown list. Members can select <strong>only one</strong> option from the dropdown.</td><td>City, country, class session time, preferred language.</td></tr></tbody></table>

*Example: A "Fitness Level" field — Type: Multiple Choice, Criteria: Radio Button, Options: Beginner / Intermediate / Advanced, Required: Yes.*

***

#### Required vs. Optional

Each Detail can be independently set as **Required** or **Optional** regardless of its Type or Criteria.

<table><thead><tr><th width="254.79296875">Setting</th><th>Behavior</th></tr></thead><tbody><tr><td><strong>Required</strong> (checkbox ticked)</td><td>The member cannot submit the form without filling in this field. A visual indicator marks it as mandatory on the member-facing form.</td></tr><tr><td><strong>Optional</strong> (checkbox unticked)</td><td>The field is displayed but the member may leave it blank. The form can still be submitted without a value in this field.</td></tr></tbody></table>

Set a field as Required when the data is essential for billing or operational purposes — for example, a unit number in a property management context or an emergency contact in a fitness intake form. Leave fields Optional when the information is useful but not blocking.

***

## How to Create a Form

{% stepper %}
{% step %}

#### Log In

Log in to the DOKU Dashboard using a verified corporate or international business account.
{% endstep %}

{% step %}

#### Navigate to Member Center — Form Management

From the left navigation menu, select **FlexiBill → Member Center**. On the Member Center page, click the **View Form** button to open the Form Library.
{% endstep %}

{% step %}

#### Open the Add Form Dialog

Click the **+ Add Form** button on the top right of the Form Library page.

<figure><img src="/files/3pszeFqHxnpBB6iWvHXO" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/R86Nmu8wuftDVUhhVuly" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Enter a Form Name

Type a descriptive name for the Form in the **Form Name** field (maximum 256 characters). Choose a name that reflects the billing context or group this Form is designed for.

*Example: "Pilates Class — Member Intake", "Academic Year 2025 Student Form".*
{% endstep %}

{% step %}

#### Add a Category

Enter a **Category Name** and select a **Category Type** from the dropdown. Then click **+ Add Detail** to begin adding fields to this Category.

{% hint style="info" %}
**Category** groups related fields into a named section. Add multiple Categories to structure a long form into logical blocks.
{% endhint %}
{% endstep %}

{% step %}

#### Configure Details

For each Detail field within the Category, fill in:

* **Detail Name** — The field label (e.g., "Fitness Level", "Emergency Contact Phone").
* **Type** — Choose from **Form**, **Upload**, or **Multiple Choice**. The Type determines how the field is rendered and what kind of input it accepts.
* **Criteria** — Select the specific sub-type or format rule for the chosen Type (e.g., Alphabet / Numeric / Alphanumeric for Form; Image / Document for Upload; Checkbox / Radio Button / Select Box for Multiple Choice).
* **Required** — Check the box to make this field mandatory. Leave unchecked to make it optional.

To add more Details to the same Category, click **+ Add Detail** again.

{% hint style="info" %}
See [Detail Types and Criteria](#detail-types-and-criteria) below for a full explanation of each Type and its available Criteria options.
{% endhint %}

{% hint style="info" %}
Drag the handle (≡) on the left of each Detail row to reorder fields within a Category.
{% endhint %}
{% endstep %}

{% step %}

#### Add More Categories *(If Needed)*

Click **+ Add Category** at the bottom of the form to add another section. Repeat the Category and Detail configuration for each section.
{% endstep %}

{% step %}

#### Save the Form

Click **Add Form** to save. The Form is now listed in the Form Library and is available to be linked to Groups in Member Management.
{% endstep %}
{% endstepper %}

***

## Form Library

The Form Library is the central list of all Forms created by the merchant. Access it by clicking **View Form** on the Member Center page.

<figure><img src="/files/RWMi4tcbw5JoJVvarJEO" alt=""><figcaption></figcaption></figure>

Each card in the Form Library displays:

<table><thead><tr><th width="170.94140625">Property</th><th>Description</th></tr></thead><tbody><tr><td><strong>Form ID</strong></td><td>System-generated unique identifier for the Form.</td></tr><tr><td><strong>Form Name</strong></td><td>Merchant-defined name of the Form.</td></tr><tr><td><strong>Category count</strong></td><td>Number of Categories (sections) in the Form.</td></tr><tr><td><strong>Detail count</strong></td><td>Total number of Detail fields across all Categories.</td></tr></tbody></table>

#### Searching Forms

Use the **Search Form** bar at the top of the Form Library to search by **Form Name**. The list filters in real time as you type.

#### Viewing a Form

Click the **eye icon (👁)** on any Form card to preview its full structure — all Categories and their Details — without opening the edit view.

### Edit and Delete Forms

To modify an existing Form or remove it from the library, locate the Form card in the Form Library:

* **Edit** — Click the Form name or edit option to open the Form in edit mode. Modify any Category name, Category Type, Detail fields, or field configuration. Save when done.
* **Delete** — Remove the Form from the library.

{% hint style="warning" %}
Deleting a Form that is currently linked to a Group will remove the Form association from that Group. Members in the Group will no longer be associated with the deleted Form's data fields. Review linked Groups before deleting a Form.
{% endhint %}

### Linking a Form to a Group

A Form only becomes active when it is linked to a **Group** in Member Management. Once linked, all members assigned to that Group are associated with the Form's data fields.

To link a Form to a Group:

1. Navigate to **Member Center → Member Management**.
2. Create a new Group or open an existing Group's settings.
3. Select the target Form from the Form dropdown when configuring the Group.
4. Save the Group configuration.

Members subsequently added to that Group — whether individually or via bulk upload — will be associated with the linked Form.

{% hint style="info" %}
When uploading members in bulk using the **With Form** template, the upload file includes columns for the custom Detail fields from the linked Form. Download the correct template from the Upload Data dialog after selecting **With Form** to get the pre-populated column structure.
{% endhint %}

### Example Form Structures

#### Fitness Studio — Class Intake Form

**Form Name:** Aerobic Class Intake

<table><thead><tr><th>Category</th><th width="188.2109375">Detail Name</th><th width="101.62109375">Type</th><th width="229.19921875">Criteria</th><th width="107.4453125">Required</th></tr></thead><tbody><tr><td>Health Information</td><td>Medical Conditions</td><td>Form</td><td>Alphanumeric</td><td>No</td></tr><tr><td>Health Information</td><td>Doctor Clearance Letter</td><td>Upload</td><td>Document (PDF, DOCX, XLSX)</td><td>Yes</td></tr><tr><td>Health Information</td><td>Pregnancy Status</td><td>Multiple Choice</td><td>Radio Button (Yes / No)</td><td>Yes</td></tr><tr><td>Fitness Background</td><td>Current Fitness Level</td><td>Multiple Choice</td><td>Radio Button (Beginner / Intermediate / Advanced)</td><td>Yes</td></tr><tr><td>Fitness Background</td><td>Previous Classes Attended</td><td>Form</td><td>Alphanumeric</td><td>No</td></tr><tr><td>Emergency Contact</td><td>Contact Name</td><td>Form</td><td>Alphabet</td><td>Yes</td></tr><tr><td>Emergency Contact</td><td>Contact Phone</td><td>Form</td><td>Numeric</td><td>Yes</td></tr><tr><td>Emergency Contact</td><td>Relationship</td><td>Form</td><td>Alphabet</td><td>No</td></tr></tbody></table>

#### Education — New Student Registration

**Form Name:** Form Siswa Baru (New Student Form)

<table><thead><tr><th width="119.3828125">Category</th><th width="196">Detail Name</th><th width="103.7890625">Type</th><th width="233.9375">Criteria</th><th width="107.390625">Required</th></tr></thead><tbody><tr><td>Personal Data</td><td>Student ID Number</td><td>Form</td><td>Numeric</td><td>Yes</td></tr><tr><td>Personal Data</td><td>Program</td><td>Multiple Choice</td><td>Select Box (Regular / Extracurricular / Lab)</td><td>Yes</td></tr><tr><td>Personal Data</td><td>Profile Photo</td><td>Upload</td><td>Image (PNG, JPEG)</td><td>No</td></tr><tr><td>Guardian Information</td><td>Parent/Guardian Name</td><td>Form</td><td>Alphabet</td><td>Yes</td></tr><tr><td>Guardian Information</td><td>Guardian Phone</td><td>Form</td><td>Numeric</td><td>Yes</td></tr><tr><td>Academic Background</td><td>Previous School</td><td>Form</td><td>Alphanumeric</td><td>No</td></tr><tr><td>Academic Background</td><td>Scholarship Status</td><td>Multiple Choice</td><td>Radio Button (Yes / No)</td><td>Yes</td></tr><tr><td>Academic Background</td><td>Applicable Support Programs</td><td>Multiple Choice</td><td>Checkbox (KIP / Beasiswa Yayasan / Bantuan Daerah)</td><td>No</td></tr></tbody></table>

#### Property Management — Tenant Profile

**Form Name:** Tenant Profile — Tower A

<table><thead><tr><th width="153.46484375">Category</th><th width="171.5234375">Detail Name</th><th width="108.98828125">Type</th><th>Criteria</th><th width="107.50390625">Required</th></tr></thead><tbody><tr><td>Unit Information</td><td>Unit Number</td><td>Form</td><td>Alphanumeric</td><td>Yes</td></tr><tr><td>Unit Information</td><td>Floor</td><td>Form</td><td>Numeric</td><td>Yes</td></tr><tr><td>Unit Information</td><td>Parking Slot</td><td>Form</td><td>Alphanumeric</td><td>No</td></tr><tr><td>Utility</td><td>Electricity Meter ID</td><td>Form</td><td>Alphanumeric</td><td>Yes</td></tr><tr><td>Utility</td><td>Water Meter ID</td><td>Form</td><td>Alphanumeric</td><td>Yes</td></tr><tr><td>Lease Details</td><td>Signed Lease Agreement</td><td>Upload</td><td>Document (PDF, DOCX, XLSX)</td><td>Yes</td></tr><tr><td>Lease Details</td><td>Lease Duration</td><td>Multiple Choice</td><td>Select Box (6 Months / 1 Year / 2 Years)</td><td>Yes</td></tr></tbody></table>

## Terms & Conditions

* Form Name maximum length: **256 characters**
* Category Name maximum length: **256 characters**
* A Form must have at least **one Category** with at least **one Detail** to be saved
* Forms can be reused across multiple Groups
* Modifying a Form's Detail fields after members have already submitted data does not retroactively change existing member records

## FAQ

<details>

<summary>Can I use the same Form for multiple Groups?</summary>

Yes. A single Form can be linked to more than one Group. This is useful when different segments share the same data requirements — for example, different fitness classes that all use the same intake form structure.

</details>

<details>

<summary>Can I add a new Category or Detail to a Form after it has already been linked to a Group?</summary>

Yes. You can edit a Form at any time to add, modify, or remove Categories and Details. Changes take effect for new data entries going forward. Existing member records that were saved before the change are not retroactively updated.

</details>

<details>

<summary>What is the difference between Category and Detail?</summary>

A **Category** is a named section that groups related fields together — it is a structural container with no data value of its own. A **Detail** is the individual field within a Category where the actual data value is entered (e.g., a text box, a dropdown, a date picker).

</details>

<details>

<summary>What is the difference between the three Detail Types?</summary>

**Form** — A free-text input field where members type a value. The Criteria (Alphabet, Numeric, or Alphanumeric) controls which characters are accepted.

**Upload** — A file attachment field where members submit a file. The Criteria specifies whether the accepted file is an Image (PNG, JPEG) or a Document (PDF, DOCX, XLSX).

**Multiple Choice** — A selection field with predefined options set by the merchant. The Criteria specifies how options are displayed: Checkbox (multi-select), Radio Button (single select), or Select Box (single select via dropdown).

</details>

<details>

<summary>Can I allow members to select more than one option in a Multiple Choice field?</summary>

Yes — use the **Checkbox** Criteria under Multiple Choice. Checkbox fields allow members to select one or more options simultaneously. If only one selection should be allowed, use **Radio Button** or **Select Box** instead.

</details>

<details>

<summary>Can I reorder the fields within a Category?</summary>

Yes. Each Detail row has a drag handle (≡) on its left side. Drag and drop Detail rows to reorder them within a Category while in the form editor.

</details>

<details>

<summary>What happens to member data if I delete a Detail field from an existing Form?</summary>

Deleting a Detail field from a Form removes it from the form going forward. Existing member records that already contain data in that field retain their saved values in the database — but the field will no longer appear in the Form for new entries or when viewing the member's form profile through the standard form view.

</details>

<details>

<summary>Is there a limit to the number of Categories or Details per Form?</summary>

There is no published hard limit on the number of Categories or Details per Form. Design forms to match your business data requirements — but keep usability in mind: shorter, focused forms tend to be completed more accurately than very long ones.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.doku.com/subscription-and-billing/flexibill/member-center/form-management.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
