Box Folder Provisioning for New Projects and Clients
When a new project or client is created in Dataverse, the flow provisions a standard Box folder structure from a template, sets collaborator permissions, applies metadata, creates a kickoff shared link, and writes the folder ID back. Standardizes Box workspace setup automatically.
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 standardizes Box workspace setup for new projects/clients. When a new project record is created in Dataverse, it provisions a templated Box folder structure, adds collaborators at least-privilege roles, applies folder metadata, creates a company-scoped kickoff shared link, and writes the Box folder id, shared link, and status back onto the originating record.
Why it matters: manual Box folder setup is inconsistent and slow. Templated, event-driven provisioning gives every project a uniform, correctly-permissioned Box workspace the moment the record is created - with the folder id captured back in CRM for downstream automation.
Ships Off (demo).
Use Case
A services team wants a standard Box structure created automatically for each new client/project, with the right people invited and the kickoff link ready to share - no manual folder creation.
Flow Architecture
When a New Project Is Created
Microsoft Dataverse - SubscribeWebhookTriggerFires on a new project row (Create, org scope).
Initialize Trace, Config & Record Fields
Initialize variableMints a correlation id and binds the folder template, role-collab map, parent path, Box token, Teams ids, and the project name/code/client/PM/collaborators.
Create Box Folder Structure
Box - CreateFolderCreates the project root folder under the parent path, then each standard template subfolder in a loop.
Add Collaborators (HTTP)
HTTP - POST /collaborationsAdds the project manager and each team member at least-privilege Box roles via the Box REST API.
Kickoff Link & Metadata (HTTP)
HTTP - PUT /folders + POST metadataCreates a company-scoped kickoff shared link and stamps project/client/correlation metadata on the folder.
Write-back & Notify
Dataverse UpdateRecord + TeamsWrites the folder id, shared link, status, and correlation id back to the project record and posts a summary to the project Teams channel.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_FolderTemplate | String | ["01 Contracts","02 Deliverables","03 Invoices","04 Shared Uploads","05 Correspondence"] | JSON array of standard subfolders. |
| flowlibs_RoleCollabMap | String | {"projectManager":"co-owner","teamMember":"editor","client":"viewer"} | Project role to Box collaboration role. |
| flowlibs_FolderIdField | String | flowlibs_boxfolderid | Dataverse column the folder id is written back to. |
| flowlibs_BoxParentPath | String | /Projects | Box path under which project roots are created. |
| flowlibs_BoxApiBaseUrl | String | https://api.box.com/2.0 | Box REST API base URL for the HTTP calls. |
| flowlibs_BoxAccessToken | String | REPLACE_WITH_KEYVAULT_REF | Box OAuth bearer token for the HTTP calls - Key Vault-backed. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team/group id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel id. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Box | shared_box | CreateFolder |
| HTTP | shared_http | POST /collaborations PUT /folders/{id} POST /folders/{id}/metadata |
| Microsoft Dataverse | shared_commondataserviceforapps | SubscribeWebhookTrigger UpdateRecord |
| Microsoft Teams | shared_teams | PostMessageToConversation |
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.
- Folder template
- Edit the FolderTemplate JSON to change the standard subfolder set; no flow edits needed.
- Naming convention
- Adjust the Compose Project Folder Name action to change the Name - Code pattern.
- Roles
- Change the RoleCollabMap to set the Box collaboration role per project role (e.g. external clients as viewer).
- External client
- Add the client email to the collaborator list (or a dedicated column) and map a client role.
- Shared link scope
- Change the kickoff link body access from company to open or collaborators.
- Offboard
- Extend with an archive/close path (Box CopyFile/DeleteFile + status update) on project close.
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.01Folder name
Project root folder name.
EXPR.02New folder id
Captured for subfolders and write-back.
EXPR.03PM collaboration role
Box role for the project manager.
EXPR.04Shared-link URL
Kickoff link written back to the record.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.