Dropbox Form Upload to Intake Processing
When a file is added to a Dropbox intake folder (e.g. from a public file-request link), the flow validates it, extracts metadata, creates an intake record in Dataverse, routes it to an owner, and confirms receipt by email. Turns Dropbox file-request uploads into governed intake.
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 turns Dropbox file-request uploads into governed, tracked intake. When a file lands in a designated Dropbox intake folder (typically from a public file-request link), the flow reads the file, fetches authoritative metadata from Dropbox, validates it against type and size rules, routes it to an owner based on configurable rules, records a governed intake row in Dataverse, and emails a receipt - or, if the file fails validation, sends a rejection notice instead.
Why it matters: files collected via Dropbox file requests pile up unattended. Structured intake with validation, routing, a Dataverse system-of-record, and email acknowledgement makes every upload actionable and auditable.
Ships Off (demo).
Use Case
A team collects documents from external parties via Dropbox file requests (often anonymous) and needs each upload validated, owned, recorded, and acknowledged - client document collection, vendor onboarding paperwork, claims/forms intake, or creative-asset submissions.
Flow Architecture
When a File Is Uploaded to Intake
Dropbox - OnNewFileFires once per new file in the intake folder (polling, 3 min); name/path/id from trigger headers.
Initialize Trace, Config & File Context
Initialize variableMints a correlation id, binds allowed extensions, max size, routing rules, default owner, and the file name/path/id/extension; derives submitter context from the file-name prefix.
Get File Metadata
Dropbox - GetFileMetadataByPathReads the authoritative file size for validation.
Resolve Owner
Set variableLooks up the extension in the routing rules, falling back to default then the default owner.
Validate Upload
ConditionExtension in the allow-list AND size within the limit.
Valid branch
Dataverse CreateRecord + OutlookMarks intake Routed, writes the governed intake row, and emails a receipt to the routed owner.
Invalid branch
Outlook SendEmailV2Marks intake Rejected and notifies the default owner that the upload failed validation.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_IntakeFolder | String | /FlowLibs Intake | Dropbox folder the trigger watches. |
| flowlibs_IntakeTable | String | flowlibs_intakes | Target Dataverse entity set (documentation). |
| flowlibs_RoutingRules | String | {"pdf":"operations@yourcompany.com","docx":"operations@yourcompany.com","xlsx":"finance@yourcompany.com","csv":"finance@yourcompany.com","png":"creative@yourcompany.com","jpg":"creative@yourcompany.com","default":"intake@yourcompany.com"} | Extension to owner email map; default catches the rest. |
| flowlibs_AllowedExtensions | String | pdf,docx,xlsx,csv,png,jpg | Comma-separated whitelist (lowercase, no dot). |
| flowlibs_MaxFileSizeBytes | String | 26214400 | Upload size ceiling (25 MB). |
| flowlibs_DefaultOwnerEmail | String | alerts@yourcompany.com | Fallback owner + rejection-notice recipient. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Dropbox | shared_dropbox | OnNewFile GetFileMetadataByPath |
| Microsoft Dataverse | shared_commondataserviceforapps | CreateRecord |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
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.
- Watch folder
- Point flowlibs_IntakeFolder at the Dropbox folder behind your file request.
- Validation rules
- Tune flowlibs_AllowedExtensions and flowlibs_MaxFileSizeBytes to your policy.
- Routing
- Edit flowlibs_RoutingRules JSON to map extensions (or document types) to owner mailboxes; the default key catches everything else.
- Submitter context
- The default convention parses the file-name prefix before the underscore; adapt it if your file-request naming differs.
- Virus scan
- Insert a scan step (via an HTTP/AV connector) before Create Intake Record.
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.01Extension
Lower-cased file extension.
EXPR.02Owner resolution
Routes by extension, then default, then env-var owner.
EXPR.03Validation condition
Allow-list AND size check.
EXPR.04Submitter context
Derives submitter from the file-name prefix.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.