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 astxtInput1) 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, holdinglblFormTitle,btnSubmit,btnCanceland a label and input per field, such aslblTitleandtxtTitle. Two columns addconLeftandconRight. - 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;conSectionsScrollholdsconSection1,conSection2and so on, andconFooterholdsbtnSubmitandbtnCancel. There is no Patch panel and nothing for App OnStart: each section'sbtnSection1Completebutton sets the global variablesvarSection1CompleteandvarSection1Editingitself.
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, anddrpStatus.Selected, a whole record. On Classic Controls change them to.Textand.Selected.Valueas above. The Multi-Step generator switches between.Textand.Valuefor you. - The Quick Patch formula ends with
Reset(containerMain). No control by that name exists in the YAML (the root isconModalItems), 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
conLeftandconRightand 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.btnSubmitstays 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
conModalItemsand add its value to the Patch by hand.
Related
Open the tool at Form Builder. Related guides: PowerFX Toolkit and Modals.