Dropbox to SharePoint Folder Mirror
Watches a Dropbox folder for new or changed files and mirrors them into a SharePoint document library, preserving the folder structure. Skips unchanged files using size/modified comparison and emails a simple daily sync summary. A beginner-friendly cross-cloud file bridge.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This beginner-friendly cloud flow mirrors files from a Dropbox folder into a SharePoint document library on a daily schedule, keeping a governed Microsoft-side copy of content a partner or team maintains in Dropbox. It lists the configured Dropbox folder, copies new and changed files into SharePoint, skips files that haven't changed (size + modified-time comparison via a Dataverse ledger), and emails one short daily sync summary.
Why it matters: Cross-cloud file bridges are a common ask when an external party works in Dropbox but your governance, search, and records live in SharePoint. This is a clean, low-complexity pattern that introduces the Dropbox connector, change-detection with a Dataverse ledger, and SharePoint file creation.
Build status: Built — Flow Checker 0 errors / 0 warnings. Ships Off (demo). Going live requires only connection authorization + environment-variable configuration.
Use Case
A team receives files in a shared Dropbox folder and needs them automatically copied into SharePoint for internal access, search, and retention — without anyone dragging files between the two clouds. Each morning the flow reconciles the folder and reports what it mirrored.
Flow Architecture
Recurrence
Schedule (Day/1, 6 AM EST)Runs once each morning.
Initialize correlation id + config + counters
Initialize VariableMint @guid() and load the Dropbox folder, SharePoint site + library path, summary recipient, and copied/skipped counters.
List Dropbox Folder + Filter Files
Dropbox — ListFolder + Filter arrayList the folder's immediate contents and drop subfolders (recursion is a customization).
Apply to each File
Foreach (sequential)Process each file in the folder.
Get Ledger Record + New-Or-Changed check
Microsoft Dataverse — ListRecords + ConditionLook up the file's path in the ledger; copy when new (no row) or size/modified differs.
Download + Mirror to SharePoint
Dropbox — GetFileContent + SharePoint — CreateFileDownload the file bytes and write/overwrite the mirrored copy in SharePoint.
Upsert Ledger Row + Count
Microsoft Dataverse — CreateRecord/UpdateRecord + IncrementCompose and create/update the ledger row, increment the copied count, and append an HTML summary row.
Increment Skipped Count
Increment variableFor unchanged files, increment the skipped count.
Send Summary Email
Office 365 Outlook — SendEmailV2Compose the HTML body and email the daily sync summary.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_DropboxFolderPath | String | /Shared | Source Dropbox folder. |
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | Target SharePoint site. |
| flowlibs_DropboxMirrorLibraryPath | String | /Shared Documents/Dropbox Mirror | Server-relative target library/folder path. |
| flowlibs_DropboxSyncSummaryEmail | String | alerts@yourcompany.com | Daily summary recipient. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Dropbox | shared_dropbox | ListFolder GetFileContent |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord UpdateRecord |
| SharePoint | shared_sharepointonline | CreateFile |
| Office 365 Outlook |
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Subfolders / preserve structure
- ListFolder is non-recursive, so this baseline mirrors the configured folder's immediate files. To recurse, loop subfolder entries (IsFolder = true) and call ListFolder per subfolder, building the SharePoint folderPath from each file's relative path (CreateFile auto-creates intermediate folders).
- Schedule
- Change the Recurrence frequency/time for hourly or near-real-time syncing; or replace with the Dropbox OnNewFiles/OnUpdatedFiles trigger for event-driven copies (then accumulate a digest separately if a summary is still wanted).
- One-way vs two-way
- This is one-way (Dropbox to SharePoint). For two-way, add a reverse flow with a source flag column to avoid echo loops.
- Retention
- Set a content type / metadata column on the mirrored file so SharePoint retention policies apply.
- Large files
- Swap the download/upload for a chunked-copy pattern or mirror a Dropbox share link.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Ledger lookup ($filter)
OData filter to find the file's ledger row by path.
EXPR.02New-or-changed test
Copy when the file is new or its size/last-modified differs.
EXPR.03Ledger row whole-object bind
Bind the ledger row as one Compose object for CreateRecord/UpdateRecord.
EXPR.04Update recordId
Existing ledger row id for UpdateRecord.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.