Skip to content

Form Builder for Power Apps

The Form Builder is a tool, not a component. You list the fields a form needs and it writes the YAML for every label, input and button, plus the Patch formula that saves the values. The Quick Form Builder makes a one-page form; the Multi-Step Form Builder makes sections that appear one after another and can branch on a dropdown answer.

What it makes

  • Quick Form Builder (/library/form-builder/quick): sidebar tabs Fields and Settings. Add Fields has three buttons, Text Input, Dropdown and Date Picker. Each field has a Label, a Variable (the control name, such as txtInput1) and a Field Width switch, Full Width or Half Width; drag the handle to reorder. Settings holds Form Title, Data Source and Layout Columns, 1 Column or 2 Columns.
  • Quick output on the Generated Code tab: a Component YAML panel with Copy YAML and a Style select (Classic Controls or Modern Controls), and a Patch Formula panel with Copy Formula. The YAML is one container, conModalItems, holding lblFormTitle, btnSubmit, btnCancel and a label and input per field, such as lblTitle and txtTitle. Two columns add conLeft and conRight.
  • Multi-Step Form Builder (/library/form-builder/multi-step): sidebar tabs Sections and Settings. Each section has a Section Title, a Show When choice (Always visible, When section is completed, or When field equals value, which branches on a Dropdown from an earlier section) and its own Text, Dropdown and Date fields. Dropdowns here get an Options (JSON array) box. Settings holds Form Title, Data Source and a Parallel Mode switch.
  • Multi-Step output: one Component YAML panel with Copy YAML and the same Style select. The root is conMultiStepForm; conSectionsScroll holds conSection1, conSection2 and so on, and conFooter holds btnSubmit and btnCancel. There is no Patch panel and nothing for App OnStart: each section's btnSection1Complete button sets the global variables varSection1Complete and varSection1Editing itself.

To paste the YAML into Power Apps Studio, follow Getting Started.

Who can use it

Anyone can open either builder and design a form, signed in or not; the code stays visible. Copy YAML and Copy Formula need an Ultra, Team or Lifetime plan; on a free or Components account they open the pricing popup instead.

After you paste

The Quick YAML leaves the OnSelect of btnSubmit empty; put the Patch formula there. This is the output for the default form, corrected for Classic Controls (see Good to know):

Patch(
    SharePointList,
    Defaults(SharePointList),
    {
        Title: txtTitle.Text,
        Status: drpStatus.Selected.Value,
        DueDate: datDueDate.SelectedDate
    }
);
Notify("Success", NotificationType.Success);
Reset(txtTitle); Reset(drpStatus); Reset(datDueDate)

Put this in the OnSelect of btnCancel to clear the inputs without saving:

Reset(txtTitle); Reset(drpStatus); Reset(datDueDate)

In the Multi-Step YAML, btnSubmit already has an OnSelect: a Patch line starting with //, then Set and Reset lines that restart the form. Once the column names match your list, remove the two slashes so the first line reads as below:

Patch(SharePointList, Defaults(SharePointList),
    {FullName: txtFullName.Text, RoleType: drpRoleType.Selected.Value,
     EmployeeID: txtEmployeeId.Text, Department: drpDepartment.Selected.Value,
     CompanyName: txtCompanyName.Text, ContractEndDate: datContractEnd.SelectedDate});

Good to know

  • The Style select swaps Classic controls for Modern ones and with them the property names. The Quick Patch formula always writes txtTitle.Value, the Modern property, and drpStatus.Selected, a whole record. On Classic Controls change them to .Text and .Selected.Value as above. The Multi-Step generator switches between .Text and .Value for you.
  • The Quick Patch formula ends with Reset(containerMain). No control by that name exists in the YAML (the root is conModalItems), so reset each input instead.
  • The Quick builder has no options editor; every new Dropdown pastes with Items ["Option 1", "Option 2"]. Change Items in Power Apps Studio, or use the Multi-Step builder's Options (JSON array) box.
  • Field Width only applies with 1 Column, where two Half Width fields share a line. With 2 Columns the fields alternate between conLeft and conRight and the width is ignored.
  • A branching section's Visible property reads the dropdown directly: varSection1Complete And drpRoleType.Selected.Value = "Employee". Parallel Mode shows the non-branching sections from the start; branching ones still wait for the answer. btnSubmit stays disabled until every visible section is marked complete.
  • Only text, dropdown and date fields exist. For toggles, ratings or file pickers, paste a component from Input Fields or Uploads into conModalItems and add its value to the Patch by hand.

Open the tool at Form Builder. Related guides: PowerFX Toolkit and Modals.

Form Builder for Power Apps | PowerLibs