{"id":9029,"date":"2024-09-12T07:14:22","date_gmt":"2024-09-12T05:14:22","guid":{"rendered":"https:\/\/www.automatify.ch\/?p=9029"},"modified":"2024-11-26T10:53:39","modified_gmt":"2024-11-26T09:53:39","slug":"working-with-sharepoint-documents-in-uipath-flows","status":"publish","type":"post","link":"https:\/\/www.automatify.ch\/en\/working-with-sharepoint-documents-in-uipath-flows\/","title":{"rendered":"Working with SharePoint documents in UiPath flows"},"content":{"rendered":"\n\n\n<section id=\"res-txt-block_7676dc8da54a0d2845320967cf59328d\" class=\"res-block res-txt style-standard layout01 py-2 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-12 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t  \n\t\t\t\t   <h2 class=\"title-h2 \">Working with SharePoint documents in UiPath flows: Azure App-Only connection method <\/h2>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>SharePoint is a popular document management solution used in many RPA flows. While of course you can use UI automation to download or upload files to SharePoint or work with list item data, we propose to integrate directly with the API to achieve better performance (less than 1 second for any operation) and long-term reliability (while the User Interface may change, the API remains unchanged).<\/p>\n<p>In order to help you with this, we have prepared a step-by-step guide explaining how to configure Azure AD App-Only access and use it in a UiPath flow. If you are looking for SharePoint AppOnly authentication instead, be sure to check out our blog entry on this subject.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n\n\n<section id=\"res-txt-block_36d3ab3ec8bdd63fe5ca09e63e037226\" class=\"res-block res-txt style-standard layout01 py-2 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-12 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t \n\t\t\t\t   <h3 class=\"title-h3 \">Step 1: Create Azure App <\/h3>\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Navigate to <a href=\"https:\/\/portal.azure.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/portal.azure.com\/<\/a> and select <em>Microsoft Entra ID<\/em> from the Azure services section.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"173\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Azure_services.png\" alt=\"\" class=\"wp-image-9141\" srcset=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Azure_services.png 665w, https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Azure_services-600x156.png 600w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_0b94bdaec3df399672c61d66ce5706e7\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Select <em>App Registrations<\/em> in the left menu, then click on <em>New<\/em> registration.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/select-app-registration.jpg\" alt=\"\" style=\"width:791px;height:auto\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_b756c92fd8af96456706d7e442cdb415\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Fill in the application name and select the \u201cAccounts in this organizational directory only\u201d option in the Supported account types section. Leave the Redirect URI field empty, as we will take care of it later. Click <em>Register<\/em> to create the application.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/select-register.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_a7ab45b5be1d438dd4d2b2fa4f886c77\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Once the application is created, you will see the following screen where you will find the client and tenant IDs which you will use in your UiPath flow. <\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/client-tenant-view.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_d1dd027e5ab174fccceed49703d87f3e\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>To create an application secret, first choose <em>Add a certificate or secret<\/em> and then <em>New client secret<\/em>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/new-client-secret-view.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_dc909ec27ae152eb3873a9b8728aefc0\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Add a description, choose the availability period, and click <em>Add<\/em>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/add-client-command.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_d6af7b563e5f2318b52b42efec4ae0ab\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>The newly created secret will appear in the secrets list.<\/p>\n<p>\n    <span style=\"color: orange;\">Attention:<\/span> you will not be able to get the secret\u2019s value after this point! Copy and save it in a secure place!<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/save-secret-command.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_377912c165674446da55c753c2059efe\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Back in the <em>Overview<\/em> tab, pick Add a <em>Redirect URI<\/em> and then <em>Add a platform<\/em>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/platform-configuration.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_9134c8f5bc571c6c33d2095c6baf83dc\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>From the menu, pick Mobile and desktop applications. Check the <a href=\"https:\/\/login.microsoftonline.com\/common\/oauth2\/nativeclient\" target=\"_blank\" rel=\"noopener\">https:\/\/login.microsoftonline.com\/common\/oauth2\/nativeclient<\/a> option.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/redirect-uris.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_0920ffbe5e384d22348b5d7020958fa8\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>In the Advanced settings section, allow public client flows. <\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Advance-settings.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_de1be4506d5540d07dfaf002c0e7ddbe\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t \n\t\t\t\t   <h3 class=\"title-h3 \">Step 2: Grant permission level to your app <\/h3>\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>In order to use SharePoint via the Azure App, you will need to grant the <em>Sites.Selected<\/em> permission. This will allow the app to have access to the selected SharePoint sites which will later be added via API call. In the left menu, select <em>API permissions<\/em> and then <em>Add a permission<\/em>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Grant-permission.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_98d2df1bc7cbbcf694fdd627853248bb\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Then select Microsoft Graph -&gt; Application permissions -&gt; Sites -&gt; Sites.Selected, and then click Add permissions.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Select-Microsoft-Graph-command.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_b3f0b2fbb11b21660b2341d902184161\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>The Sites.Selected permission requires admin consent, so log in with an admin account and grant consent.  <\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Grant-admin-consent.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_2493604c9e112942a23e97bda83e4778\" class=\"res-block res-txt style-standard layout01 pt-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Note: UiPath requires additional permissions beyond those for the selected sites. If you want to avoid granting these extra permissions to the app, you can use the UiPath.MicrosoftOffice365.Activities library version 2.4.3 or earlier, which will limit the access strictly to the selected sites.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n\n\n<section id=\"res-txt-block_ea6d4c137e04ba19fb191f5287bc5ed8\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t \n\t\t\t\t   <h3 class=\"title-h3 \">Step 3: Select the site your app will have access to <\/h3>\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Next, to reference the exact site your app will have access to, we are going to use the Graph Explorer tool which will help us execute the Graph API requests needed to provide access.<br \/>\nNavigate to your target SharePoint site, append <em>\/_api\/site\/id<\/em> to the URL and grab the <strong>Edm.Guid<\/strong> value as we are going to need it in the next steps.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Edm.Guid-value.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_b7acd573852618a22e1248e96b5107b4\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Navigate to <a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/graph-explorer\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.microsoft.com\/en-us\/graph\/graph-explorer<\/a> and sign in. Please note that the account you have singed in with has to be an Owner of the SharePoint site you want to grant access to.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Graph-explorer-view.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_226f43413958cfbc4e351661c203f209\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Configure a POST type request to<a href=\"https:\/\/graph.microsoft.com\/v1.0\/sites\/{Edm.Guid}\/permissions\" target=\"_blank\" rel=\"noopener\"> https:\/\/graph.microsoft.com\/v1.0\/sites\/{Edm.Guid}\/permissions<\/a>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Configure-a-post.jpg\" alt=\"\" style=\"width:791px;height:auto\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_e546ba91020e36eaadc576d5069f7df1\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Fill in the following request body (replacing your App Id and App Name) and run the query. <\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/replace-app-id-and-name.png\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_7a8ba483cd6352a865969bfa17b9573e\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>You can find possible roles used in the request\u00a0<a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/permission?view=graph-rest-1.0#roles-property-values\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<h4><\/h4>\n<h4>Troubleshooting: Forbidden \u2013 403<\/h4>\n<p>If the server response is Forbidden \u2013 403, it is likely that the Graph Explorer app does not have the rights to grant permissions to sites (as per the default configuration). We will temporarily give Graph Explorer Sites.FullControl.All rights, use it to authorize our app and then remove the rights again. To do this, navigate to the <strong>Modify permissions<\/strong> tab and click <strong>Open the permissions panel<\/strong>. Search for Sites.FullControl.All and then click Grant Consent.<\/p>\n<p>Now you can successfully run the POST request to the permissions endpoint and then proceed to remove the Graph Explorer permissions you just added.<\/p>\n<p>In the azure portal, navigate again to <em>Azure Active Directory<\/em> -&gt; <em>Enterprise applications<\/em> -&gt; Graph Explorer -&gt; Properties and then hit Delete. This will remove all permissions granted to the Graph Explorer application.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Forbidden-403.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_34d90e843ac1bcf90413cee641aec5da\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t \n\t\t\t\t   <h3 class=\"title-h3 \">Step 4: Using the created app with UiPath activities <\/h3>\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>To authenticate using the created Azure AD app, you can use the <a href=\"https:\/\/docs.uipath.com\/activities\/other\/latest\/productivity%22\/about-the-microsoft-office-365-activities-pack\" target=\"_blank\" rel=\"noopener\">Microsoft Office 365 Activities Pack<\/a>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Authenticate-view.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_7ac1317b70cd8ce431904240644b66d6\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Choose the Microsoft Office 365 scope activity and fill in the properties panel: Application Id, ApplicationSecret and Tenant (Tenant Id) fields. Then set the Authentication Type to <em>ApplicationIdAndSecret<\/em>. Select the Files and Shared services.<\/p>\n<p>(Note: You should consider storing the Application Id and ApplicationSecret <em>in a secure way, for example, you can use a Credentials type Asset in Orchestrator.<\/em>)<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Fill-in-properties-panel.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_9f3374f98067c1d6f023cac3b4c70a67\" class=\"res-block res-txt style-standard layout01 py-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>Within this scope, you can use any of the activities from the Files and SharePoint Lists categories and your robot will be authenticated to SharePoint with the Azure AD App. <\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.automatify.ch\/wp-content\/uploads\/2024\/09\/Authenticated-robot-view.jpg\" alt=\"\"\/><\/figure>\n\n\n\n\n\n<section id=\"res-txt-block_01c178ff56b5d8fb61a436cacb6298db\" class=\"res-block res-txt style-standard layout01 pb-3 Transparent\" style=\"background: transparent;\">\n  <div class=\"inner-container container-off \" data-aos=\"res-fadeIn\">\n \n\t\t  \n\t\t \t  \n      \n      <div class=\"layout-1 txt-section\">\n\t\t<div class=\"row\">\t\n\t\t\t\n\t\t\n\t\t\t<div class=\"col-md-10 var-1spalten text-left\">\n\t\t\t\t\n\t\t\t\t<div class=\"txt-title-field\">\n\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"txt-textfield postContent pt-md-2 \">\n                        <p>You can find other useful resources on our <a href=\"https:\/\/www.automatify.ch\/en\/kategorie\/blog-en\/\" target=\"_blank\" rel=\"noopener\">blog<\/a>.<\/p>\n\t\t\t\t\t<\/div>\n                \n                \n\t\t\t\t\t            <\/div>\n\t\t\t\t <\/div> \t\n\t\t<\/div>\n\t \n\t  \n \n \n\t<\/div>\n<\/section>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":9134,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[1],"tags":[49],"class_list":["post-9029","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-uipath"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/posts\/9029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/comments?post=9029"}],"version-history":[{"count":17,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/posts\/9029\/revisions"}],"predecessor-version":[{"id":9617,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/posts\/9029\/revisions\/9617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/media\/9134"}],"wp:attachment":[{"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/media?parent=9029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/categories?post=9029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.automatify.ch\/en\/wp-json\/wp\/v2\/tags?post=9029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}