Font Size:
Ask Joget AI

Form Composer

Form Composer Overview

The Form Composer is built into the Joget Form Builder. Instead of dragging fields and clicking through property panels, you describe what you need, and the composer builds it for you.

Everything it produces is standard Joget form configuration — the same output as the visual builder. No code.  Every form it builds is immediately editable in the builder.

One thing that makes it different from most AI builders: it reads the live component schema from your Joget instance. That means it knows every field type you have installed, including custom and third-party plugins, without any additional setup.

Getting Started

Open any form in the Form Builder. The composer panel is available on the bottom-right of the builder.

Two ways to start:

Describe it: type what you want. Fields, layout, requirements. The composer builds the structure.

Show it: upload a screenshot of an existing form, a wireframe, or a hand-drawn sketch. The composer replicates it as a Joget form.

Try this as your first prompt:

Build a clean, visually appealing health insurance form with comprehensive fields. Include clear placeholders, relevant icons, helpful hints, and make important fields mandatory where needed so the form is easy to understand and complete. Keep the layout intuitive and well-structured, with proper grouping, validation, and a polished, user-friendly feel.

Two Modes of Composing

Targeted Edit

Click any field or section on the form canvas. A composer prompt box appears directly on that component. Type your instruction and it applies the change to that field or section only — nothing else on the form is touched.

Use this when you want to:

  • Change a specific field's label, placeholder, or properties
  • Adjust styling on one section or column
  • Make one field read-only or mandatory
  • Swap one field type for another

Full Form Composition

Open the composer chat panel and describe what you want at a form level. Use this for bigger changes or building from scratch.

Use this when you want to:

  • Build a form from a description or image
  • Add a new section with multiple fields
  • Restructure the layout across the whole form
  • Make changes that span multiple fields at once
Tip
Selecting an element or section is primarily intended to enable faster, more targeted edits. However, the Composer is capable of interpreting broader intent beyond the selected component. It can create new sections, add fields, and position them appropriately within the form structure. As such, even if an instruction is applied to a non-ideal field or section, the Composer will still process the request intelligently and apply the changes in the most relevant context.

Reviewing Composer Output

After the composer runs, three options appear at the bottom of the panel.

Apply: saves the change to your form. Done.

Cancel: discards everything. The form goes back exactly to how it was before.

Nothing is permanent until you hit Apply.

What You Can Build

Form structure

The Composer can create and modify full forms based on simple prompts. You can:

  • Build forms from scratch, text descriptions, or images/screenshots
  • Create sections with single or multi-column layouts
  • Add, remove, reorder, and update fields
  • Apply styling to sections and fields (background, borders, spacing, labels, typography)

The Composer automatically organizes fields into logical sections and layouts based on context.

Fields

The Composer supports all field types available in your Joget Form Builder palette, including Basic, Custom, Enterprise, and Marketplace plugins.

You can describe fields naturally, and the Composer will map them to the appropriate components.

Some configurations require more explicit instructions to ensure accurate behavior, so being specific in your prompt will improve results and reduce the need for manual adjustments. Additionally, certain features, such as conditional visibility (showing or hiding fields or sections based on other field values), are not currently supported through the Composer and must be configured manually in the Form Builder (see Section 7).

Prompting Guide

To get the best results, focus on clarity and completeness in your prompt. The Composer performs best when the intent, structure, and requirements are clearly described upfront.

Describe the outcome, not just the field: Instead of asking for a field, describe how it should behave, including validation, formatting, default values, and constraints

Bad: “Add a salary field.”

Good: “Add a Salary field. Store it as a number, show 2 decimal places, include AED prefix with thousand separators, and make it mandatory.”

Be specific where it matters: The level of detail in your prompt directly impacts the quality of the output.

Bad: “Add a leave type dropdown.”

Good: “Add a Leave Type dropdown with options Annual, Sick, Emergency, and Unpaid. Make it required and include a placeholder ‘Select leave type’.”

Provide full context in a single prompt: When creating a new form, describe the structure, fields, and key requirements together to get a more complete result.

Bad: “Add employee details form” (followed by multiple small prompts)

✔ Good: “Build an Employee Details form with fields for Name, Email, Department, and Date of Joining. Group them in a single section, make all fields required.”

Add advanced logic with clear instructions: For configurations such as data loading or dependent fields, include all necessary details so the Composer can configure them correctly.

Bad: “Load departments from another form.”

Good: “Add a Department dropdown that loads options from the department form. Use dept_id as the value, dept_name as the label, and include a blank first option.

Iterate with targeted refinements:  If adjustments are needed, refine specific parts of the form instead of restarting.

Bad: “Redo the whole form.”

Good: “Update the Salary field to include currency formatting, make it mandatory, and add helper text ‘Enter monthly salary in AED’.”

Current Behaviour & Tips

These are known behaviours as of April 2026 based on testing across all form component types. Where something does not work through the composer, the manual path is noted.

Validators do not apply through the composer

The composer can identify the right validator class and properties, and will tell you it has applied them. The validators do not get reflected in the form. This is consistent across all validator types — DefaultValidator, DuplicateValueValidator, MultiFormValidator, NumberValidator, PasswordValidator, BeanShellValidator, and JdbcValidator.

What to do: Build your form with the composer, then configure validators manually. Open the field, go to the Validators tab in the properties panel, and set them there.

Visibility conditions are not supported

Conditional sections — showing or hiding a section based on another field's value — do not work through the composer. The correct Joget pattern uses visibilityControl and visibilityValue properties on the Section element. The composer does not reliably produce this.

What to do: Build the form structure with the composer, then add visibility conditions manually on each Section in the Form Builder.

Hash variables need the exact format on the first prompt

If you describe what you want without giving the hash variable format, the composer often produces an incorrect format. For example, {currentUser:email} instead of #currentUser.email#.

What to do: Always include the exact hash variable format in your prompt. See the table in Section 6.

Complex nested configurations need detailed prompts

FormOptionsBinder, section-level binders, and post-processors work but need explicit instructions. A short prompt will get you part of the way. A detailed prompt that spells out every property gets you the full configuration.

For FormOptionsBinder, always include: form ID, form name, table name, value column, label column, and whether you need a blank first option.

Dependent forms must exist first

If you ask the composer to configure a dropdown that loads from another form, that source form must already exist in your Joget app. The composer wires the binder — it does not create the source form. Build your lookup or reference forms first, then use the composer to connect them.

Prompt Playbook

Use Case

Prompt

Text Field

Add an Employee Name field. Make it required, limit to 100 characters, add a placeholder “Enter full name as per ID”, include a user icon, and helper text “No initials, full legal name required”.

Currency + Formatting

Add a Salary field. Store as a number, enforce 2 decimal places, include AED prefix, apply thousand separators, prevent negative values, make it required, and add helper text “Enter monthly gross salary”.

Dropdown (Fully Configured Static)

Add a Leave Type dropdown with options Annual, Sick, Emergency, and Unpaid. Make it required, include a placeholder “Select leave type”, set the default to Annual, and display as a clean select box with an icon.

Dropdown (FormOptionsBinder Full)

Add a Department dropdown that loads options from the department form, where form ID is department, table name: app_fd_department. Use dept_id as id, dept_name as label, include a blank first option, sort by dept_name ascending, make it required, and enable caching if available.

Multi-Level Cascade

Add Country, State, and City dropdowns. Enable AJAX cascading so State depends on Country and City depends on State. Use parent field IDs correctly, enable useAjax, and ensure values update dynamically.

Date Picker (Strict Rules)

Add a Date of Birth field. Restrict future dates, allow year dropdown selection, enforce minimum age of 18 years, set display format dd/MM/yyyy, and include helper text.

Linked Dates (Full Logic)

Add Start Date and End Date fields side by side. Both required: disable weekends for Start Date, ensure End Date is always after Start Date, prevent same-day selection if needed, and include helper text explaining constraints.

Text Area (Controlled Input)

Add a Reason field as a textarea. Make it required, set max length to 500 characters, include a placeholder “Provide detailed explanation”, and helper text guiding expected input.

File Upload (Strict)

Add a Supporting Documents upload field. Allow only PDF and image formats, restrict file size to 5MB, allow multiple uploads, and display helper text “Upload relevant supporting files only”.

Image Upload (Profile Style)

Add a Profile Picture upload field. Allow image formats only, enforce max size 2MB, show preview if supported, and make it optional and crop it to 250px.

Grid (Structured + Validation)

Add a grid for dependent details with columns Name, Relationship, and Age. Make Name and Relationship required, Age numeric with range validation, allow add/remove rows, and enforce a minimum of 1 row.

Spreadsheet (With Logic)

Add a spreadsheet grid for expense entries with columns Item, Quantity, Unit Price, and Total. Configure numeric columns, calculate Total as Quantity × Unit Price, allow row addition/removal, and validate required fields.

Section + Layout (Structured)

Create a Personal Details section with a two-column layout. Add Name, Email, and Phone fields, align fields properly, apply consistent spacing, and ensure clean label styling.

Multi-Section (Enterprise Form)

Build an Employee Onboarding form with sections: Personal Details, Job Details, Documents, and Emergency Contacts. Organize fields logically, use multi-column layout where needed, and ensure consistent styling across sections.

UX + Styling 

Improve the form UI with consistent spacing, aligned labels, subtle section backgrounds, icons for key fields, clear required indicators, and helper text across fields.

or


Improve the entire form UI to feel like a polished product. Ensure consistent spacing, alignment, icons, helper text, section separation, and visual hierarchy across all sections.

Full Form (Production-Level One Shot)

Build a Leave Request form with Employee Name, Leave Type, Start Date, End Date, and Reason. Place date fields side by side, make all fields required, restrict weekends for Start Date, ensure End Date is after Start Date, include placeholders, icons, helper text, and clean section layout.

Custom Section Header

Build a Training Feedback form with multiple sections and rating questions (1–5). Do not use the default section headers. Instead, remove them and create custom section headers using HTML with a title, icon, and a thin horizontal divider line underneath.

Ensure the header spans full width, aligns cleanly with the form grid, and maintains consistent spacing between sections. Use #09403B as the primary accent color. Keep rating inputs as standard form elements, aligned horizontally with equal spacing, and focus on a clean, structured survey-style layout.

Refinement (Precise Update)

Update the Salary field to enforce numeric formatting, add AED prefix, apply thousand separators, make it mandatory, and include helper text.

Targeted UX Refinement

Improve only the “Personal Details” section by adding icons, placeholders, better spacing, and clearer labels without changing other sections.

Minimalist Corporate Theme (Clean + Neutral)

Build an Employee Information form with a minimalist corporate design. Use a neutral color palette with a single accent color (e.g., #2F3E46). Keep backgrounds clean, avoid heavy borders, and rely on spacing and alignment for structure.

Use a consistent grid layout, subtle section separation, clear typography hierarchy, icons, and placeholders. Ensure the form feels lightweight, professional, and distraction-free with strong readability and clean alignment across all fields.

Video Tutorial

 

Created by Debanraj Ravindran Last modified by Debanraj Ravindran on Jul 10, 2026