Intro
Microsoft SharePoint Online enables an organization to easily create and manage custom team-focused and project-focused sites for collaboration. You can use Domo’s Microsoft SharePoint Online REST Connector to get data from an organization-wide intranet portal on different aspects based on sites within Domo. To do this, you must first create an app in Microsoft Azure. For more information about Microsoft SharePoint Online, visit their website at https://products.office.com/en-us/sharepoint/sharepoint-online-collaboration-software. You create a Microsoft SharePoint Online connection in the Data Center. This topic discusses the fields and menus that are specific to the Microsoft SharePoint Online REST connector user interface. General information for adding DataSets, setting update schedules, and editing DataSet information is discussed in Adding a DataSet Using a Connector.Prerequisites
To connect to Microsoft SharePoint Online in order to retrieve information, you must have the following:- An installed Microsoft Azure app.
-
The CLIENT ID and CLIENT SECRET. To generate an app and locate these credentials, see
Microsoft’s documentation. You may need the following information to register for the app:
- Azure Portal: https://portal.azure.com/
- Sharepoint App to Register: SharePoint Online Rest API
- Domo Re-direct URL: https://oauth.domo.com/api/data/v1/oauth/providers/microsoft-sharepoint/exchange
Creating an Azure App for Enterprise OAuth
To create a Microsoft Azure app, follow the below steps, or see our YouTube video.- Log into https://portal.azure.com.
-
Click on App registrations.

- Click New registration.
- Enter the application name and select the supported account type. Enter the Redirect URI for Web as https://oauth.domo.com/api/data/v1/oauth/providers/microsoft-sharepoint/exchange.
-
Change the default tenant selection from single tenant to multi tenant. This is a requirement for the connector.

- Click Register.
-
Now, click API Permissions.

-
Click +Add Permissions button.

- Select Microsoft Graph > Delegated Permissions.
- Select the permissions as required.
- After adding the permissions, all configured permissions will be listed as below.

To obtain the Sharepoint CLIENT ID:
- Go to https://portal.azure.com.
- Select Microsoft Entra ID > App registrations.
- Find and click on your web app.
- The “application” ID is your CLIENT ID.
To obtain the Sharepoint CLIENT SECRET:
- Go to https://portal.azure.com.
- Select Microsoft Entra ID > App registrations.
- Find and click on your web app.
- Open Certificates and secrets.
- Click +New Value.
- Provide the value description and the expiry period for your secret. Click Add.
-
Your new value will appear. Copy the Value field and paste it in your Domo connector Value field.

Connecting to Microsoft SharePoint Online
This section enumerates the options in the Credentials and Details panes in the Microsoft SharePoint Online REST Connector page. The components of the other panes in this page, Scheduling and Name & Describe Your DataSet, are universal across most connector types and are discussed in greater length in Adding a DataSet Using a Connector. Note: Use Microsoft Account that has The Cloud Application Administrator role in admin.microsoft.comCredentials Pane
This pane contains fields for entering credentials to connect to a Microsoft Dynamics CRM installation via Azure. The following table describes what is needed for each field:Field | Description |
|---|---|
CLIENT ID | Navigate to portal.azure.com > Azure Active directory > App registrations . Find and select the web app. The Application ID from the web app is the client id. |
CLIENT SECRET | Navigate to portal.azure.com > Azure Active directory > App registrations . Find and select the web app. Go to settings > Keys and create the client secret. |
Details Pane
This pane contains menus in which you can select your Sharepoint report and configure various options.Menu | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Report | Select your desired Sharepoint Online report.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Group ID | Select the group you want to use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User Id | Select the user that you want to use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Period Value | Select the period for which you want to fetch the data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
How would you like to select the data? | Select whether you want to select the data from a site, subsite, group sites, filtered site names, or enter the site ID. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subsite Selection Criteria | Select whether you want to provide a subsite ID or a subsite name to select a subsite. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Site ID | Select the site you want to pull data from. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subsite ID | Select the subsite you want to pull data from. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Group Site Id | Select the site that you want to use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Site Id | Enter the site Id. You can retrieve the site ID from the All Sites report. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Search Query | Enter the search query to obtain the sites. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter Site Id | Enter the site Id. You can fetch from the ‘All Sites’ or ‘Site Search’ report. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
List ID | Select the list you want to pull data from. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
List Item Selection Criteria | Select whether you want to provide a list item ID or a list item name to select an item. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
List Item ID | Enter the ID of the list item you want to retrieve information for. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Select List Item name | Select the list item name that you want to parse and import. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Drive ID | Select the drive you want to pull data from. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Groups Search Query | Enter the search query to obtain the sites. For example: displayName:Test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Select Groups | Select the groups that you want to use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transitive Members | Select this option to pull all the members of the group, including the transitive members. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Use Path Based Approach | Select this option to use a path-based approach to access the file permissions. If this option is not selected, the connector will use the file id based approach to access the file permissions. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
File Selection Criteria | Select whether you would like to provide a file ID or a file name to select a file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
File ID | Enter the ID of the file you want to retrieve information for. You can generate a list of files by running the “Files” report. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
File Relative Path | Enter the relative path of the folder from the selected drive (e.g. /MyFolder/MySubfolder). The default value is the root level. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Select File Search Property | This field Indicates how the connector should locate the file in SharePoint. Use Name if you anticipate that the internal Sharepoint id of the file will change. For example, if you delete the file and recreate with the same name regularly. Use ID if you don’t anticipate the internal SharePoint ID of the file will change. If you are not sure if the internal id will change or not, then select Name . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Select file name | Select the file name that you want to parse and import. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Relative Path | Enter the relative path of the folder from the selected drive. (e.g. /MyFolder/MySubfolder). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Select the fields to expand | Select whether you want to provide a site ID or filter the site names using a search query. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
File Type | Select the file type for the data file you want to retrieve. To show file content as a binary column, select Other . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
How would you like to choose your sheet? | Select whether you want to select your sheet by providing a partial or complete sheet name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sheet Name | Enter the name of the sheet you want to retrieve from the specified Excel spreadsheet. Be sure to check sheet names for accidental spaces. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Add Phonetic Words (Checkbox) | Select this checkbox if you want to add phonetic words to the data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter your data tag | Enter the tag where the data is found in your XML text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Do you require attributes in data? | Select Yes if you require attributes values as part of your data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter fields to exclude | Provide a comma-separated list of fields to exclude from your XML data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter Xpath expression | Enter your XPath query using standard XPath syntax as defined by the World Wide Web Consortium. ( https://www.w3.org/TR/2017/REC-xpath-31-20170321/ ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Header Start Row | Enter the header row number. If you do not enter a number, the first row is considered the header row. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data Start Row | Enter the starting data row number. If you do not enter a number, the first row after the header row is considered the starting row. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Footer | Enter the number of rows at the end of the data set to skip. For example, to skip the last two rows, you would enter 2 . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Does Your JSON Text Require a Line Reader? | Select Yes if your JSON text includes multiple lines to read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter your header tag | Enter the tag for the header in your JSON text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter your data tag | Enter the tag for the data in your JSON text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter fields to exclude | Provide a comma-separated list of fields to exclude from the JSON import. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Date Format | Select the date format that should be used when converting date columns. For Excel files, cell date format will have higher precedence. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Blank Header | In the Excel file, select the position of the blank header, specifically whether it appears at the beginning or the end. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Blank Header Count at Start | Enter the count of blank headers. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Blank Header Count at End | Enter the count of blank headers. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Use Provided File Encoding | If checked, select the accurate file encoding given below. If not checked, the connector will auto-detect file encoding. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
File Encoding | Select file encoding. Defaults to UTF-8. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Delimiter | Select the desired delimiter for parsing your CSV file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom Delimiter | Enter the desired custom delimiter character. Enter \t for tab or Unicode characters in \uxxxx form. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Quote Character | Select the desired quote character for parsing your CSV file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom Quote Character | Enter the desired custom quote character. Enter \t for tab or Unicode characters in \uxxxx form. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Escape Character | Select the desired escape character for parsing your CSV file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom Escape Character | Enter the desired custom escape character. Enter \t for tab or Unicode characters in \uxxxx form. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Decode Fields | Select this checkbox if you want to decode the fields coming from SharePoint (applies to column names only). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Display Comma Separated Array Values | Select this checkbox if you want to display the comma separated values for arrays in the response. |
Other Panes
For information about the remaining sections of the connector interface, including how to configure scheduling, retry, and update options, see Adding a DataSet Using a Connector.FAQs
Why are phonetic words added to the name of the column?
Why are phonetic words added to the name of the column?
What version of the Microsoft API does this connector use?
What version of the Microsoft API does this connector use?
Which endpoint(s) does each report call in this connector?
Which endpoint(s) does each report call in this connector?
| Report Name | Endpoint URL(s) |
|---|---|
| All Sites | /sites/root/sites/%s/sites/groups/%s/sites/root |
| Download Item Contents | /sites/{siteId}/drive/items/{fileId}/content |
| Files | /sites/{siteId}/drives/{driveId}/{path}/children |
| File Download | /sites/%s/drives/%s/%s/content |
| File Permissions | /sites/%s/drives/%s/%s/permissions |
| Get Items | /sites/{siteId}/drive/root/children |
| Groups | /groups |
| Group Members | /groups/%s/%s |
| Group Members V2 (Group Filter Search) | /groups/{id}/transitiveMembers (or) /groups/{id}/members |
| Group Sites | /groups/{groupId}/sites/root |
| List | /sites/{siteId}/lists/listId?expand=columns,items(expand=fields) |
| List Item Column Values | /sites/{siteId}/lists/{listId}/items/itemId?expand=fields |
| List Item Detailed | /sites/{siteId}/lists/{listId}/items/{itemId} |
| List Items | /sites/{siteId}/lists/{listId}/items?expand=fields |
| List Notebooks | /users/{userId}/onenote/notebooks |
| List Onenote Sections | /users/{userId}/onenote/sections |
| Root Sites | /sites/root |
| SharePoint Activity User Detail | /reports/getSharePointActivityUserDetail(period='period_value') |
| SharePoint Activity File Counts | /reports/getSharePointActivityFileCounts(period='period_value') |
| SharePoint Activity User Counts | /reports/getSharePointActivityUserCounts(period='period_value') |
| SharePoint Site Usage Detail | /reports/getSharePointSiteUsageDetail(period='period_value') |
| SharePoint Site Usage File Counts | /reports/getSharePointSiteUsageFileCounts(period='period_value') |
| SharePoint Site Usage Site Counts | /reports/getSharePointSiteUsageSiteCounts(period='period_value') |
| SharePoint Site Usage Storage | /reports/getSharePointSiteUsageStorage(period='period_value') |
| Sites Lists | /sites/{siteId}/lists |
| Sites Search | /sites |
| Sites Subsites | /sites/{siteId}/sites |
| Users | /users |
| Users Drive | /users/{userId}/drive |
What kind of credentials do I need to power up this connector?
What kind of credentials do I need to power up this connector?
Where can I find the client id and client secret?
Where can I find the client id and client secret?
- Visit the Microsoft Azure Portal and sign in using your Microsoft credentials.
- Select Azure Active Directory > App registrations.
- Find your app and click on it.
- Locate the “Application ID” from the web app. The Application ID is the client id.
- Visit the Microsoft Azure Portal and sign in using your Microsoft credentials.
- Select Azure Active Directory > App registrations.
- Find your app and click on it.
- Open Settings > Keys.
- Create the client secret.
What happens if the site discovery encounters a timeout error?
What happens if the site discovery encounters a timeout error?

How often can the data be updated?
How often can the data be updated?
Are there any API limits that I need to be aware of?
Are there any API limits that I need to be aware of?
Can Cards or Dashboards be privately embedded in SharePoint?
Can Cards or Dashboards be privately embedded in SharePoint?
Troubleshooting
- Make sure your authentication remains valid.
- Review the configuration to make sure that all required items have been selected.
- Review the Connector history for error messages.
- In rare cases, you may be requesting too much information and reaching API limitations or timeouts. If this is the case, you can review the history of the Connector run to see the error message and duration. If this is the case, you can reduce the number of accounts that are being pulled, choose a smaller number of metrics for the report that you are pulling, or reduce the timeframe that you are trying to pull.