cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Edvhdy
Helper III
Helper III

get the info from an http request and insert it in a SharePoint list

Hello,

 

I made a flow which aims to retrieve the list of all the SharePoint sites present in the tenant.

I manage to retrieve the information, but I do not know how to retrieve the creation date and the name of the site.

Then it's to retrieve each name of the site and insert it in a SharePoint list.

can you help me find a solution to retrieve each name of each SharePoint site from the output of the http request?

Spoiler
Spoiler
{
    "type""object",
    "properties": {
        "createdDateTime" : {
            "type" : "string"
        },
        "id": {
            "type""string"
        },
        "lastModifiedDateTime": {
            "type""string"
        },
        "name": {
            "type""string"
        },
        "webUrl": {
            "type""string"
        },
        "displayName": {
            "type""string"
        },
        "root": {
            "type""object",
            "properties": {}
        },
        "siteCollection": {
            "type""object",
            "properties": {
                "hostname": {
                    "type""string"
                }
            }
        }
    }
}

 

Thanks

 

flow bug.PNG

 
 
 
 
 
1 ACCEPTED SOLUTION

Accepted Solutions

Normally, I let Power Automate to add the 'Apply to each' for me. Add only the 'Compose' action, place the 'name' dynamic content inside and it'll add the proper 'Apply to each' around it.



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]

View solution in original post

11 REPLIES 11
tom_riha
Super User
Super User

Hello @Edvhdy ,

shouldn't you use the 'Parse JSON' action instead of 'Parse CSV'?



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]
Edvhdy
Helper III
Helper III

thanks @tom_riha 

 

I used parse Json but the output of the http request is the same as the output of Parse Json.

 

I would like to be able to recover certain elements and put them in an array then insert them in the list. (that's why I wanted to use the CSV connector) but I can't do it

That's strange, output of the HTTP request should be the actual data, output from Parse JSON should be a lot of dynamic contents parsed from the HTTP request output.

Did you use the actual HTTP output as the sample data payload in the Parse JSON? And the output from the HTTP request as the value to parse in Parse JSON?



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]
Edvhdy
Helper III
Helper III

hi @tom_riha ,

 

yes it is the same. maybe I have an error.

 

Body (Ouput)  Http request  :

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
  "value": [
    {
      "createdDateTime": "2019-06-17T13:54:24Z",
      "id": "###",
      "lastModifiedDateTime": "2019-06-08T08:21:10Z",
      "name": "###",
      "webUrl": "###",
      "displayName": "Site ###",
      "root": {},
      "siteCollection": {
        "hostname": "###.sharepoint.com"
      }
    },

 

 

Output Json (input body http request) -> Ouput :

 

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
  "value": [
    {
      "createdDateTime": "2019-06-17T13:54:24Z",
      "id": "###",
      "lastModifiedDateTime": "2019-06-08T08:21:10Z",
      "name": "###.sharepoint.com",
      "webUrl": "###.sharepoint.com",
      "displayName": "Site ###",
      "root": {},
      "siteCollection": {
        "hostname": "###.sharepoint.com"
      }
    },
Edvhdy
Helper III
Helper III

I would like to insert in a list the elements:
DisplayName
createdDateTime
webUrl

 

I think it would loop through each value of the Http request and retrieve the underscored items to insert them.

'Parse JSON' will parse the HTTP output using the schema, after the 'Parse JSON' you'll have all the values from the JSON available as a dynamic content. You can then use the values later in the flow.

image.png



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]
Edvhdy
Helper III
Helper III

@tom_riha 

 

Thank you for your help.

I made changes following your post.(see image)  and I have no data at the exit of "Compose".

 

aaz.jpg

Here is the output of the Json parse :

 

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
  "value": [
    {
      "createdDateTime": "2019-06-17T13:54:24Z",
      "id": "###",
      "lastModifiedDateTime": "2019-06-08T08:21:10Z",
      "name": "Site 1",
      "webUrl": "https://###.sharepoint.com",
      "displayName": "Site 1",
      "root": {},
      "siteCollection": {
        "hostname": "###.sharepoint.com"
      }
    },
    {
      "createdDateTime": "2020-06-25T15:13:56Z",
      "id": "###",
      "lastModifiedDateTime": "2020-06-25T15:18:55Z",
      "name": "Site 2",
      "webUrl": "###.sharepoint.com/",
      "displayName": "Site 2",
      "root": {},
      "siteCollection": {
        "hostname": "###.sharepoint.com"
      }
    },

........

 

it seems to me that it will be necessary to loop on each element of the value "name" to be able to insert them in a list?

 

What do you think ?

 

I think Power Automate has problem with the @ in:

"@odata.context"

at least on my environment it doesn't accept the input you shared as a valid JSON unless i remove the @.

Other than that, you should loop through the 'value' array to get to the 'name' for each object.

image.png



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]
Edvhdy
Helper III
Helper III

hi @tom_riha 

 

indeed power automate does not like @ by deleting it I have good data output from JSON.

I will work on the flow again to remove the @.

 

in the flow you manage to buckle down on the value. is that what value you put?


because no value is offered to me in Dynamic content.

 

flow bug 1.PNG

Normally, I let Power Automate to add the 'Apply to each' for me. Add only the 'Compose' action, place the 'name' dynamic content inside and it'll add the proper 'Apply to each' around it.



[ If I have answered your question, please Accept the post as a solution. ]
[ If you like my response, please give it a Thumbs Up. ]

[ I also blog about Power Automate solutions even for non-IT people. ]
Edvhdy
Helper III
Helper III

Hi @tom_riha 

 

I think powerAutomat doesn't like me ..

 

When I add only the Composer action and put the name content inside. it does not loop on the value. I set up Experimental Features to see if that makes any difference. but no ..

Edit : after doing new tests it works perfectly. thank you very much for your help @tom_riha  🙂 

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Users online (5,541)