Published: January 2, 2026 • 10 min read • By UPLYNK
Patch vs SubmitForm: Which One Should You Use in Power Apps?
When building canvas apps in Power Apps, one common question every maker and developer faces is: Should I use Patch() or SubmitForm() to save data?
Both are used to write data back to a data source, but they serve very different purposes. Choosing the wrong one can lead to performance issues, complex formulas or poor user experience.
In this blog, we’ll break down Patch vs SubmitForm, explain when to use each and help you decide the right approach for your app.
What Is SubmitForm?
SubmitForm() is used with Edit Forms in Power Apps. It submits all the changes made in a form control to the connected data source.
Key Characteristics
- Works only with Form controls
- Automatically handles Create & Update
- Built-in validation
- Simple and beginner-friendly
Example
SubmitForm(EditForm1)
Once submitted, Power Apps manages:
- Required field validation
- Data type checks
- Error handling (via OnFailure)
- Success actions (via OnSuccess)
What Is Patch?
Patch() is a low-level function used to create or update records directly in a data source without a form.
Key Characteristics
- Works with any control or variable
- Full control over data
- Supports partial updates
- Ideal for complex scenarios
Example
Patch(
Employees,
Defaults(Employees),
{
Name: txtName.Text,
Email: txtEmail.Text,
Department: ddDepartment.Selected.Value
}
)
Patch vs SubmitForm: Key Differences
| Feature | SubmitForm | Patch |
|---|---|---|
| Requires Form Control | Yes | No |
| Beginner Friendly | Very easy | Moderate |
| Validation Handling | Automatic | Manual |
| Partial Updates | No | Yes |
| Multiple Data Sources | No | Yes |
| Performance Optimization | Limited | Better |
| Complex Logic Support | Limited | Excellent |
When Should You Use SubmitForm?
Use SubmitForm when:
- You are using a simple form-based UI
- You want built-in validation
- You’re building CRUD apps quickly
- You want less Power Fx code
Ideal Use Cases
- Employee onboarding form
- Feedback or survey apps
- Simple Dataverse or SharePoint forms
- Beginner or low-maintenance apps
When Should You Use Patch?
Use Patch when:
- You need more control
- You want to update specific fields only
- You’re saving data from multiple screens or controls
- You need better performance
Ideal Use Cases
- Multi-step wizards
- Large datasets
- Background auto-save
- Complex business rules
- Updating multiple tables at once
Performance Considerations
From a performance standpoint:
- SubmitForm() sends the entire record
- Patch() can update only required fields
For apps with:
- Large Dataverse tables
- High user concurrency
- Mobile users
👉 Patch is usually the better choice
Error Handling Comparison
SubmitForm
- Uses OnSuccess and OnFailure
- Limited customization
Patch
- Can be wrapped in IfError()
- Full control over error messages
IfError(
Patch(Employees, empRecord, { Status: "Active" }),
Notify("Error saving record", NotificationType.Error)
)
Can You Use Both Together?
Yes, many advanced apps do.
Common Pattern
- Use SubmitForm for simple create/update
- Use Patch for:
- Status updates
- Background updates
- Related tables
This hybrid approach keeps the UI simple while retaining flexibility.
Final Recommendation
Choose SubmitForm if:
- Your app is form-centric
- You want speed and simplicity
- Validation is critical
Choose Patch if:
- You need flexibility and performance
- Your app has complex logic
Conclusion
There is no "one-size-fits-all" answer to Patch vs SubmitForm. The best choice depends on your app’s complexity, performance needs and future scalability. For quick forms, SubmitForm() is perfect. For advanced, high-performance apps, Patch() is the clear winner.
“At UPLYNK, we’re committed to empowering the Microsoft Dynamics 365 community through insightful blogs, practical tutorials and real-world implementation guidance — helping professionals learn, grow and stay ahead in the ever-evolving D365 ecosystem.”