Hello,
Hope you're well 🙂
I would like to know how I can use power automate to create folders and subfolders in the SharePoint library.
below is my document library in SharePoint
I want to add subfolders to each folder in the document library automatically.
Could I please know what is the best way to do this using power automate?
Hi @Anonymous,
Do you want to create these folders only one time. Or is this something you want to schedule?
For the first scenario you could use a setup like below.
This setup uses an array for all the subfolders. It also retrieves the current folders in the first level. It loops through those folders and creates the 5 sub folders per folder item found in the root of the library.
However, it doesn't check if the subfolders already exist. So, this setup would only support a one-time creation scenario.
1. Add initialize variable action of type array, call it SubFolders. Use the array below as a value.
[{
"SubFolder": "1. NDA"
},
{
"SubFolder": "2. Contract Documents"
},
{
"SubFolder": "3. Due Diligence"
},
{
"SubFolder": "4. Emails"
},
{
"SubFolder": "5. Purchase Orders"
}]
2. Add a get files (properties only) action. Make sure you select No to not include nested items.
3. Add a Filter Array action. Use the value of the previous action. Make sure you filter on IsFolder eq true. Otherwise the flow will also use documents in the loop.
4. Add an apply to each action. Use the body of the Filter Array action.
5. Add another apply to each action within the first apply to each. Use the SubFolders array.
6. Add a Create New Folder action.
Use the following expression for the Folder Path field:
concat(items('Apply_to_each')?['{Name}'], '/', item()['SubFolder'])
@Expiscornovus Thank you for your reply I appreciate it :). I will get back to you once I give it try.
Hi @Anonymous,
Sorry, I cropped my first screenshot by accident 😁
I used the Manually trigger a flow action. That is the easiest action if you only want to run it once.
@Expiscornovus I got it working now 🙂 Thank you for your help
what is the process of getting it scheduled?
Is there a way to check if subfolders already exist in the document library?
Kind regards,
Anees
Hey hope you're well 🙂
what is the process for automating the flow instead of using the manual trigger?
Hi @Anonymous,
Instead of the manually trigger a flow action you could use a recurrence trigger action and define a schedule.
For the check part of your question I would use a mechanism to retrieve the folder just before the create folder action in the loop.
With a condition you could check if the output is empty. If that is the case you could put the Create folder action within the if Yes.
@Expiscornovus thank you for your reply 🙂
Do you have an example that I can see or follow.
Hi @Anonymous,
Yes, sure. I can share an example about that. See below.
1. First of all I would use a filter query to match your recurrence action. Let's say you configure it to run the flow once a week. I would filter the Get files so it only retrieves folders which have been created in the past 7 days.
Created ge '@{formatdatetime(addDays(utcNow(), -7), 'o')}'
2. In the apply to each I would add a Get folder metadata using path action. Put the name of the name of the library in the value and use the same concat function we use in the Create folder action.
LibraryCreateSubFolders/@{concat(items('Apply_to_each')?['{Name}'], '/', item()['SubFolder'])}
3. Add a condition action. In the settings of action make sure it also runs when the previous action has failed. Use the configure run after setting for that.
4. In the condition check if the message is not empty and that the message starts with Folder not found.
5. Add the Create new folder to If Yes.
Good morning, this setup is something I need, but I need extend the setup with the specific Channel or folder name. So A would have Folder 1, 2, 3 and B should have something like 5, 6, 7. So I need to check the name of the base folder A and on that basis I need to add folders. Can we think of a working process for that. I need to create 6 unique channels and consequently 6 various folders in there.
Thank you for this It has been a great help. I was wondering if it is possible in the variable to create folders inside the subfolders. This is what I need to create.
1. Sales\
1. Sales\1. Agreements\
1. Sales\1. Agreements\Final Agreements
1. Sales\1. Agreements\_WIP
1. Sales\2. Correspondence
1. Sales\3. Proposals
2. Service\
2. Service\1. Environment\
2. Service\1. Environment\1. Network Diagrams
2. Service\1. Environment\2. Site Photos
2. Service\1. Environment\3. Device Setup Processes
2. Service\2. Reports\
2. Service\2. Reports\1. Monthly Service Reports
2. Service\2. Reports\2. QBR Reports
Is this possible?
Thank you sharing this! Question: What if I want to create a folder within one of the subfolders created above? Where should I make the changes to the flow? Thanks in advance.
Hi @Arunan08,
It should be possible to add to add this as an item to the SubFolders array in the beginning of the flow.
[{
"SubFolder": "1. NDA"
},
{
"SubFolder": "2. Contract Documents"
},
{
"SubFolder": "3. Due Diligence"
},
{
"SubFolder": "4. Emails"
},
{
"SubFolder": "5. Purchase Orders"
},
{
"SubFolder": "5. Purchase Orders/Archive"
}]
It worked! Thank you so much.
@Expiscornovus Thanks for sharing your knowledge. I got the first sub folders created, but I am trying to create sub folders in 2 of the previously created sub folders e.g (1. NDA, 2. Contract Documents). Please how can I do this ?
Please how did you do this? what did he mean by "
It should be possible to add to add this as an item to the SubFolders array in the beginning of the flow.
"
The box highlighted in red is a subfolder within the "Proposal" folder.
User | Count |
---|---|
89 | |
37 | |
26 | |
13 | |
13 |
User | Count |
---|---|
127 | |
54 | |
38 | |
24 | |
21 |