Syncing portal submissions to SharePoint is a common requirement for businesses using Power Pages (formerly Power Apps Portals) in combination with Microsoft SharePoint as a document or data repository. This guide walks you through a step-by-step approach (~1000 words) to sync form submissions from Power Pages to SharePoint, ensuring data consistency, proper security, and automation.
Overview
When users submit forms on a Power Pages site, the data typically lands in Dataverse. However, many organizations want to sync or store this information (or related documents) in SharePoint Online—for archival, workflow integration, or reporting. This is done using Power Automate flows.
Key Scenarios
- Storing submitted documents in SharePoint
- Archiving form submission metadata to SharePoint lists
- Maintaining a synced view of form entries for SharePoint-based users
- Generating files (PDF, DOCX) from form data and storing them
Architecture Diagram
User (Portal)
|
v
Power Pages Form
|
v
Dataverse Table
|
v
Power Automate Flow
|
v
SharePoint List / Library
Step-by-Step: Sync Portal Submissions to SharePoint
1. Prepare the SharePoint Environment
Create a SharePoint List
Go to SharePoint Online and create a new list for storing form submission data.
Example:
List Name: Portal Submissions
Columns:
- Title (default)
- Full Name (Single line of text)
- Email (Single line of text)
- Submission Date (Date)
- Notes (Multiline text)
Or, create a Document Library if you’re dealing with file attachments.
2. Create a Dataverse Table
In Power Pages:
- Go to Tables → Create a new table:
PortalFormSubmissions
- Add columns matching the SharePoint list schema
- Publish table and create a basic form to expose this on the portal
3. Add the Form to a Power Page
- Navigate to Power Pages Studio
- Add a Basic Form component
- Link it to the
PortalFormSubmissions
table - Enable Attach File if you want users to upload files
4. Create a Power Automate Flow
Now the main part—syncing form submissions to SharePoint using a flow.
Trigger: When a row is added to Dataverse
- Go to Power Automate
- Create a new flow:
- Type: Automated cloud flow
- Trigger:
When a row is added
(Dataverse connector) - Table Name:
PortalFormSubmissions
- Scope: Organization
Add SharePoint Action: Create Item
- Add action:
Create item (SharePoint)
- Site Address: Your SharePoint site
- List Name:
Portal Submissions
- Map fields:
- Title → Full Name or a custom string
- Email → From Dataverse row
- Notes → Notes from the form
- Submission Date →
utcNow()
Optional: Handle Attachments
If your form supports file uploads:
- Add a step:
Get file content using path
orGet file content from Dataverse
- Then use:
Create file (SharePoint)
to store it in a document library
5. Test the End-to-End Flow
- Go to the portal page
- Fill in the form and submit
- Wait a few seconds
- Check the SharePoint list or library—data and file should appear
Advanced Enhancements
A. Add Approval Workflow
- After the item is created in SharePoint, add
Start and wait for approval
- Notify relevant managers or stakeholders for review
B. Generate PDF and Upload
- Use OneDrive for Business + Word Template + PDF conversion
- Create a template DOCX file with form placeholders
- Populate it using the form data
- Convert it to PDF
- Upload it to a SharePoint folder
C. Filter Submissions Based on Conditions
- Add conditions like:
If(Email ends with "@contoso.com") → Proceed with SharePoint sync Else → Ignore
Security Considerations
- Always use least privilege permissions in SharePoint
- Apply role-based access in Power Pages for forms
- Limit upload file types and size
- Enable auditing in SharePoint and Dataverse
Maintenance & Monitoring
- Enable run history logging in Power Automate
- Set alerts for failed runs
- Monitor Dataverse and SharePoint usage
- Clean up older records/files with scheduled flows
Common Issues & Fixes
Issue | Solution |
---|---|
Files not syncing | Ensure Attach File is enabled and file size is within limits |
Flow not triggering | Confirm table name and scope, and that portal is using correct Dataverse table |
Permission Denied | Check SharePoint connection and portal roles |
Duplicate Records | Add logic in flow to check for existing SharePoint entries |