Create a Folder in a document library using Microsoft Flow

Recently, I’ve seen quite a few people asking about creating Folders in SharePoint Document Libraries using Microsoft Flow.

Create a folder in SharePoint library

In my case I have a Document Library called Documents1 and I want to create a folder called New Folder

Using the Send an HTTP request to SharePoint action it is really a 5 minute task.

Create a folder using Send an HTTP request to SharePoint action

Using the following REST API call I can get hold of the option to create a new folder.

[code lang=text]
_api/Web/GetFolderByServerRelativeUrl(‘Documents1’)/Folders
[/code]

Just supply the body that specifies the name of your folder.

[code lang=text]
{ ‘__metadata’: { ‘type’: ‘SP.Folder’ }, ‘ServerRelativeUrl’: ‘/Documents1/New Folder’}
[/code]

You could of course also do the same without the verbose option and nometadata instead. The body would then look something like this:

[code lang=text]
{‘ServerRelativeUrl’: ‘/Documents1/New Folder’}
[/code]

Run the flow

Then when you run the flow you will see that the HTTP call is successful

output from the Send an HTTP request to SharePoint action

 

And my folder is created.

My folder has been created in SharePoint

 

Document Libraries in various Site Collections

For site collections (that aren’t the root site collection) or subsites you can use the following:

 

Create a folder in a site collection that isn't the root site collection

37 thoughts on “Create a Folder in a document library using Microsoft Flow

  1. thanks for this Pieter. With your help i’ve got it working wonderfully in our environment. We have a complex file structure of folders that i was already creating (by creating a file) in order to have one folder per sales order (with these folders grouped as there’s lots). Now i’ve added in your flow code, tweaking it to use vairables so it’s easier for me to manage, so i now have numerous sub folders for each parent folder ready for the team to store all job related docs in a tidy way. This is going to be a great help. thanks !

  2. commented on March 19, 2019 by Gaston Huot

    Thanks Pieter

    I’m a newbie… Could you introduce me to the rights allocation for the created folders ? Let’s say a main folder in the Document Library called Documents1 , with many subfolders, all accessible to Group A, one of them being accessible only to sSecurity group B ?

    Thanks,

    Gaston

  3. commented on March 29, 2019 by Ishan

    “message”: “Value cannot be null.\r\nclientRequestId: b0a3299f-fb4e-44d3-826f-6bef4c739715\r\nserviceRequestId: 44d1cd9e-10cc-8000-6e87-a13417104134”,

    I am getting this error. I would appreciate your help.

  4. commented on March 29, 2019 by Ishan

    Thank you for you prompt response. Here it is:

    Site Address
    Customer Bids – https://abc.sharepoint.com/sites/100010
    *Method
    POST
    *Uri
    _api/Web/GetFolderByServerRelativeUrl(‘BId%20Documents’)/Folders
    Headers

    Content-Type
    application/json; odata=verbose
    Accept
    application/json; odata=verbose
    Enter key

    Enter value

    Body
    { ‘__metadata’: { ‘type’: ‘SP.Folder’ }, ‘SpWeb.ServerRelativeUrl’: ‘/BId%20Documents/New Folder’}

    • I think that your url to the folder isn’t right. it isn’t a server relative url. that would be /sites/….

      • commented on March 29, 2019 by Ishan

        Now getting the following error. Thank you again for your help;

        {
        “error”: {
        “code”: 502,
        “source”: “flow-apim-europe-001-westeurope-01.azure-apim.net”,
        “clientRequestId”: “72737c0a-69f0-42d8-a945-60d7d3c56c1f”,
        “message”: “BadGateway”,
        “innerError”: {
        “message”: “(null) \”sites/100010/sites/100010/BId Documents/New Folder\” not found.\r\nclientRequestId: 72737c0a-69f0-42d8-a945-60d7d3c56c1f\r\nserviceRequestId: 13d6cd9e-8072-8000-7de0-5daf09e8af45″,
        “status”: 502,
        “source”: “https://abc.sharepoint.com/sites/100010/_api/Web/GetFolderByServerRelativeUrl(‘BId%20Documents’)/Folders”,
        “errors”: [
        “-2130247139”,
        “Microsoft.SharePoint.SPException”
        ]
        }
        }
        }

      • it looks like /sites/100010 is repeated twice

        also in the get folder function the parameter doesn’t appear to include /sites/100010

  5. commented on April 3, 2019 by Soja Enkhbat

    Hello, I am trying to create a folder within a Document library also but is getting the following error:

    “message”: “Value cannot be null.”,
    “status”: 400,
    “source”: “https://XXX.sharepoint.com/sites/MainSite/Subsite/_api/Web/GetFolderByServerRelativeUrl(‘DocumentLibrary’)/Folders”,
    “errors”: [
    “-2147467261”,
    “System.ArgumentNullException”
    ]

    Thank you in advance!

    • commented on April 3, 2019 by Pieter Veenstra

      inside the single quotes of the document library you need to include /sites/mainsite/subsite

      • commented on April 3, 2019 by Soja Enkhbat

        Thank you for the prompt reply. Do i add it in the URI or in the Body?

      • commented on April 3, 2019 by Pieter Veenstra

        at least in the byserverrelativeurl function as that would need to be everything after sharepoint.com

      • commented on April 3, 2019 by Soja Enkhbat

        Tried all three combinations off adding it to the GetFolderByServerRelativeUrl and ByServerRelativeUrl, Now getting a BadGateway error.

      • commented on April 3, 2019 by Pieter Veenstra

        I added another screenshot for site collections that aren’t the root site collection

  6. commented on April 26, 2019 by Keyvan

    Hello Pieter,
    I getting this error,

    “status”: 400,
    “message”: “Server relative urls must start with SPWeb.ServerRelativeUrl\r\nclientRequestId: ae4e610a-a527-4136-8b88-524b59f41b3c\r\nserviceRequestId: 1fa0d69e-80cd-8000-56fe-73dfc5582595”,

    appriciate your help.
    Keyvan

  7. commented on April 27, 2019 by Brian

    This is interesting however I find it ridiculous that this level of effort is required to do something so common. Is makes me wonder why Microsoft does not directly support creating folders from PowerApps & Flow.

    • Don’t forget that they can’t cover everything. There will always be some simple things that aren’t there. But imagine if you had to do all that flow does in code… it would take 10 times longer.

  8. commented on April 29, 2019 by Jason Selby

    I keep on getting this error

    {
    “status”: 400,
    “message”: “The expression \”Web/GetFolderByServerRelativeUrl(‘sites/corporate-files/Lists/WIP Testing)/Clients’\” is not valid.\r\nclientRequestId: cc97207c-54cb-4496-8a2f-87b371d1096a\r\nserviceRequestId: d2b7d79e-9004-0000-99d4-8f792c168144″,
    “source”: “https://mylifedigital.sharepoint.com/sites/corporate-files/_api/Web/GetFolderByServerRelativeUrl(‘sites/corporate-files/Lists/WIP%20Testing)/Clients’”,
    “errors”: [
    “-1”,
    “Microsoft.SharePoint.Client.InvalidClientQueryException”
    ]
    }

    • hi Jason does your server relative url start with a / ?

    • commented on May 20, 2019 by manickam ravi

      Send an HTTP request to SharePoint

      Do we need to create 2 time the above?

  9. commented on April 30, 2019 by Jason Selby

    Pieter, I have tried lots of combinations and am starting to go a little mad…. Any advice would be greatly received….

  10. commented on May 20, 2019 by manickam ravi

    {
    “message”: “Access denied. You do not have permission to perform this action or access this resource.\r\nclientRequestId: ce926637-4e56-4da4-abbe-53603caf7680\r\nserviceRequestId: 276ede9e-30b3-8000-86d8-bb9bfaca2eeb”,
    “status”: 403,
    “source”: “https://techmah.sharepoint.com/sites/SurgeonCompliance/_api/Web/GetFolderByServerRelativeUrl(‘sites/SurgeonCompliance/Shared%20Documents’)/Folders”,
    “errors”: [
    “-2147024891”,
    “System.UnauthorizedAccessException”
    ]
    }

    • commented on May 20, 2019 by Pieter Veenstra

      Hi,

      It looks like there is a / missing in front of sites/SurgeonCompliance in your ServerRelativeUrl

      • commented on May 20, 2019 by manickam ravi

        Thank you so much. Issue resolved. But in example its wrong.

      • commented on May 20, 2019 by manickam ravi

        How to create the subfolder inside this folder

      • commented on May 20, 2019 by Pieter Veenstra

        You would need to specify the parent folder name in GetFolderByServerRelativeUrl function and in the ServerRelativeUrl (in the Body) you will need to include the parent folder and the new folder name.

  11. commented on May 20, 2019 by manickam ravi

    Sorry my mistake

    • commented on May 20, 2019 by manickam ravi

      Send an HTTP request to SharePoint

      Do we need to create 2 time the above?

      • commented on May 20, 2019 by Pieter Veenstra

        If you want to create a folder and a subfolder then yes. Each folder is a separate call

  12. commented on June 10, 2019 by Jess

    Hi Pieter,

    Thanks for this post! Do you know how can I fix this error?
    {
    “error”: {
    “code”: 500,
    “source”: “flow-apim-msmanaged-na-northcentralus-01.azure-apim.net”,
    “clientRequestId”: “0086afe1-069c-4b92-a715-8bce776b1d26”,
    “message”: “BadGateway”,
    “innerError”: {
    “status”: 500,
    “message”: “The format of value ‘application/json;\nodata=verbose’ is invalid.\r\nclientRequestId: 0086afe1-069c-4b92-a715-8bce776b1d26”,
    “source”: “sharepointonline-wus.azconn-wus.p.azurewebsites.net”
    }
    }
    }

    Thanks!

  13. commented on February 26, 2020 by Arun chinnasamy

    Hi Pieter,

    Am trying to create a folder in SharePoint under documents library but receiving below error

    {
    “status”: 404,
    “message”: “Cannot find resource for the request GetFolderByServerUrl.\r\nclientRequestId: f72fb757-fd57-41cc-af34-f89f6154bc71\r\nserviceRequestId: 4957399f-c059-a000-a014-18f25949fa32”,
    “source”: “https://xxxxxxx.sharepoint.com/sites/IDMACCESS/_api/web/GetFolderByServerUrl(‘/sites/IDMACCESS/shared%20Documents’)/Folders”,
    “errors”: [
    “-1”,
    “Microsoft.SharePoint.Client.ResourceNotFoundException”
    ]
    }

    could you please provide your suggestion

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: