Development

Power Apps Custom Forms for SharePoint: Complete Step-by-Step Implementation Guide

Transform SharePoint list forms with Power Apps to create dynamic, user-friendly experiences with validation, conditional logic, and custom layouts.

SharePoint Support TeamDecember 20, 202416 min read
Power Apps Custom Forms for SharePoint: Complete Step-by-Step Implementation Guide - Development guide by SharePoint Support
Power Apps Custom Forms for SharePoint: Complete Step-by-Step Implementation Guide - Expert Development guidance from SharePoint Support

Why Customize SharePoint Forms with Power Apps?

Default SharePoint list forms are functional but limited. Power Apps customization unlocks powerful capabilities:

Document lifecycle management from creation to archival
SharePoint document lifecycle management process
  • Conditional visibility: Show/hide fields based on selections
  • Custom validation: Complex business rules enforcement
  • Improved layouts: Multi-column, tabbed, accordion designs
  • Calculated fields: Dynamic values from formulas
  • External data: Pull data from other sources
  • Enhanced UX: Modern, intuitive interfaces

Getting Started with SharePoint Form Customization

Prerequisites

Before customizing forms:

  • SharePoint Online site with list to customize
  • Power Apps license (included with most Microsoft 365 plans)
  • Edit permissions on the list
  • Basic understanding of Power Apps formulas

Creating Your First Custom Form

Step 1: Open Customization

  • Navigate to your SharePoint list
  • Open any item or click "New"
  • Click "Customize form" in the command bar
  • Power Apps Studio opens with default form

Step 2: Understand the Default Form

The auto-generated form includes:

  • SharePointIntegration control (handles data connection)
  • FormMode property (New/Edit/View)
  • Auto-populated data cards for each column
  • Default save and cancel functionality

Basic Form Modifications

Rearranging Fields

  • Drag data cards to reorder
  • Use View > Data sources to see all fields
  • Delete cards you don't need
  • Add new cards from Fields panel

Changing Field Labels

Select the data card label and modify the Text property:

```

"Project Name"

```

Making Fields Required

Set the Required property on the data card:

```

true

```

Implementing Conditional Logic

Conditional Field Visibility

Show fields only when needed:

Scenario: Show "Other" text field when dropdown = "Other"

Set the Visible property:

```

If(DataCardValue_Category.Selected.Value = "Other", true, false)

```

Or simplified:

```

DataCardValue_Category.Selected.Value = "Other"

```

Cascading Dropdowns

Create dependent dropdown lists:

Scenario: Region dropdown filters City dropdown

  • Create Region choice column
  • Create City choice column with all cities
  • Set City dropdown Items property:

```

Filter(Choices(SharePointList.City), Region = DataCardValue_Region.Selected.Value)

```

Dynamic Default Values

Set defaults based on current user or date:

Current user as default:

```

User().FullName

```

Today's date:

```

Today()

```

Calculated default:

```

"PRJ-" & Text(Now(), "YYYYMMDD-hhmmss")

```

Advanced Validation

Custom Validation Rules

Implement complex business rules:

Date range validation:

```

If(

DataCardValue_EndDate.SelectedDate < DataCardValue_StartDate.SelectedDate,

"End date must be after start date",

""

)

```

Budget threshold check:

```

If(

Value(DataCardValue_Budget.Text) > 100000 && IsBlank(DataCardValue_Approver.Text),

"Approver required for budgets over $100,000",

""

)

```

Displaying Validation Errors

Add labels to show validation messages:

  • Add Label control below relevant field
  • Set Text to validation formula
  • Set Color to red for visibility
  • Set Visible to show only when error exists:

```

!IsBlank(Self.Text)

```

Preventing Invalid Submissions

Disable save button when validation fails:

OnSelect of Save button:

```

If(

And(

IsBlank(ValidationError1.Text),

IsBlank(ValidationError2.Text)

),

SubmitForm(SharePointForm1),

Notify("Please fix validation errors", NotificationType.Error)

)

```

Creating Multi-Section Forms

Tabbed Interface

Organize complex forms with tabs:

Step 1: Add tab buttons

Create horizontal button gallery or individual buttons

Step 2: Create tab variable

On each button OnSelect:

```

Set(varActiveTab, "General")

```

Step 3: Set section visibility

Group related data cards in containers, set Visible:

```

varActiveTab = "General"

```

Accordion Sections

Create expandable sections:

  • Add icons and labels for section headers
  • Create expand/collapse variables:

```

Set(varSection1Expanded, !varSection1Expanded)

```

  • Set section visibility to variable value

Integrating External Data

Lookup to Another SharePoint List

Display related data from other lists:

Show customer details from Customer list:

```

LookUp(Customers, ID = Value(DataCardValue_CustomerID.Text))

```

Calling External APIs

Connect to web services:

  • Add Power Automate flow action
  • Configure HTTP connector
  • Call from Power Apps:

```

MyFlow.Run(parameter1, parameter2)

```

Enhancing User Experience

Read-Only Fields

Make fields view-only in edit mode:

DisplayMode property:

```

If(SharePointForm1.Mode = FormMode.New, DisplayMode.Edit, DisplayMode.View)

```

Auto-Save Functionality

Implement periodic auto-save:

  • Add Timer control
  • Set Duration to 60000 (1 minute)
  • Set OnTimerEnd:

```

If(SharePointForm1.Unsaved, SubmitForm(SharePointForm1))

```

Loading Indicators

Show progress during operations:

  • Add loading spinner control
  • Set Visible to loading variable
  • Before long operation:

```

Set(varIsLoading, true)

```

  • After completion:

```

Set(varIsLoading, false)

```

Deployment and Management

Publishing the Form

  • Click File > Save
  • Click "Publish to SharePoint"
  • Verify form appears in list

Version Management

Track and manage form versions:

  • Use meaningful save descriptions
  • Test before publishing
  • Keep backup of working versions
  • Document changes made

Performance Optimization

Keep forms responsive:

  • Minimize data sources
  • Use collections for repeated lookups
  • Defer loading of non-visible sections
  • Limit concurrent connections

Troubleshooting Common Issues

Form Not Saving

Check:

  • Required fields have values
  • Validation rules pass
  • User has edit permissions
  • No formula errors in OnSuccess

Data Not Loading

Verify:

  • SharePointIntegration connected correctly
  • Column names match exactly
  • No permission issues
  • Network connectivity

Slow Form Performance

Optimize:

  • Reduce complex formulas
  • Cache lookup data
  • Minimize control count
  • Test with representative data volumes

Conclusion

Power Apps form customization transforms SharePoint lists from basic data entry into intelligent, user-friendly applications. By implementing conditional logic, validation, and custom layouts, you create forms that guide users through complex processes while ensuring data quality.

Ready to transform your SharePoint forms? Contact our Power Apps specialists for custom form development.

Share this article:

Written by Errin O'Connor

Founder, CEO & Chief AI Architect | Microsoft Press Bestselling Author | 25+ Years Microsoft Ecosystem

Errin O'Connor is a Microsoft Press bestselling author of 4 books covering SharePoint, Power BI, Azure, and large-scale migrations. He leads our SharePoint consulting practice with expertise spanning 500+ enterprise migrations and compliance implementations across HIPAA, SOC 2, and FedRAMP environments.

Need Expert Help?

Our SharePoint consultants are ready to help you implement these strategies in your organization.