Dropbox New File to SharePoint Governance
When a file is added to a watched Dropbox folder, the flow copies it to a structured SharePoint library, sets metadata from the path, applies a retention label, logs an audit row to Dataverse, and notifies the owner in Teams. Centralizes Dropbox content into governed Microsoft 365 storage.
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 flow centralizes Dropbox content into governed Microsoft 365 storage. When a file lands in a watched Dropbox folder, the flow reads the file bytes and its Dropbox metadata, copies it into a structured SharePoint document library, writes an immutable audit row to a Dataverse governance-log table (file name, source path, SharePoint URL, size, retention label, correlation id), and notifies the content owner in Microsoft Teams.
Why it matters: content split between Dropbox and Microsoft 365 is hard to govern. Mirroring Dropbox files into SharePoint with metadata, a retention label, and a system-of-record audit trail brings shadow content under policy and gives compliance a single place to query what was ingested, from where, and when.
Ships Off (demo).
Use Case
A team receives working files in a shared Dropbox folder that must be governed in SharePoint under a retention policy. IT Admins and Operations want every inbound file automatically copied into a governed library, logged for audit, and surfaced to the owner.
Flow Architecture
When a File Is Added to Dropbox
Dropbox - OnNewFileFires per new file in the watched folder (polling, 3 min); body = file bytes, headers carry name/path/id.
Initialize Trace & Config
Initialize variableMints a correlation id and binds the SharePoint site, governed library path, retention label, Teams ids, and owner email.
Get Dropbox File Metadata
Dropbox - GetFileMetadataByPathReads authoritative size/last-modified/id for the audit row.
Copy to Governed SharePoint Library
SharePoint - CreateFileWrites the Dropbox bytes into the governed SharePoint library - the core centralization step.
Write Governance Log Record
Dataverse - CreateRecordAudit system-of-record row (name, source path, SharePoint URL, size, retention label, correlation id).
Notify Owner in Teams
Teams - PostMessageToConversationPosts a governance summary card to the owner channel.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_DropboxWatchFolder | String | /FlowLibs Intake | Dropbox folder monitored by the trigger. |
| flowlibs_GovernedLibraryPath | String | /Shared Documents | Server-relative path of the destination SharePoint library. |
| flowlibs_RetentionLabel | String | Standard-3yr | Retention / governance label recorded per file. |
| flowlibs_SharePointSiteURL | String | https://your-tenant.sharepoint.com | SharePoint site hosting the governed library. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Teams team/group id for the owner channel. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Teams channel id that receives the notification. |
| flowlibs_OwnerEmail | String | me@contoso.com | Content owner shown in the Teams card. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Dropbox | shared_dropbox | OnNewFile GetFileMetadataByPath |
| SharePoint | shared_sharepointonline | CreateFile |
| Microsoft Dataverse | shared_commondataserviceforapps | CreateRecord |
| Microsoft Teams | shared_teams | PostMessageToConversation |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
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.
- Dedup
- Before copy, query the governance log by Dropbox file id (or hash) and skip if already ingested.
- Routing by type/path
- Switch the governed library path based on file extension or Dropbox subfolder to land files in different libraries.
- Real retention
- Map flowlibs_RetentionLabel to a published SharePoint retention/compliance label and apply it to the created file's list item.
- Owner resolution
- Derive the owner from the Dropbox path or a lookup table instead of a single env var.
- Two-way sync
- Add an OnUpdatedFile companion flow to keep Dropbox and SharePoint aligned (propagate the same correlation id).
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.01File name (trigger header)
Uploaded file name (also x-ms-file-path, x-ms-file-id).
EXPR.02File bytes for CreateFile
The Dropbox file content written to SharePoint.
EXPR.03Resulting SharePoint URL
Absolute URL of the governed copy.
EXPR.04Authoritative file size
Byte size recorded on the audit row.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.