Microsoft Office 365 Connection Details
Introduction
Connector Version
This documentation is based on version 25.0.9368 of the connector.
Get Started
Microsoft Office 365 Version Support
All hosted versions of Microsoft Office 365 are supported via the microsoft Graph API v1.0. Includes information accessible from 365 editions of Exchange/Outlook, Teams, Tasks, and OneDrive.
Establish a Connection
Connect to Microsoft Office 365
Authenticate using Microsoft Entra service principal
Microsoft Entra service principal is a connection type that goes through OAuth. Set your AuthScheme to AzureServicePrincipal and see Using Microsoft Entra service principal authentication for an authentication guide.
Create an Entra ID (Microsoft Entra ID) Application
Create an Entra ID (Microsoft Entra ID) Application
Note
Microsoft has rebranded Microsoft Entra ID as Entra ID. In topics that require the user to interact with the Entra ID Admin site, we use the same names Microsoft does. However, there are still connection properties whose names or values reference Microsoft Entra ID.
Microsoft Office 365 supports OAuth-based authentication using Microsoft Entra ID. If you will connect via a web application and want to authenticate via Entra ID, you must first register a custom OAuth application in the Entra Admin Center, as described below.
If you will connect via a desktop application or headless machine, you can authenticate using Microsoft Office 365's built-in embedded application credentials, which use branding. However, custom OAuth applications are also compatible with desktop and headless authentication flows, and may be preferable for production deployments or environments requiring strict policy control.
Register the Application
To register an OAuth application in Microsoft Entra ID, follow these steps:
-
Go to
https://portal.azure.com. -
In the left-hand navigation pane, select
Microsoft Entra ID > App registrations. -
Click
New registration. -
Enter a name for the application.
-
Specify the types of accounts this application should support:
- For private-use applications, select
Accounts in this organization directory only. - For distributed applications, select one of the multi-tenant options.
Note
If you select
Accounts in this organizational directory only, when you connect with Microsoft Office 365 connector, you must set AzureTenant to the tenant's ID (either GUID or verified domain). Otherwise, authentication will fail. - For private-use applications, select
-
Set the redirect URI to
http://localhost:33333(default), or use another URI appropriate for your deployment.When using a custom redirect URI set a
CallbackURLconnection property; in those cases, set it to match this URI exactly. -
Click
Register. The application management screen opens. Record these values for later use:Application (client) IDis used for OAuthClientIdDirectory (tenant) IDis used for AzureTenant
-
Go to
Certificates & Secrets. ClickNew Client Secret, set the desired expiration, and save the generated value. This value will only be shown once — record it to use with OAuthClientSecret. -
Select the Microsoft Graph API and then select the permissions your app will seek.
-
To confirm, click
Add permissions.
Create a Service Principal App in Entra ID (Microsoft Entra ID)
Create a Service Principal App in Entra ID (Microsoft Entra ID)
Note
Microsoft has rebranded Microsoft Entra ID as Entra ID. In topics that require the user to interact with the Entra ID Admin site, we use the same names Microsoft does. However, there are still connection properties whose names or values reference Microsoft Entra ID.
Microsoft Office 365 supports Service Principal-based authentication, which is role-based. This means that the Service Principal's permissions are determined by the roles assigned to it. The roles specify what resources the Service Principal can access and which operations it can perform.
If you want to use a Service Principal to authenticate to Microsoft Office 365, you must create a custom application in Microsoft Entra ID.
To enable Service Principal authentication:
- Confirm that you have permission to register applications and assign roles in your tenant.
- Register a new application and configure credentials and permissions in the Entra Admin Center.
Register the Application
- Go to
https://portal.azure.com. - In the left-hand navigation pane, select
Microsoft Entra ID > App registrations. - Click
New registration. - Enter a name for the application.
- Select the desired tenant setup. Since this custom application is for Service Principal use, choose
Any Microsoft Entra ID tenant – Multitenant. - Click
Register. The application management screen opens. Note the value inApplication (client) IDas the OAuthClientId and theDirectory (tenant) IDas the AzureTenant - Navigate to
Certificates & Secretsand define the application authentication type. Two types of authentication are available: certificate (recommended) or client secret- For certificate authentication: In
Certificates & Secrets, selectUpload certificate, then upload the certificate from your local machine. For more information on creating a self-signed certificate, see Create a self-signed certificate - For creating a new client secret: In
Certificates & Secrets, selectNew Client Secretfor the application and specify its duration. After the client secret is saved, Microsoft Office 365 displays the key value. This value is displayed only once, so be sure to record it for future use. Use this value for the OAuthClientSecret
- For certificate authentication: In
- Navigate to
Authenticationand select theAccess tokensoption. - Select the Microsoft Graph API and then select the permissions your app will seek.
- Save your changes.
- If you specified permissions that require admin consent (such as the Application Permissions), you can grant them from the current tenant on the API Permissions page.
Grant Admin Consent
Some custom applications require administrative permissions to operate within a Microsoft Entra ID tenant. This is especially true for applications that use Application permissions, which allow the app to run without a signed-in user. Admin consent can be granted when creating a new application, by adding relevant permissions marked as "Admin Consent Required".
Admin consent is also required to use Client Credentials in the authentication flow.
These permissions must be granted by an admin. To grant admin consent:
- Log in to
https://portal.azure.comwith an administrator account. - Navigate to
Microsoft Entra ID > App registrationsand select your registered application. - Navigate to
API permissions. - Review the permissions listed under
Application permissions. Ensure the necessary API scopes are included for your use case. - Click
Grant admin consentto approve the requested permissions.
This gives your application permissions on the tenant under which it was created.
Consent for Client Credentials
OAuth supports the use of client credentials to authenticate. In a client credentials authentication flow, credentials are created for the authenticating application itself. The auth flow acts just like the usual auth flow, except that there is no prompt for an associated user to provide credentials. All tasks accepted by the application are executed outside of the context of a default user.
Note
Since the embedded OAuth credentials authenticate on a per-user basis, you cannot use them in a client authentication flow. You must always create a custom OAuth application to use client credentials.
- Log in to
https://portal.azure.com - Create a custom OAuth application, as described above.
- Navigate to
App Registrations. - Find the application you just created, and open
API Permissions. - Select the Microsoft Graph permissions. There are two distinct sets of permissions: Delegated and Application.
- For use with Service Principal, specify
Applicationpermissions. - Select the permissions you require for your integration.
Administrative Tasks
The Microsoft Office 365 connector can be used to perform administrative tasks. This can be done by specifying the UserId column to execute CUD operations.
The UserId Column
Many tables expose a special UserId column. This is designed to be used by an administrator to modify records on another user's account. If you are not an administrator or do not desire this behavior, do not specify the UserId when performing an INSERT / UPDATE / DELETE operation. For instance, executing the following will insert a contact for another user:
INSERT INTO Contacts (displayName, CompanyName, UserId) VALUES ('Bill', 'Bob Co', '12345')
The above request will have the overall effect of attempting to add a contact under the resource at /users/12345/contacts. When UserId is not specified, the resources affected will instead be modified under /users/me/contacts. In general if you are not an administrator, you can only affect or view records under /users/me, so it is not recommended to set UserId when you are not an admin.
Important Notes
Configuration Files and Their Paths
- All references to adding configuration files and their paths refer to files and locations on the Jitterbit agent where the connector is installed. These paths are to be adjusted as appropriate depending on the agent and the operating system. If multiple agents are used in an agent group, identical files will be required on each agent.
Advanced Features
This section details a selection of advanced features of the Microsoft Office 365 connector.
User Defined Views
The connector supports the use of user defined views, virtual tables whose contents are decided by a pre-configured user defined query. These views are useful when you cannot directly control queries being issued to the drivers. For an overview of creating and configuring custom views, see User Defined Views.
SSL Configuration
Use SSL Configuration to adjust how connector handles TLS/SSL certificate negotiations. You can choose from various certificate formats. For further information, see the SSLServerCert property under "Connection String Options".
Proxy
To configure the connector using private agent proxy settings, select the Use Proxy Settings checkbox on the connection configuration screen.
Query Processing
The connector offloads as much of the SELECT statement processing as possible to Microsoft Office 365 and then processes the rest of the query in memory (client-side).
For further information, see Query Processing.
Log
For an overview of configuration settings that can be used to refine logging, see Logging. Only two connection properties are required for basic logging, but there are numerous features that support more refined logging, which enables you to use the LogModules connection property to specify subsets of information to be logged.
User Defined Views
The Microsoft Office 365 connector supports the use of user defined views: user-defined virtual tables whose contents are decided by a preconfigured query. User defined views are useful in situations where you cannot directly control the query being issued to the driver; for example, when using the driver from Jitterbit.
Use a user defined view to define predicates that are always applied. If you specify additional predicates in the query to the view, they are combined with the query already defined as part of the view.
There are two ways to create user defined views:
- Create a JSON-formatted configuration file defining the views you want.
- DDL statements.
Define Views Using a Configuration File
User defined views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The connector automatically detects the views specified in this file.
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the connector.
This user defined view configuration file is formatted so that each root element defines the name of a view, and includes a child element, called query, which contains the custom SQL query for the view.
For example:
{
"MyView": {
"query": "SELECT * FROM Events WHERE MyColumn = 'value'"
},
"MyView2": {
"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
}
}
Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json"
Define Views Using DDL Statements
The connector is also capable of creating and altering the schema via DDL Statements such as CREATE LOCAL VIEW, ALTER LOCAL VIEW, and DROP LOCAL VIEW.
Create a View
To create a new view using DDL statements, provide the view name and query as follows:
CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;
If no JSON file exists, the above code creates one. The view is then created in the JSON configuration file and is now discoverable. The JSON file location is specified by the UserDefinedViews connection property.
Alter a View
To alter an existing view, provide the name of an existing view alongside the new query you would like to use instead:
ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';
The view is then updated in the JSON configuration file.
Drop a View
To drop an existing view, provide the name of an existing schema alongside the new query you would like to use instead.
DROP LOCAL VIEW [MyViewName]
This removes the view from the JSON configuration file. It can no longer be queried.
Schema for User Defined Views
In order to avoid a view's name clashing with an actual entity in the data model, user defined views are exposed in the UserViews schema by default. To change the name of the schema used for UserViews, reset the UserViewsSchemaName property.
Work with User Defined Views
For example, a SQL statement with a user defined view called UserViews.RCustomers only lists customers in Raleigh:
SELECT * FROM Customers WHERE City = 'Raleigh';
An example of a query to the driver:
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';
Resulting in the effective query to the source:
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';
That is a very simple example of a query to a user defined view that is effectively a combination of the view query and the view definition. It is possible to compose these queries in much more complex patterns. All SQL operations are allowed in both queries and are combined when appropriate.
SSL Configuration
Customize the SSL Configuration
By default, the connector attempts to negotiate TLS with the server. The server certificate is validated against the default system trusted certificate store. You can override how the certificate gets validated using the SSLServerCert connection property.
To specify another certificate, see the SSLServerCert connection property.
Data Model
The Microsoft Office 365 connector models Microsoft Office 365 objects as an easy-to-use SQL database, using tables, views, and stored procedures. These are defined in schema files, which are simple, easy-to-read text files that define the structure and organization of data. Because the table definitions are dynamically retrieved, any changes to the remote data are immediately reflected in your queries.
Note
The connector uses the Microsoft Office 365 API to process supported filters. Other filters are processed client-side.
Tables
The Tables section, which details standard SQL tables, and the Views section, which lists read-only SQL tables, contain samples from a sample Office 365 site. Your data model is obtained dynamically based on your user credentials and Office 365 site.
The sample site includes the following tables:
| Table | Description |
|---|---|
CalendarView |
Returns a filtered list of calendar events such as occurrences, exceptions, and single instances, within a specified time range from a user's calendar. |
Calendars |
Provides details about calendars associated with users, including names, time zones, and ownership metadata. Maps dynamically to the API fields. |
Contacts |
Contains user contact records, including names, email addresses, job titles, and business phone numbers synced from Office365. |
Conversations |
Stores threaded conversations from Microsoft 365 Groups, including messages and participants. |
EventAttachments |
Displays attachments related to calendar events, including file metadata and associated event identifiers. |
EventOccurrences |
Provides a flattened view of recurring event instances, enabling analysis of each occurrence individually. |
Events |
Captures core details of calendar events, such as start and end times, locations, organizers, and recurrence rules. Maps dynamically to API fields. |
Files |
Lists files stored in OneDrive or SharePoint, with metadata including file names, locations, last modified times, and sharing status. |
Groups |
Includes metadata about Microsoft 365 Groups, such as group names, descriptions, email aliases, and visibility settings. |
MessageAttachments |
Retrieves email message attachments with metadata like attachment names, sizes, and parent message IDs. |
Messages |
Contains email messages from user mailboxes, including subjects, senders, timestamps, and read status. |
Plans |
Displays task plan data from Microsoft Planner, including plan names, owners, and associated group IDs. |
Tasks |
Lists individual tasks from Microsoft To Do or Planner, with details like titles, due dates, and completion status. |
Users |
Supports reading, creating, updating, and deleting Office365 user accounts. Includes profile and licensing details. |
Stored Procedures
Stored Procedures are SQL scripts that extend beyond standard CRUD operations. They can be used to search, update, and modify information in Office365.
Tables
The connector models the data in Microsoft Office 365 as a list of tables in a relational database that can be queried using standard SQL statements.
Microsoft Office 365 Connector Tables
| Name | Description |
|---|---|
Calendars |
Provides details about calendars associated with users, including names, time zones, and ownership metadata. Maps dynamically to the API fields. |
Contacts |
Contains user contact records, including names, email addresses, job titles, and business phone numbers synced from Office365. |
Conversations |
Stores threaded conversations from Microsoft 365 Groups, including messages and participants. |
Events |
Captures core details of calendar events, such as start and end times, locations, organizers, and recurrence rules. Maps dynamically to API fields. |
Files |
Lists files stored in OneDrive or SharePoint, with metadata including file names, locations, last modified times, and sharing status. |
Groups |
Includes metadata about Microsoft 365 Groups, such as group names, descriptions, email aliases, and visibility settings. |
Messages |
Contains email messages from user mailboxes, including subjects, senders, timestamps, and read status. |
Tasks |
Lists individual tasks from Microsoft To Do or Planner, with details like titles, due dates, and completion status. |
Users |
Supports reading, creating, updating, and deleting Office365 user accounts. Includes profile and licensing details. |
Calendars
Provides details about calendars associated with users, including names, time zones, and ownership metadata. Maps dynamically to the API fields.
Table Specific Information
Select
You can query Calendars by specifying an ID or selecting all:
SELECT * FROM Calendars WHERE ID = 'your Calendar ID goes here'
Select a certain column from the entity and filter by that column:
SELECT ID FROM Calendars WHERE name LIKE 'Calendar%'
Insert
Specify a Name as a minimum in order to create a new Calendar:
INSERT INTO Calendars (Name) VALUES ('John')
Note
In case of client credentials, UserId is required in order to create a new Calendar:
INSERT INTO Calendars (Name, UserId) VALUES ('Test123', '92dfdfc6-f1d4-4965-9f71-30e4da4fa7fe');
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the calendar object within the user's mailbox. | |
Etag |
String |
False | Entity tag used for version control of the calendar object. | |
allowedOnlineMeetingProviders |
String |
False | List of online meeting providers (with 1 space after each comma) that are allowed for this calendar, such as Teams, Skype, Webex. | |
canEdit |
Bool |
False | Indicates whether the user has permission to edit events on this calendar. | |
canShare |
Bool |
False | Indicates whether the user has permission to share this calendar with others. | |
canViewPrivateItems |
Bool |
False | Indicates whether the user can view events marked as private on this calendar. | |
changeKey |
String |
False | Token used to identify the version of the calendar object and detect changes. | |
color |
String |
False | Predefined color name assigned to this calendar for visual differentiation. | |
defaultOnlineMeetingProvider |
String |
False | Specifies the default provider used when scheduling online meetings from this calendar. | |
hexColor |
String |
False | Hexadecimal color code associated with the calendar (for example, #FF5733) for custom coloring. | |
isDefaultCalendar |
Bool |
False | Indicates whether this calendar is the user's default calendar. | |
isRemovable |
Bool |
False | Indicates whether this calendar can be removed by the user. | |
isTallyingResponses |
Bool |
False | Specifies whether responses to event invitations on this calendar are being tracked. | |
name |
String |
False | Display name assigned to the calendar, such as 'Work' or 'Personal'. | |
owner_address |
String |
False | Email address of the owner of the calendar. | |
owner_name |
String |
False | Display name of the calendar owner. | |
UserId [KEY] |
String |
False | Identifier of the user associated with the calendar entry. |
Contacts
Contains user contact records, including names, email addresses, job titles, and business phone numbers synced from Office365.
Table Specific Information
Select
You can query Contacts by specifying an ID or selecting all:
SELECT * FROM Contacts WHERE ID = 'your Contact ID goes here'
Select a certain column from the entity and filter by that column:
SELECT GivenName FROM Contacts WHERE GivenName LIKE 'John%'
Insert
Specify a GivenName and a Surname as a minimum in order to create a new Contact:
INSERT INTO Contacts (GivenName, Surname) VALUES ('John', 'Smith')
Note
In case of client credentials, UserId is required in order to create a new Contact:
INSERT INTO Contacts (GivenName, Surname, UserId) VALUES ('John', 'Smith', '92dfdfc6-f1d4-4965-9f71-30e4da4fa7fe')
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the contact record. | |
Etag |
String |
False | Entity tag used to determine whether the contact has changed since it was last retrieved. | |
categories |
String |
False | List of categories assigned to the contact for organization or filtering. | |
changeKey |
String |
False | Version key that updates each time the contact is modified. | |
createdDateTime |
Datetime |
False | Timestamp indicating when the contact was created in the system. | |
lastModifiedDateTime |
Datetime |
False | Timestamp indicating the last time the contact was updated. | |
assistantName |
String |
False | Full name of the contact's assistant. | |
birthday |
Datetime |
False | The contact's date of birth. | |
businessAddress_city |
String |
False | City portion of the contact's business address. | |
businessAddress_countryOrRegion |
String |
False | Country or region of the contact's business address. | |
businessAddress_postalCode |
String |
False | Postal code of the contact's business address. | |
businessAddress_state |
String |
False | State or province of the contact's business address. | |
businessAddress_street |
String |
False | Street portion of the contact's business address. | |
businessHomePage |
String |
False | URL of the contact's business home page. | |
businessPhones |
String |
False | One or more business phone numbers associated with the contact. | |
children |
String |
False | Names of the contact's children, separated by commas. | |
companyName |
String |
False | Name of the company where the contact works. | |
department |
String |
False | Department within the company to which the contact belongs. | |
displayName |
String |
False | The contact's full display name as shown in the address book. | |
emailAddresses |
String |
False | List of email addresses associated with the contact. | |
fileAs |
String |
False | Text used to file and sort the contact in address books. | |
generation |
String |
False | Suffix denoting generational titles such as Jr., Sr., III. | |
givenName |
String |
False | The contact's first name or given name. | |
homeAddress_city |
String |
False | City portion of the contact's home address. | |
homeAddress_countryOrRegion |
String |
False | Country or region of the contact's home address. | |
homeAddress_postalCode |
String |
False | Postal code of the contact's home address. | |
homeAddress_state |
String |
False | State or province of the contact's home address. | |
homeAddress_street |
String |
False | Street portion of the contact's home address. | |
homePhones |
String |
False | One or more home phone numbers associated with the contact. | |
imAddresses |
String |
False | Instant messaging (IM) addresses associated with the contact. | |
initials |
String |
False | The contact's initials, typically derived from given and family names. | |
jobTitle |
String |
False | The contact's job title or position within the organization. | |
manager |
String |
False | Name of the contact's manager or supervisor. | |
middleName |
String |
False | The contact's middle name. | |
mobilePhone |
String |
False | Primary mobile phone number for the contact. | |
nickName |
String |
False | Nickname or informal name used for the contact. | |
officeLocation |
String |
False | Location or room number of the contact's office. | |
otherAddress_city |
String |
False | City portion of an alternate address for the contact. | |
otherAddress_countryOrRegion |
String |
False | Country or region of the contact's alternate address. | |
otherAddress_postalCode |
String |
False | Postal code of the contact's alternate address. | |
otherAddress_state |
String |
False | State or province of the contact's alternate address. | |
otherAddress_street |
String |
False | Street portion of the contact's alternate address. | |
parentFolderId |
String |
False | Identifier of the folder that contains the contact. | |
personalNotes |
String |
False | Freeform notes or annotations the user has added about the contact. | |
profession |
String |
False | The contact's profession or area of expertise. | |
spouseName |
String |
False | Name of the contact's spouse or partner. | |
surname |
String |
False | The contact's family name or surname. | |
title |
String |
False | Courtesy title or salutation for the contact such as Mr., Ms., Dr. | |
yomiCompanyName |
String |
False | Phonetic spelling of the contact's company name in Japanese kana. | |
yomiGivenName |
String |
False | Phonetic spelling of the contact's first name in Japanese kana. | |
yomiSurname |
String |
False | Phonetic spelling of the contact's last name in Japanese kana. | |
UserId [KEY] |
String |
False | Identifier for the user to whom the contact belongs. |
Conversations
Stores threaded conversations from Microsoft 365 Groups, including messages and participants.
Table Specific Information
Select
The GroupId is required to get group Conversations.
SELECT * FROM Conversations WHERE GroupId = 'your GroupId goes here'
You can also get group Conversations by using the GroupId and the Conversation Id.
SELECT * FROM Conversations WHERE ID = 'conversation ID here' AND GroupId = 'your GroupId goes here'
Insert
Specify GroupId, Topic, Content, and NewParticipants to create a new Conversation. NewParticipants is a complex type. Its format is as follows: 'name1, email1; name2, email2'.
INSERT INTO Conversations (GroupId, Topic, Content, NewParticipants) VALUES ('GroupId here', 'This is a test topic.', 'Hi, How Are you?', 'someone, someone@example.com')
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the conversation thread. | |
Etag |
String |
False | Entity tag used to detect changes to the conversation since it was last retrieved. | |
hasAttachments |
Bool |
False | Indicates whether any messages in the conversation contain attachments. | |
lastDeliveredDateTime |
Datetime |
False | Timestamp of the most recent message delivered in the conversation. | |
preview |
String |
False | Text snippet providing a short preview of the latest message in the conversation. | |
topic |
String |
False | The subject or topic line associated with the conversation. | |
uniqueSenders |
String |
False | Comma-separated list of unique senders who have contributed to the conversation. Each sender is listed once. For example: alice@example.com, bob@example.com. | |
GroupId [KEY] |
String |
False | Identifier of the Microsoft 365 group associated with the conversation. | |
Content |
String |
False | Full content of the conversation, including messages and attachments where applicable. | |
NewParticipants |
String |
False | Comma-separated list of participants who have joined the conversation since the last message. For example: charlie@example.com, diana@example.com. |
Events
Captures core details of calendar events, such as start and end times, locations, organizers, and recurrence rules. Maps dynamically to API fields.
Table Specific Information
Select
The 'me' property is used by default to return events.
You can use the UserId in the WHERE clause to override this when searching for Events.
SELECT * FROM Events WHERE UserId = 'abc123' AND Subject LIKE '%test%'
The GroupId can be a calendar type ID or a group Id. For example:
SELECT * FROM Events WHERE GroupId = 'enter your group ID here'
Insert
To create a new event, start and end are required, including the timezone.
INSERT INTO Events (Subject, Body_Content, Start_DateTime, Start_TimeZone, End_DateTime, End_TimeZone) VALUES ('New Test Event', 'Event created using Office365Provider', '2016-01-01T10:00:00', 'UTC', '2016-01-01T11:00:00', 'UTC')
Note: By default this statement will create your event under the default calendar.
Note
In case of client credentials, UserId is required in order to create a new Event:
INSERT INTO Events (Subject, Body_Content, Start_DateTime, Start_TimeZone, End_DateTime, End_TimeZone, UserId) VALUES ('New Test Event', 'Event created using Office365Provider', '2016-01-01T10:00:00', 'UTC', '2016-01-01T11:00:00', 'UTC', '92dfdfc6-f1d4-4965-9f71-30e4da4fa7fe')
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the event record. | |
Etag |
String |
False | Entity tag used to identify changes to the event data since it was last retrieved. | |
categories |
String |
False | List of categories assigned to the event for organization or filtering. | |
changeKey |
String |
False | Version key that updates every time the event is changed. | |
createdDateTime |
Datetime |
False | Timestamp indicating when the event was created. | |
lastModifiedDateTime |
Datetime |
False | Timestamp indicating the most recent update to the event. | |
allowNewTimeProposals |
Bool |
False | Indicates whether attendees are allowed to propose a new meeting time. | |
attendees |
String |
False | List of attendees invited to the event. For example: alice@example.com, bob@example.com. | |
body_content |
String |
False | Full message body or description of the event. | |
body_contentType |
String |
False | Format of the body content, such as text or HTML. | |
bodyPreview |
String |
False | Short preview or snippet from the event description. | |
end_dateTime |
Datetime |
False | End time of the event in local time. | |
end_timeZone |
String |
False | Time zone associated with the end time. | |
hasAttachments |
Bool |
False | Indicates whether the event has associated file attachments. | |
hideAttendees |
Bool |
False | True if attendee information is hidden from other participants. | |
iCalUId |
String |
False | Unique identifier used to synchronize the event across calendar systems. | |
importance |
String |
False | Importance level of the event, such as low, normal, or high. | |
isAllDay |
Bool |
False | True if the event spans the entire day without specific start or end times. | |
isCancelled |
Bool |
False | True if the event has been canceled. | |
isDraft |
Bool |
False | True if the event is a draft and has not been finalized. | |
isOnlineMeeting |
Bool |
False | True if the event includes an online meeting component. | |
isOrganizer |
Bool |
False | True if the current user is the organizer of the event. | |
isReminderOn |
Bool |
False | Indicates whether a reminder is enabled for the event. | |
location_address_city |
String |
False | City component of the event's location. | |
location_address_countryOrRegion |
String |
False | Country or region of the event's location. | |
location_address_postalCode |
String |
False | Postal code for the event location. | |
location_address_state |
String |
False | State or province of the event location. | |
location_address_street |
String |
False | Street address where the event takes place. | |
location_coordinates_accuracy |
Double |
False | Precision of the location's geographic coordinates in meters. | |
location_coordinates_altitude |
Double |
False | Altitude of the event location in meters above sea level. | |
location_coordinates_altitudeAccuracy |
Double |
False | Accuracy of the altitude measurement in meters. | |
location_coordinates_latitude |
Double |
False | Latitude coordinate of the event location. | |
location_coordinates_longitude |
Double |
False | Longitude coordinate of the event location. | |
location_displayName |
String |
False | Display name of the event location. | |
location_locationEmailAddress |
String |
False | Email address of the location resource, such as a meeting room. | |
location_locationType |
String |
False | Type of location, such as default, conference room, or home address. | |
location_locationUri |
String |
False | URI or web-based reference for the location, if available. | |
location_uniqueId |
String |
False | Unique identifier for the location object. | |
location_uniqueIdType |
String |
False | Source of the location ID, such as directory or locationStore. | |
locations |
String |
False | List of additional locations for the event. For example: Conference Room A, Main Hall. | |
onlineMeeting_conferenceId |
String |
False | Conference ID used by the online meeting provider. | |
onlineMeeting_joinUrl |
String |
False | Join URL used by participants to access the online meeting. | |
onlineMeeting_phones |
String |
False | Phone numbers available for dial-in access to the online meeting. | |
onlineMeeting_quickDial |
String |
False | Quick dial string that participants can use to join the meeting quickly. | |
onlineMeeting_tollFreeNumbers |
String |
False | Toll-free phone numbers for joining the online meeting. For example: 8001234567, 8887654321. | |
onlineMeeting_tollNumber |
String |
False | Standard toll number for dialing into the online meeting. | |
onlineMeetingProvider |
String |
False | Online meeting provider used for the event, such as Teams or Skype for Business. | |
onlineMeetingUrl |
String |
False | Full URL to the online meeting interface. | |
organizer_emailAddress_address |
String |
False | Email address of the event organizer. | |
organizer_emailAddress_name |
String |
False | Display name of the event organizer. | |
originalEndTimeZone |
String |
False | Time zone that was originally assigned to the event end time. | |
originalStart |
Datetime |
False | Original start time of the event before any changes were made. | |
originalStartTimeZone |
String |
False | Time zone that was originally assigned to the event start time. | |
recurrence_pattern_dayOfMonth |
Int |
False | Day of the month on which the event recurs, for monthly patterns. | |
recurrence_pattern_daysOfWeek |
String |
False | Days of the week when the event recurs. For example: Monday, Wednesday, Friday. | |
recurrence_pattern_firstDayOfWeek |
String |
False | Day considered the start of the week for recurrence calculations. | |
recurrence_pattern_index |
String |
False | Occurrence within the month for weekly patterns, such as first or last. | |
recurrence_pattern_interval |
Int |
False | Interval between recurrences, such as every 2 weeks or every 3 days. | |
recurrence_pattern_month |
Int |
False | Month of the year when the event occurs, used for yearly patterns. | |
recurrence_pattern_type |
String |
False | Pattern type for recurrence, such as daily, weekly, monthly, or yearly. | |
recurrence_range_endDate |
Datetime |
False | Date on which the recurring event ends. | |
recurrence_range_numberOfOccurrences |
Int |
False | Number of times the event is set to occur. | |
recurrence_range_recurrenceTimeZone |
String |
False | Time zone used for the recurrence pattern. | |
recurrence_range_startDate |
Datetime |
False | Start date of the recurrence range. | |
recurrence_range_type |
String |
False | Type of recurrence range, such as endDate, numberOfOccurrences, or noEnd. | |
reminderMinutesBeforeStart |
Int |
False | Number of minutes before the start time when a reminder is triggered. | |
responseRequested |
Bool |
False | True if the organizer has requested attendee responses. | |
responseStatus_response |
String |
False | The current response status from an attendee, such as accepted or declined. | |
responseStatus_time |
Datetime |
False | Timestamp of the attendee's most recent response. | |
sensitivity |
String |
False | Sensitivity level of the event, such as normal, personal, private, or confidential. | |
seriesMasterId |
String |
False | Identifier for the master event in a recurring series. | |
showAs |
String |
False | How the event is displayed on calendars, such as free, busy, or out of office. | |
start_dateTime |
Datetime |
False | Start time of the event in local time. | |
start_timeZone |
String |
False | Time zone associated with the start time. | |
subject |
String |
False | Subject or title of the event. | |
transactionId |
String |
False | Client-defined identifier to detect duplicate event submissions. | |
type |
String |
False | Type of event, such as singleInstance, occurrence, exception, or seriesMaster. | |
webLink |
String |
False | URL that opens the event in a web browser. | |
UserId |
String |
False | Identifier of the user who owns or created the event. | |
GroupId |
String |
False | Identifier of the Microsoft 365 group associated with the event. |
Files
Lists files stored in OneDrive or SharePoint, with metadata including file names, locations, last modified times, and sharing status.
Table Specific Information
Select
Retrieve files by using the UserId or File ID (Id) for instance, or simply filter by a certain column:
SELECT * FROM Files WHERE UserId = 'MyUserId'
SELECT Name, LastModifiedDateTime FROM Files WHERE Name LIKE 'test%'
To work for Folder-level files, we need to specify the parentReference_path in the query.
SELECT * FROM files WHERE parentReference_path = '/drives/b!3LIvU2zISEqicGlWkgVknKxKT-q7gM5IqlBJ4w4MZqaX6BQc_vtwQpnqaldXkH9I/root:/Test_Shubham';
INSERT
INSERT operation is not supported for this table.
Note: See UploadFile (or CreateFolder to create a folder) to insert and update content to a file.
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the file object. | |
Etag |
String |
False | Entity tag representing the version of the file for concurrency control. | |
createdBy_application_displayName |
String |
False | Display name of the application that created the file. | |
createdBy_application_id |
String |
False | Identifier of the application that created the file. | |
createdDateTime |
Datetime |
False | Timestamp indicating when the file was created. | |
description |
String |
False | User-defined or system-generated description of the file. | |
lastModifiedBy_application_displayName |
String |
False | Display name of the application that last modified the file. | |
lastModifiedBy_application_id |
String |
False | Identifier of the application that last modified the file. | |
lastModifiedDateTime |
Datetime |
False | Timestamp indicating the last modification time of the file. | |
name |
String |
False | Name of the file. | |
parentReference_driveId |
String |
False | Drive ID of the parent folder that contains the file. | |
parentReference_driveType |
String |
False | Type of drive (for example, personal, business, or document library) where the file resides. | |
parentReference_id |
String |
False | ID of the parent folder or drive reference. | |
parentReference_name |
String |
False | Name of the parent folder containing the file. | |
parentReference_path |
String |
False | Path from the drive root to the parent folder. | |
parentReference_shareId |
String |
False | Sharing ID associated with the parent reference. | |
parentReference_sharepointIds_listId |
String |
False | SharePoint list ID linked to the parent reference. | |
parentReference_sharepointIds_listItemId |
String |
False | List item ID in SharePoint for the parent reference. | |
parentReference_sharepointIds_listItemUniqueId |
String |
False | Unique ID of the list item in SharePoint for the parent reference. | |
parentReference_sharepointIds_siteId |
String |
False | Site ID in SharePoint associated with the parent reference. | |
parentReference_sharepointIds_siteUrl |
String |
False | URL of the SharePoint site related to the parent reference. | |
parentReference_sharepointIds_tenantId |
String |
False | Tenant ID for the SharePoint environment of the parent reference. | |
parentReference_sharepointIds_webId |
String |
False | Web ID in SharePoint for the parent reference. | |
parentReference_siteId |
String |
False | Site ID associated with the file's parent location. | |
webUrl |
String |
False | Web-accessible URL pointing to the file. | |
audio_album |
String |
False | Album title associated with the audio file. | |
audio_albumArtist |
String |
False | Primary artist for the album associated with the audio file. | |
audio_artist |
String |
False | Artist of the audio file. | |
audio_bitrate |
Long |
False | Bitrate of the audio content in bits per second. | |
audio_composers |
String |
False | List of composers for the audio content. | |
audio_copyright |
String |
False | Copyright statement for the audio file. | |
audio_disc |
Int |
False | Disc number for multi-disc audio content. | |
audio_discCount |
Int |
False | Total number of discs in the album. | |
audio_duration |
Long |
False | Duration of the audio content in milliseconds. | |
audio_genre |
String |
False | Genre of the audio content. | |
audio_hasDrm |
Bool |
False | Indicates whether the audio file is protected by digital rights management. | |
audio_isVariableBitrate |
Bool |
False | Indicates whether the audio file uses variable bitrate encoding. | |
audio_title |
String |
False | Title of the audio track. | |
audio_track |
Int |
False | Track number of the audio file within the album. | |
audio_trackCount |
Int |
False | Total number of tracks in the album. | |
audio_year |
Int |
False | Year the audio track was released. | |
content |
String |
False | File contents in raw or encoded format. | |
cTag |
String |
False | Client tag used for managing file changes and synchronization. | |
deleted_state |
String |
False | Indicates the deletion state of the file, such as deleted or notDeleted. | |
file_hashes_crc32Hash |
String |
False | CRC32 hash value used to validate file content integrity. | |
file_hashes_quickXorHash |
String |
False | QuickXorHash used for content comparison and validation. | |
file_hashes_sha1Hash |
String |
False | SHA-1 hash of the file contents. | |
file_hashes_sha256Hash |
String |
False | SHA-256 hash of the file contents. | |
file_mimeType |
String |
False | MIME type indicating the file format, such as text/plain or application/pdf. | |
file_processingMetadata |
Bool |
False | Indicates whether metadata processing is complete for the file. | |
fileSystemInfo_createdDateTime |
Datetime |
False | Creation timestamp of the file from the file system. | |
fileSystemInfo_lastAccessedDateTime |
Datetime |
False | Last accessed timestamp recorded by the file system. | |
fileSystemInfo_lastModifiedDateTime |
Datetime |
False | Last modified timestamp recorded by the file system. | |
folder_childCount |
Int |
False | Number of child items within the folder. | |
folder_view_sortBy |
String |
False | Default column used to sort items in the folder view. | |
folder_view_sortOrder |
String |
False | Sort order (ascending or descending) used in the folder view. | |
folder_view_viewType |
String |
False | Type of folder view, such as details or thumbnails. | |
image_height |
Int |
False | Height of the image in pixels. | |
image_width |
Int |
False | Width of the image in pixels. | |
location_altitude |
Double |
False | Altitude where the image or file was captured, in meters. | |
location_latitude |
Double |
False | Latitude coordinate where the file or photo was created. | |
location_longitude |
Double |
False | Longitude coordinate where the file or photo was created. | |
package_type |
String |
False | Type of file package, such as oneNote or PDFPackage. | |
pendingOperations_pendingContentUpdate_queuedDateTime |
Datetime |
False | Timestamp when a pending content update was queued. | |
photo_cameraMake |
String |
False | Manufacturer of the camera used to take the photo. | |
photo_cameraModel |
String |
False | Model of the camera used to take the photo. | |
photo_exposureDenominator |
Double |
False | Denominator value for the exposure time used in the photo. | |
photo_exposureNumerator |
Double |
False | Numerator value for the exposure time used in the photo. | |
photo_fNumber |
Double |
False | F-number indicating the aperture setting of the camera. | |
photo_focalLength |
Double |
False | Focal length of the camera lens in millimeters. | |
photo_iso |
Int |
False | ISO setting used when the photo was taken. | |
photo_orientation |
Int |
False | Orientation value of the photo, indicating how it was rotated when taken. | |
photo_takenDateTime |
Datetime |
False | Timestamp when the photo was captured. | |
publication_level |
String |
False | Indicates the publication level, such as draft or published. | |
publication_versionId |
String |
False | Version ID of the published file. | |
remoteItem_createdBy_application_displayName |
String |
False | Display name of the application that originally created the remote item. | |
remoteItem_createdBy_application_id |
String |
False | Identifier of the application that created the remote item. | |
remoteItem_createdDateTime |
Datetime |
False | Timestamp when the remote item was created. | |
remoteItem_file_hashes_crc32Hash |
String |
False | CRC32 hash of the remote file used to verify data integrity. | |
remoteItem_file_hashes_quickXorHash |
String |
False | QuickXorHash of the remote file for efficient content comparison. | |
remoteItem_file_hashes_sha1Hash |
String |
False | SHA-1 hash of the remote file content. | |
remoteItem_file_hashes_sha256Hash |
String |
False | SHA-256 hash of the remote file content. | |
remoteItem_file_mimeType |
String |
False | MIME type of the remote file, identifying its format. | |
remoteItem_file_processingMetadata |
Bool |
False | Indicates whether metadata processing is complete for the remote file. | |
remoteItem_fileSystemInfo_createdDateTime |
Datetime |
False | Timestamp of when the remote file was created in the file system. | |
remoteItem_fileSystemInfo_lastAccessedDateTime |
Datetime |
False | Timestamp of when the remote file was last accessed. | |
remoteItem_fileSystemInfo_lastModifiedDateTime |
Datetime |
False | Timestamp of when the remote file was last modified. | |
remoteItem_folder_childCount |
Int |
False | Number of child items in the remote folder. | |
remoteItem_folder_view_sortBy |
String |
False | Field used to sort child items in the remote folder view. | |
remoteItem_folder_view_sortOrder |
String |
False | Sort order used in the remote folder view (ascending or descending). | |
remoteItem_folder_view_viewType |
String |
False | Type of view used for the remote folder, such as list or grid. | |
remoteItem_id |
String |
False | Unique identifier for the remote item. | |
remoteItem_image_height |
Int |
False | Height of the remote image in pixels. | |
remoteItem_image_width |
Int |
False | Width of the remote image in pixels. | |
remoteItem_lastModifiedDateTime |
Datetime |
False | Timestamp indicating when the remote item was last modified. | |
remoteItem_name |
String |
False | Name of the remote item. | |
remoteItem_package_type |
String |
False | Package type of the remote item, such as oneNote or PDFPackage. | |
remoteItem_parentReference_driveId |
String |
False | Drive ID of the parent folder of the remote item. | |
remoteItem_parentReference_driveType |
String |
False | Type of drive containing the remote item. | |
remoteItem_parentReference_id |
String |
False | Identifier of the remote item's parent folder. | |
remoteItem_parentReference_name |
String |
False | Name of the folder containing the remote item. | |
remoteItem_parentReference_path |
String |
False | Full path from the drive root to the remote item's parent. | |
remoteItem_parentReference_shareId |
String |
False | Share ID associated with the parent of the remote item. | |
remoteItem_parentReference_sharepointIds_listId |
String |
False | SharePoint list ID associated with the remote item's parent. | |
remoteItem_parentReference_sharepointIds_listItemId |
String |
False | SharePoint list item ID for the remote item's parent. | |
remoteItem_parentReference_sharepointIds_listItemUniqueId |
String |
False | Unique ID of the SharePoint list item for the remote item's parent. | |
remoteItem_parentReference_sharepointIds_siteId |
String |
False | SharePoint site ID associated with the parent of the remote item. | |
remoteItem_parentReference_sharepointIds_siteUrl |
String |
False | SharePoint site URL associated with the remote item's parent. | |
remoteItem_parentReference_sharepointIds_tenantId |
String |
False | Tenant ID of the SharePoint site for the remote item's parent. | |
remoteItem_parentReference_sharepointIds_webId |
String |
False | Web ID of the SharePoint site for the remote item's parent. | |
remoteItem_parentReference_siteId |
String |
False | Site ID where the remote item's parent folder is located. | |
remoteItem_shared_scope |
String |
False | Scope of sharing for the remote item, such as users or organization. | |
remoteItem_shared_sharedDateTime |
Datetime |
False | Timestamp when the remote item was shared. | |
remoteItem_size |
Long |
False | Size of the remote item in bytes. | |
remoteItem_specialFolder_name |
String |
False | Name of the special folder associated with the remote item, such as documents or photos. | |
remoteItem_video_audioBitsPerSample |
Int |
False | Bit depth per audio sample in the remote video file. | |
remoteItem_video_audioChannels |
Int |
False | Number of audio channels in the remote video file. | |
remoteItem_video_audioSamplesPerSecond |
Int |
False | Audio sample rate in samples per second for the remote video. | |
remoteItem_video_bitrate |
Int |
False | Bitrate of the remote video content in bits per second. | |
remoteItem_video_duration |
Long |
False | Duration of the remote video in milliseconds. | |
remoteItem_video_fourCC |
String |
False | Four-character code (FourCC) identifying the video codec of the remote video. | |
remoteItem_video_frameRate |
Double |
False | Frame rate of the remote video in frames per second. | |
remoteItem_video_height |
Int |
False | Height of the remote video in pixels. | |
remoteItem_video_width |
Int |
False | Width of the remote video in pixels. | |
remoteItem_webDavUrl |
String |
False | WebDAV URL that provides remote access to the item. | |
remoteItem_webUrl |
String |
False | Publicly accessible web URL of the remote item. | |
searchResult_onClickTelemetryUrl |
String |
False | URL used to collect telemetry when a search result is clicked. | |
shared_owner_application_displayName |
String |
False | Display name of the application that owns the shared item. | |
shared_owner_application_id |
String |
False | Identifier of the application that owns the shared item. | |
shared_scope |
String |
False | Scope of the sharing, such as anonymous or organization. | |
shared_sharedDateTime |
Datetime |
False | Timestamp indicating when the item was shared. | |
sharepointIds_listId |
String |
False | SharePoint list ID associated with the item. | |
sharepointIds_listItemId |
String |
False | List item ID within the SharePoint list. | |
sharepointIds_listItemUniqueId |
String |
False | Globally unique identifier of the SharePoint list item. | |
sharepointIds_siteId |
String |
False | SharePoint site ID where the item resides. | |
sharepointIds_siteUrl |
String |
False | URL of the SharePoint site containing the item. | |
sharepointIds_tenantId |
String |
False | Tenant ID of the SharePoint organization. | |
sharepointIds_webId |
String |
False | Web ID of the SharePoint site. | |
size |
Long |
False | Total size of the file in bytes. | |
specialFolder_name |
String |
False | Type of special folder, such as documents or photos, associated with the item. | |
video_audioBitsPerSample |
Int |
False | Number of bits per audio sample in the video file. | |
video_audioChannels |
Int |
False | Number of audio channels in the video. | |
video_audioFormat |
String |
False | Format of the audio stream embedded in the video. | |
video_audioSamplesPerSecond |
Int |
False | Sampling rate of the audio stream in samples per second. | |
video_bitrate |
Int |
False | Bitrate of the video content in bits per second. | |
video_duration |
Long |
False | Total duration of the video in milliseconds. | |
video_fourCC |
String |
False | FourCC representing the video codec. | |
video_frameRate |
Double |
False | Video frame rate measured in frames per second. | |
video_height |
Int |
False | Vertical resolution of the video in pixels. | |
video_width |
Int |
False | Horizontal resolution of the video in pixels. | |
webDavUrl |
String |
False | WebDAV endpoint URL to access the file remotely. | |
UserId |
String |
False | Identifier of the user who owns or uploaded the file. |
Groups
Includes metadata about Microsoft 365 Groups, such as group names, descriptions, email aliases, and visibility settings.
Table Specific Information
Groups require Administrator permissions. To work with them, you must create your own custom OAuth App and set the appropriate OAuthClientId and OAuthClientSecret. In this app, you must configure it to request the Group.Read.All and the Group.ReadWrite.All permissions. This can be done at https://apps.dev.microsoft.com, or in the App Registrations panel at http://portal.azure.com. See Creating an Entra ID (Microsoft Entra ID) Application for more details on creating a custom app.
To authorize Groups permissions, an administrator must grant the Groups permissions for your organization at large. This can be done via the administrator authorization endpoint. Simply have the administrator navigate to the following web page and grant permissions. Then run the OAuth authorization as normal afterwards.
https://login.microsoftonline.com/common/adminconsent?client_id=[YourClientId]&redirect_uri=http://localhost:33333
Note that if your organization has multiple tenants, you may replace the /common/ in the URL with the tenant ID to indicate which tenant to grant permissions for.
Select
Retrieve all groups, specify a GroupId (Id), or simply filter by a certain column:
SELECT * FROM Groups WHERE Id = 'Group Id here'
SELECT Id, Description, DisplayName FROM Groups WHERE DisplayName = 'test'
Insert
The following are required to create a new Security Group:
INSERT INTO Groups (DisplayName, MailEnabled, MailNickname, SecurityEnabled) VALUES ('Test group', false, 'test', true)
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Globally Unique Identifier (GUID) for the Microsoft 365 group. | |
Etag |
String |
False | Entity tag value used for optimistic concurrency checks on the group record. | |
deletedDateTime |
Datetime |
False | Date and time when the group was soft deleted. Null if the group is active. | |
allowExternalSenders |
Bool |
False | Indicates whether people outside the organization can send email to the group. | |
assignedLabels |
String |
False | Sensitivity labels currently applied to the group, stored in JSON format. | |
assignedLicenses |
String |
False | List of Microsoft Entra ID license SKUs that have been assigned to the group. | |
autoSubscribeNewMembers |
Bool |
False | Indicates whether any new member added to the group is automatically subscribed to receive email conversations. | |
classification |
String |
False | Data classification label, such as Public or Confidential, that the organization has applied to the group. | |
createdDateTime |
Datetime |
False | Timestamp indicating when the group was created. | |
description |
String |
False | Optional text describing the group's purpose or intended use. | |
displayName |
String |
False | Friendly display name for the group as shown in address books. | |
expirationDateTime |
Datetime |
False | Date and time when the group expires and is deleted if it is not renewed. | |
groupTypes |
String |
False | Collection that defines the group type. Accepted values are Unified for Microsoft 365 groups, DynamicMembership for dynamic groups. | |
hasMembersWithLicenseErrors |
Bool |
False | Indicates whether any group members have license assignment errors. | |
hideFromAddressLists |
Bool |
False | Indicates whether the group is hidden from the global address list. | |
hideFromOutlookClients |
Bool |
False | Indicates whether the group does not appear in Outlook clients. | |
isArchived |
Bool |
False | Indicates whether the group has been archived in Microsoft Teams. | |
isSubscribedByMail |
Bool |
False | Indicates whether the current user is subscribed to receive email for this group. | |
licenseProcessingState_state |
String |
False | Current status of processing group-based license assignments, such as InProgress or Completed. | |
mail |
String |
False | Primary SMTP address of the group. | |
mailEnabled |
Bool |
False | Indicates whether the group is configured to receive mail. Combined with securityEnabled determines group category. | |
mailNickname |
String |
False | Alias for the group that is unique within the organization and forms the local part of its email address. | |
membershipRule |
String |
False | Rule expression that defines the dynamic group membership, written in Microsoft Entra ID rule syntax. | |
membershipRuleProcessingState |
String |
False | Processing state of the dynamic membership rule, such as On or Paused. | |
onPremisesDomainName |
String |
False | Domain name where the corresponding on-premises group is located. | |
onPremisesLastSyncDateTime |
Datetime |
False | Timestamp when the group was last synchronized from the on-premises directory. | |
onPremisesNetBiosName |
String |
False | NetBIOS name of the on-premises domain for the group. | |
onPremisesProvisioningErrors |
String |
False | Collection of errors encountered during on-premises synchronization provisioning. | |
onPremisesSamAccountName |
String |
False | Security Account Manager (SAM) account name of the on-premises group. | |
onPremisesSecurityIdentifier |
String |
False | On-premises security identifier (SID) that maps to the cloud group. | |
onPremisesSyncEnabled |
Bool |
False | Indicates whether the group continues to be synchronized from the on-premises directory. | |
preferredDataLocation |
String |
False | Azure geography where the group's SharePoint and OneDrive data is stored. | |
preferredLanguage |
String |
False | Default language tag, for example en-US, used in group communications. | |
proxyAddresses |
String |
False | Set of proxy email addresses assigned to the group, such as SMTP:alias@example.com, sip:group@example.com. | |
renewedDateTime |
Datetime |
False | Timestamp when the group was last renewed through lifecycle policy. | |
securityEnabled |
Bool |
False | Indicates whether the group is security-enabled. When true and mailEnabled is also true, the group is a mail-enabled security group. | |
securityIdentifier |
String |
False | SID assigned to the group in Microsoft Entra ID. | |
theme |
String |
False | Custom theme identifier applied to the group in SharePoint or Teams. | |
unseenCount |
Int |
False | Number of group posts that the current user has not yet read. | |
visibility |
String |
False | Defines who can see the group. Possible values are Private, Public, HiddenMembership, or empty (interpreted as Public). |
Messages
Contains email messages from user mailboxes, including subjects, senders, timestamps, and read status.
Table Specific Information
Select
You can retrieve all from Messages, specify a Message (Id), UserId, or ParentFolderId, or you can filter results by a certain column:
SELECT * FROM Messages WHERE Id = 'MyMessageId'
SELECT * FROM Messages WHERE UserId = 'MyUserId'
SELECT * FROM Messages WHERE ParentFolderId = 'MyParentfolderId'
SELECT * FROM Messages WHERE ParentFolderId = 'Drafts'
SELECT DisplayName, ID FROM Users WHERE DisplayName LIKE 'John%'
Insert
After the INSERT, a new Message will be created in the User's Drafts folder.
INSERT INTO Messages (Subject, Body_Content, UserId) VALUES ('New test Email', 'Test Email created.', 'User ID goes here')
Note: To send the mail, see SendMail.
Update
To update a message:
UPDATE Messages SET Subject = 'Email Updated', Body_Content = 'New Body Content' WHERE ID = 'MyMessageId'
Preserving HTML Formatting
If you are executing an INSERT or UPDATE and your message has HTML in its body_content, you must set body_contentType to 'html'.
UPDATE Messages SET body_content = '<my html document>', body_contentType = 'html'
If you don't set body_contentType to 'html', the HTML content of the message (such as elements and tags) will be visible in the body of the resulting email as plaintext instead of being processed as HTML.
Known Issues
This table may return an inconsistent number of results. That is, it can return a number of rows for one query and a different numbers of rows in subsequent queries, even when your messages remain unchanged. This means that some messages may be missing when querying this table.
This is a known bug in the Microsoft Graph API.
There is a workaround that allows the connector to retrieve all messages, but it comes with a tradeoff: 'events' and 'contacts' data will be returned along with 'messages' data. When using this workaround, you must use filtering to distinguish between message and non-message rows.
To enable this workaround, add "ClientSidePaging=true;" (without quotation marks) in the value of the Other connection property.
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Unique identifier for the message. | |
Etag |
String |
False | Entity tag representing the version of the message, used for concurrency control. | |
categories |
String |
False | List of categories assigned to the message, such as Red Category or Blue Category. | |
changeKey |
String |
False | Version-specific identifier that changes whenever the message is updated. | |
createdDateTime |
Datetime |
False | Timestamp indicating when the message was created in the mailbox. | |
lastModifiedDateTime |
Datetime |
False | Timestamp of the last modification to the message. | |
bccRecipients |
String |
False | Collection of recipients who received the message as BCC. | |
body_content |
String |
False | HTML or plain text content of the message body. | |
body_contentType |
String |
False | Specifies whether the message body content is in HTML or plain text format. | |
bodyPreview |
String |
False | Text preview of the message body, typically the first few lines. | |
ccRecipients |
String |
False | Collection of recipients who received the message as CC. | |
conversationId |
String |
False | Identifier that groups related messages into the same conversation thread. | |
conversationIndex |
Binary |
False | Binary value used to sort and order messages within the same conversation. | |
flag_completedDateTime_dateTime |
Datetime |
False | Timestamp marking when the follow-up flag was completed. | |
flag_completedDateTime_timeZone |
String |
False | Time zone associated with the flag completion date and time. | |
flag_flagStatus |
String |
False | Status of the follow-up flag, such as notFlagged, complete, or flagged. | |
from_emailAddress_address |
String |
False | Email address of the sender shown in the From field. | |
from_emailAddress_name |
String |
False | Display name of the sender shown in the From field. | |
hasAttachments |
Bool |
False | Indicates whether the message includes one or more file attachments. | |
importance |
String |
False | Priority level of the message: Low, Normal, or High. | |
inferenceClassification |
String |
False | Specifies if the message was classified as focused or other by the inbox rule system. | |
internetMessageHeaders |
String |
False | Raw internet headers of the email message, such as MIME-Version, From, To, and Received. | |
internetMessageId |
String |
False | Globally unique identifier assigned by the sending mail server. | |
isDeliveryReceiptRequested |
Bool |
False | Indicates whether a delivery receipt was requested for the message. | |
isDraft |
Bool |
False | Indicates whether the message has been saved as a draft and not yet sent. | |
isRead |
Bool |
False | Indicates whether the message has been read by the user. | |
isReadReceiptRequested |
Bool |
False | Indicates whether a read receipt was requested for the message. | |
parentFolderId |
String |
False | Identifier of the folder that contains the message. | |
receivedDateTime |
Datetime |
False | Timestamp when the message was received by the mailbox. | |
replyTo |
String |
False | Collection of addresses that replies should be sent to, overriding the From address. | |
sender_emailAddress_address |
String |
False | Email address of the actual sender of the message. | |
sender_emailAddress_name |
String |
False | Display name of the actual sender of the message. | |
sentDateTime |
Datetime |
False | Timestamp when the message was sent. | |
subject |
String |
False | Subject line of the message as entered by the sender. | |
toRecipients |
String |
False | Collection of recipients in the To field of the message. | |
uniqueBody_content |
String |
False | Message body content that excludes previous replies or forwards. | |
uniqueBody_contentType |
String |
False | Specifies the format of the unique body content: HTML or plain text. | |
webLink |
String |
False | URL to open the message directly in Outlook on the web. | |
UserId |
String |
False | Identifier of the user who owns or sent the message. | |
IsEventMessage |
Bool |
False | Indicates whether the message is a calendar invitation or event-related message. |
Tasks
Lists individual tasks from Microsoft To Do or Planner, with details like titles, due dates, and completion status.
Table Specific Information
Tasks requires the Groups and Tasks permissions from the Microsoft Graph. For this reason, you must create your own OAuth App. Please see Creating an Entra ID (Microsoft Entra ID) Application for more details.
Select
By default, if no criteria is specified, only Tasks personally assigned to you will show up. For example:
SELECT * FROM Tasks
To bring back tasks across the organization, provide the specific plans ids, or use a subselect for the plan id. For example:
SELECT * FROM Tasks WHERE PlanId IN (SELECT ID FROM Plans)
Insert
To insert a Task, the associated plan must be specified:
INSERT INTO Tasks (Title, PlanId) VALUES ('My Title', '99999999-eeeeeeeee')
Update
To update a Task, both the ID and Etag must be specified:
UPDATE Tasks SET Title = 'New Title' WHERE ID = 'xxxxxx-AAAAAAAAAAA' AND Etag = 'W/\"XXXXXXQEBAQEBAQEBAQEBAQEBARCc=\"'
Delete
To delete a Task, both the ID and Etag must be specified:
DELETE FROM Tasks WHERE ID = 'xxxxxx-AAAAAAAAAAA' AND Etag = 'W/\"XXXXXXQEBAQEBAQEBAQEBAQEBARCc=\"'
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
activeChecklistItemCount |
Int |
False | Number of checklist items that are not yet completed in the task. | |
appliedCategories |
String |
False | Set of category labels applied to the task, such as category1, category2, category3. | |
assigneePriority |
String |
False | Priority value used to determine task assignment order among multiple users. | |
assignments |
String |
False | List of user assignments for the task, including details like assignment status and assigned time. | |
bucketId |
String |
False | Identifier of the bucket within the plan where the task is located. | |
checklistItemCount |
Int |
False | Total number of checklist items associated with the task. | |
completedBy_application_displayName |
String |
False | Display name of the application that marked the task as completed. | |
completedBy_application_id |
String |
False | Identifier of the application that marked the task as completed. | |
completedDateTime |
Datetime |
False | Timestamp indicating when the task was marked as completed. | |
conversationThreadId |
String |
False | Identifier of the conversation thread associated with the task in Microsoft 365 Groups. | |
createdBy_application_displayName |
String |
False | Display name of the application that created the task. | |
createdBy_application_id |
String |
False | Identifier of the application that created the task. | |
createdDateTime |
Datetime |
False | Timestamp when the task was created. | |
dueDateTime |
Datetime |
False | Date and time when the task is due. | |
hasDescription |
Bool |
False | Indicates whether the task has a non-empty description. | |
orderHint |
String |
False | Ordering hint used to determine the position of the task within the bucket. | |
percentComplete |
Int |
False | Percentage of the task that is completed, typically between 0 and 100. | |
planId |
String |
False | Identifier of the plan to which the task belongs. | |
previewType |
String |
False | Specifies how the task preview is rendered in the UI. Possible values include automatic, checklist, description, reference. | |
priority |
Int |
False | Numeric value representing the priority of the task. Lower values indicate higher priority. | |
referenceCount |
Int |
False | Number of external references or linked resources associated with the task. | |
startDateTime |
Datetime |
False | Date and time when work on the task is scheduled to start. | |
title |
String |
False | Title or name of the task. | |
Etag |
String |
False | Entity tag used to track the version of the task for concurrency control. | |
Id [KEY] |
String |
False | Unique identifier of the task. |
Users
Supports reading, creating, updating, and deleting Office365 user accounts. Includes profile and licensing details.
Table Specific Information
Select
Query the Users table by retrieving everything from Users, specifying a Id, or filtering by a column:
SELECT * FROM Users WHERE Id = '616391f0-32d8-4127-8f25-aa55771d6617'
SELECT DisplayName, ID FROM Users WHERE DisplayName LIKE 'John%'
Insert
The following are required to create a new organizational User:
INSERT INTO Users (AccountEnabled, DisplayName, MailNickname, UserPrincipalName, PasswordProfile_ForceChangePasswordNextSignIn, PasswordProfile_Password) VALUES (false, 'John Smith', 'JohnS', 'smithjohn@yourcompanydomain.com', true, '123password')
Columns
| Name | Type | ReadOnly | References | Description |
|---|---|---|---|---|
id [KEY] |
String |
True | Globally Unique Identifier (GUID) assigned to the user object in Microsoft Entra ID. | |
deletedDateTime |
Datetime |
False | Timestamp when the user was soft deleted from the directory; null if the account is active. | |
accountEnabled |
Bool |
False | Indicates whether the account is enabled for sign-in and Microsoft Entra ID authentication. | |
businessPhones |
String |
False | Comma-separated list of business phone numbers for the user, in E.164 or in local format, for example +1 4255550100, +1 4255550120. | |
city |
String |
False | City portion of the user's physical address. | |
companyName |
String |
False | Name of the company or organization where the user works. | |
country |
String |
False | Country or region listed in the user's address. | |
createdDateTime |
Datetime |
False | Timestamp when the user account was created in Microsoft Entra ID. | |
department |
String |
False | Department or organizational unit the user belongs to. | |
displayName |
String |
False | Full display name for the user, shown in address books and Teams. | |
employeeHireDate |
Datetime |
False | Date when the employee was hired, according to human resources records. | |
employeeId |
String |
False | Employee identifier used by payroll or HR systems. | |
employeeLeaveDateTime |
Datetime |
False | Date and time when the employee left the organization; null if still employed. | |
employeeOrgData_costCenter |
String |
False | Cost center code associated with the user for financial tracking. | |
employeeOrgData_division |
String |
False | Division name within the organization associated with the user. | |
employeeType |
String |
False | Classification of employment, such as Employee, Contractor, or Vendor. | |
givenName |
String |
False | User's given name (first name). | |
identities |
String |
False | Collection of sign-in identities for the user, each with issuer, issuerAssignedId, and signInType. | |
imAddresses |
String |
False | Comma-separated list of instant messaging addresses for the user, for example sip:user@example.com, sip:user2@example.com. | |
isResourceAccount |
Bool |
False | Indicates whether this account represents a resource such as a room or equipment mailbox. | |
jobTitle |
String |
False | Job title of the user, such as Senior Analyst. | |
lastPasswordChangeDateTime |
Datetime |
False | Most recent date and time when the user changed their password. | |
mail |
String |
False | Primary SMTP email address for the user. | |
mailNickname |
String |
False | Alias used to generate the user's email address; must be unique within the tenant. | |
mobilePhone |
String |
False | Mobile phone number for the user, stored in E.164 format where possible. | |
officeLocation |
String |
False | Office location, room number, or desk identifier for the user. | |
onPremisesDistinguishedName |
String |
False | Distinguished name (DN) of the on-premises Active Directory object mapped to the user. | |
onPremisesDomainName |
String |
False | Domain name of the on-premises Active Directory forest where the user originates. | |
onPremisesExtensionAttributes_extensionAttribute1 |
String |
False | Custom extension attribute 1 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute10 |
String |
False | Custom extension attribute 10 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute11 |
String |
False | Custom extension attribute 11 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute12 |
String |
False | Custom extension attribute 12 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute13 |
String |
False | Custom extension attribute 13 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute14 |
String |
False | Custom extension attribute 14 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute15 |
String |
False | Custom extension attribute 15 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute2 |
String |
False | Custom extension attribute 2 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute3 |
String |
False | Custom extension attribute 3 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute4 |
String |
False | Custom extension attribute 4 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute5 |
String |
False | Custom extension attribute 5 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute6 |
String |
False | Custom extension attribute 6 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute7 |
String |
False | Custom extension attribute 7 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute8 |
String |
False | Custom extension attribute 8 replicated from on-premises Active Directory. | |
onPremisesExtensionAttributes_extensionAttribute9 |
String |
False | Custom extension attribute 9 replicated from on-premises Active Directory. | |
onPremisesImmutableId |
String |
False | Immutable identifier used to map the cloud user to an on-premises Active Directory object. | |
onPremisesLastSyncDateTime |
Datetime |
False | Timestamp of the most recent synchronization from on-premises Active Directory. | |
onPremisesProvisioningErrors |
String |
False | List of provisioning errors returned during directory synchronization. | |
onPremisesSamAccountName |
String |
False | SAMAccountName from on-premises Active Directory, used for legacy authentication. | |
onPremisesSecurityIdentifier |
String |
False | Security identifier (SID) assigned to the on-premises object. | |
onPremisesSyncEnabled |
Bool |
False | Indicates whether the object continues to synchronize from on-premises Active Directory. | |
onPremisesUserPrincipalName |
String |
False | User principal name (UPN) of the on-premises object. | |
otherMails |
String |
False | Comma-separated collection of additional SMTP addresses associated with the user, such as alias1@example.com, alias2@example.com. | |
passwordProfile_forceChangePasswordNextSignIn |
Bool |
False | Indicates whether the user must change password at the next sign-in. | |
passwordProfile_forceChangePasswordNextSignInWithMfa |
Bool |
False | Indicates whether the user must change password at next sign-in and complete multifactor authentication. | |
passwordProfile_password |
String |
False | Write-only initial password set for the user during creation or reset. | |
postalCode |
String |
False | Postal or ZIP code portion of the user's address. | |
preferredLanguage |
String |
False | Preferred language for the user, expressed as an ISO language tag such as en-US. | |
securityIdentifier |
String |
False | SID assigned to the user in Microsoft Entra ID. | |
state |
String |
False | State or province portion of the user's physical address. | |
streetAddress |
String |
False | Street name, number, and unit for the user's physical address. | |
surname |
String |
False | User's family name (last name). | |
userPrincipalName |
String |
False | Principal name the user uses to sign in, typically of the form user@contoso.com. | |
userType |
String |
False | Identifies the type of user: Member for internal users, Guest for external users invited to the tenant. |
Views
Views are similar to tables in the way that data is represented; however, views are read-only.
Queries can be executed against a view as if it were a normal table.
Microsoft Office 365 Connector Views
| Name | Description |
|---|---|
CalendarView |
Returns a filtered list of calendar events such as occurrences, exceptions, and single instances, within a specified time range from a user's calendar. |
EventAttachments |
Displays attachments related to calendar events, including file metadata and associated event identifiers. |
EventOccurrences |
Provides a flattened view of recurring event instances, enabling analysis of each occurrence individually. |
MessageAttachments |
Retrieves email message attachments with metadata like attachment names, sizes, and parent message IDs. |
Plans |
Displays task plan data from Microsoft Planner, including plan names, owners, and associated group IDs. |
CalendarView
Returns a filtered list of calendar events such as occurrences, exceptions, and single instances, within a specified time range from a user's calendar.
Table Specific Information
Select
Get the occurrences, exceptions, and single instances of events in a calendar view defined by a time range, from the user's default calendar, or from some other calendar of the user's. By default only the event occurrences from the user's default calendar in the range of the last 30 days will be returned. You can filter results by CalendarId, UserId, Start_DateTime, End_DateTime.
For example the following queries will be processed server side:
SELECT * FROM CalendarView WHERE Start_DateTime >= '2019-12-10 15:00' AND End_DateTime <= '2020-01-10 14:30'
SELECT * FROM CalendarView WHERE CalendarId = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAwcAAABDJHYjDdygQ5pQPUEu3S2cAAACC_IAAAA='
SELECT * FROM CalendarView WHERE CalendarId = 'AQMkAGRlMWQ5MDg0LWI5ZTQtNDk2Yi1hOTQ1LTU4YzFmMzEwZjlhMgBGAAAD-FjxR3cIwE6TEGSCVtIHcwcAQyR2Iw3coEOaUD1BLt0tnAAAAwcAAABDJHYjDdygQ5pQPUEu3S2cAAACC_IAAAA=' AND UserId = 'a98f25b5-5da1-4937-8729-c0d03026caa0' AND Start_DateTime >= '2019-12-15 08:00' AND End_DateTime <= '2020-01-14 08:00'
Columns
| Name | Type | References | Description |
|---|---|---|---|
id [KEY] |
String |
Unique identifier for the calendar event. | |
Etag |
String |
Entity tag used to identify changes to the event object. | |
categories |
String |
List of user-defined categories associated with the event. | |
changeKey |
String |
Version key for the event, used to track updates. | |
createdDateTime |
Datetime |
Timestamp indicating when the event was created. | |
lastModifiedDateTime |
Datetime |
Timestamp indicating the last time the event was updated. | |
allowNewTimeProposals |
Bool |
Indicates whether attendees can suggest new meeting times. | |
attendees |
String |
List of people invited to the event, including required and optional attendees. | |
body_content |
String |
Main content of the event body. | |
body_contentType |
String |
Type of the content in the event body, such as HTML or plain text. | |
bodyPreview |
String |
Short preview of the event body content. | |
end_dateTime |
Datetime |
Date and time when the event ends. | |
end_timeZone |
String |
Time zone of the event end time. | |
hasAttachments |
Bool |
Indicates whether the event includes file attachments. | |
hideAttendees |
Bool |
Indicates whether attendee details are hidden from others. | |
iCalUId |
String |
Unique iCalendar identifier used across systems. | |
importance |
String |
Importance level of the event such as low, normal, or high. | |
isAllDay |
Bool |
Specifies whether the event is an all-day event. | |
isCancelled |
Bool |
Indicates whether the event has been canceled. | |
isDraft |
Bool |
Indicates whether the event is in draft status. | |
isOnlineMeeting |
Bool |
Specifies whether the event is an online meeting. | |
isOrganizer |
Bool |
Indicates whether the current user is the organizer of the event. | |
isReminderOn |
Bool |
Indicates whether a reminder is set for the event. | |
location_address_city |
String |
City where the event location is situated. | |
location_address_countryOrRegion |
String |
Country or region of the event location. | |
location_address_postalCode |
String |
Postal code of the event location. | |
location_address_state |
String |
State or province of the event location. | |
location_address_street |
String |
Street address of the event location. | |
location_coordinates_accuracy |
Double |
Accuracy of the provided coordinates in meters. | |
location_coordinates_altitude |
Double |
Altitude of the event location in meters. | |
location_coordinates_altitudeAccuracy |
Double |
Accuracy of the altitude value in meters. | |
location_coordinates_latitude |
Double |
Latitude of the event location. | |
location_coordinates_longitude |
Double |
Longitude of the event location. | |
location_displayName |
String |
Display name for the location of the event. | |
location_locationEmailAddress |
String |
Email address associated with the location, if available. | |
location_locationType |
String |
Type of location, such as default, conference room, or custom. | |
location_locationUri |
String |
URI that uniquely identifies the location resource. | |
location_uniqueId |
String |
Unique identifier for the location object. | |
location_uniqueIdType |
String |
Specifies the format of the unique location ID. | |
locations |
String |
List of all locations associated with the event. | |
onlineMeeting_conferenceId |
String |
Conference ID provided by the online meeting provider. | |
onlineMeeting_joinUrl |
String |
URL used by attendees to join the online meeting. | |
onlineMeeting_phones |
String |
List of phone numbers that can be used to dial into the meeting. | |
onlineMeeting_quickDial |
String |
Preformatted string for one-tap mobile dialing into the meeting. | |
onlineMeeting_tollFreeNumbers |
String |
Toll-free numbers attendees can use to join. Values are comma-separated with 1 space after each comma. | |
onlineMeeting_tollNumber |
String |
Primary toll number attendees can use to join the meeting. | |
onlineMeetingProvider |
String |
Name of the service provider hosting the online meeting, such as Skype. | |
onlineMeetingUrl |
String |
URL that opens the full online meeting experience in a browser. | |
organizer_emailAddress_address |
String |
Email address of the meeting organizer. | |
organizer_emailAddress_name |
String |
Display name of the person organizing the meeting. | |
originalEndTimeZone |
String |
Time zone in which the event was originally set to end. | |
originalStart |
Datetime |
Original start date and time of the event before any updates. | |
originalStartTimeZone |
String |
Time zone in which the event was originally scheduled to start. | |
recurrence_pattern_dayOfMonth |
Int |
Day of the month when the recurring event occurs. | |
recurrence_pattern_daysOfWeek |
String |
Days of the week when the event recurs. Values are comma-separated with 1 space after each comma. | |
recurrence_pattern_firstDayOfWeek |
String |
The first day of the week used in the recurrence pattern. | |
recurrence_pattern_index |
String |
Specifies which instance in the recurrence, such as first, second, or last. | |
recurrence_pattern_interval |
Int |
Interval between recurrences, based on the pattern type. | |
recurrence_pattern_month |
Int |
Month of the year when the event recurs, used for yearly patterns. | |
recurrence_pattern_type |
String |
Type of recurrence pattern, such as daily, weekly, monthly, or yearly. | |
recurrence_range_endDate |
Datetime |
Date when the recurrence pattern ends. | |
recurrence_range_numberOfOccurrences |
Int |
Number of times the recurring event should occur. | |
recurrence_range_recurrenceTimeZone |
String |
Time zone used for the recurrence schedule. | |
recurrence_range_startDate |
Datetime |
Start date of the recurrence range. | |
recurrence_range_type |
String |
Defines the way recurrence ends, such as after a number of occurrences or on a specific end date. | |
reminderMinutesBeforeStart |
Int |
Number of minutes before the event start at which the reminder triggers. | |
responseRequested |
Bool |
Indicates whether the organizer is requesting responses from attendees. | |
responseStatus_response |
String |
The attendee's response status, such as accepted, declined, or tentative. | |
responseStatus_time |
Datetime |
Date and time when the attendee submitted their response. | |
sensitivity |
String |
Sensitivity setting for the event, such as normal, personal, private, or confidential. | |
seriesMasterId |
String |
Identifier of the master event in a recurring series. | |
showAs |
String |
How the event appears on the calendar, such as free, busy, or tentative. | |
start_dateTime |
Datetime |
Date and time when the event starts. | |
start_timeZone |
String |
Time zone associated with the event's start time. | |
subject |
String |
Title or subject line of the calendar event. | |
transactionId |
String |
Client-supplied ID used to ensure idempotency of create requests. | |
type |
String |
Type of event, such as singleInstance, occurrence, or exception. | |
webLink |
String |
URL to view the event in a web browser. | |
UserId |
String |
Identifier of the user associated with the calendar event. | |
CalendarId |
String |
Identifier of the calendar that contains the event. |
EventAttachments
Displays attachments related to calendar events, including file metadata and associated event identifiers.
Columns
| Name | Type | References | Description |
|---|---|---|---|
eventId |
String |
Events.Id | Identifier of the event to which the attachment belongs. |
id [KEY] |
String |
Unique identifier for the attachment associated with the event. | |
contentType |
String |
The content type of the attachment. | |
isInline |
Bool |
Indicates whether the attachment is displayed directly in the body of the event message. | |
lastModifiedDateTime |
Datetime |
Timestamp of the last modification to the attachment. | |
name |
String |
Display name of the attachment, typically the original file name. | |
size |
Int |
Size of the attachment file in bytes. |
EventOccurrences
Provides a flattened view of recurring event instances, enabling analysis of each occurrence individually.
Table Specific Information
Select
You can query EventOccurrences by specifying the Event Id, StartDatetime and EndDateTime. EventId is a required field, instead StartDatetime and EndDateTime have a default range of the last 30 days. If you query filtering only by EventId and the specific event does not exist within this time range, you will get empty results.
SELECT * FROM [EventOccurrences] WHERE ID = 'event id' AND StartDateTime = '2018/01/01' AND EndDateTime = '2018/12/31'
By default, if StartDateTime and EndDateTime filters are not specified, only the event occurrences from the user's default calendar in the range of the last 30 days will be returned. Otherwise, the query will get the Occurrences of the Event during the period specified by StartDateTime and EndDateTime.
Columns
| Name | Type | References | Description |
|---|---|---|---|
GroupId |
String |
Identifier of the Microsoft 365 group that owns the event. | |
UserId |
String |
Identifier of the user who is associated with the event. | |
Events_id [KEY] |
String |
Events.id | Identifier of the parent event series from which this occurrence is derived. |
id [KEY] |
String |
Unique identifier for this specific event occurrence. | |
categories |
String |
List of categories assigned to the event for classification or filtering. | |
changeKey |
String |
Version key that updates each time the event occurrence is modified. | |
createdDateTime |
Datetime |
Timestamp indicating when the event occurrence was created. | |
lastModifiedDateTime |
Datetime |
Timestamp indicating the last time the event occurrence was modified. | |
allowNewTimeProposals |
Bool |
Indicates whether attendees can suggest a new time for the event. | |
attendees |
String |
List of attendees invited to the event. For example: alice@example.com, bob@example.com. | |
body_content |
String |
Main message body or description of the event. | |
body_contentType |
String |
Format of the message body, such as text or HTML. | |
bodyPreview |
String |
Short preview of the event message body. | |
end_dateTime |
Datetime |
Scheduled end time of the event. | |
end_timeZone |
String |
Time zone used for the event's end time. | |
hasAttachments |
Bool |
Indicates whether the event occurrence includes file attachments. | |
hideAttendees |
Bool |
Indicates whether attendee information is hidden from others. | |
iCalUId |
String |
Unique identifier used for cross-system calendar interoperability. | |
importance |
String |
Level of importance assigned to the event, such as low, normal, or high. | |
isAllDay |
Bool |
Indicates whether the event is an all-day event with no specific start or end time. | |
isCancelled |
Bool |
Indicates whether the event occurrence has been canceled. | |
isDraft |
Bool |
Indicates whether the event is still a draft and not finalized. | |
isOnlineMeeting |
Bool |
Indicates whether the event includes an online meeting link. | |
isOrganizer |
Bool |
Indicates whether the current user is the organizer of the event. | |
isReminderOn |
Bool |
Indicates whether a reminder is set for this event occurrence. | |
location_address_city |
String |
City of the event location. | |
location_address_countryOrRegion |
String |
Country or region of the event location. | |
location_address_postalCode |
String |
Postal code of the event location. | |
location_address_state |
String |
State or province of the event location. | |
location_address_street |
String |
Street address of the event location. | |
location_coordinates_accuracy |
Double |
Accuracy of the provided location coordinates in meters. | |
location_coordinates_altitude |
Double |
Altitude of the location in meters above sea level. | |
location_coordinates_altitudeAccuracy |
Double |
Accuracy of the altitude measurement in meters. | |
location_coordinates_latitude |
Double |
Latitude of the event location. | |
location_coordinates_longitude |
Double |
Longitude of the event location. | |
location_displayName |
String |
Display name for the event location. | |
location_locationEmailAddress |
String |
Email address of the location resource, if applicable. | |
location_locationType |
String |
Type of location, such as default, conference room, or home address. | |
location_locationUri |
String |
Uniform Resource Identifier (URI) for the location, if available. | |
location_uniqueId |
String |
Unique identifier for the physical or virtual location. | |
location_uniqueIdType |
String |
Type of identifier used for the location, such as locationStore or directory. | |
locations |
String |
List of additional locations for the event. For example: Main Hall, Room 204. | |
onlineMeeting_conferenceId |
String |
Unique conference ID for the online meeting provider. | |
onlineMeeting_joinUrl |
String |
Join URL that participants can use to enter the online meeting. | |
onlineMeeting_phones |
String |
List of dial-in phone numbers for the online meeting. | |
onlineMeeting_quickDial |
String |
Quick dial string for joining the online meeting directly. | |
onlineMeeting_tollFreeNumbers |
String |
List of toll-free phone numbers for the online meeting. For example: 8001234567, 8887654321. | |
onlineMeeting_tollNumber |
String |
Toll number provided for participants to join by phone. | |
onlineMeetingProvider |
String |
Online meeting provider, such as Teams or Skype for Business. | |
onlineMeetingUrl |
String |
URL used to launch or view the online meeting. | |
organizer_emailAddress_address |
String |
Email address of the event organizer. | |
organizer_emailAddress_name |
String |
Display name of the event organizer. | |
originalEndTimeZone |
String |
Time zone used for the original end time before any changes. | |
originalStart |
Datetime |
Original start time of the event before any rescheduling. | |
originalStartTimeZone |
String |
Time zone used for the original start time. | |
recurrence_pattern_dayOfMonth |
Int |
Day of the month on which the event repeats, if applicable. | |
recurrence_pattern_daysOfWeek |
String |
Days of the week on which the event repeats. For example: Monday, Wednesday, Friday. | |
recurrence_pattern_firstDayOfWeek |
String |
First day of the week for the recurrence pattern. | |
recurrence_pattern_index |
String |
Position in the month the event recurs, such as first, second, or last. | |
recurrence_pattern_interval |
Int |
Interval at which the event repeats, such as every 2 days or every 3 weeks. | |
recurrence_pattern_month |
Int |
Month of the year when the event recurs, used for yearly patterns. | |
recurrence_pattern_type |
String |
Pattern type used for recurrence, such as daily, weekly, monthly, or yearly. | |
recurrence_range_endDate |
Datetime |
Date on which the recurrence pattern ends. | |
recurrence_range_numberOfOccurrences |
Int |
Total number of times the event should occur. | |
recurrence_range_recurrenceTimeZone |
String |
Time zone used for the recurrence pattern. | |
recurrence_range_startDate |
Datetime |
Start date of the recurrence range. | |
recurrence_range_type |
String |
Specifies whether the recurrence ends by end date, number of occurrences, or has no end. | |
reminderMinutesBeforeStart |
Int |
Number of minutes before the event when a reminder should be triggered. | |
responseRequested |
Bool |
Indicates whether the organizer requests attendee responses. | |
responseStatus_response |
String |
Current response status from the attendee, such as accepted or declined. | |
responseStatus_time |
Datetime |
Timestamp of the most recent response from the attendee. | |
sensitivity |
String |
Sensitivity label for the event, such as normal, personal, private, or confidential. | |
seriesMasterId |
String |
Identifier of the master series event, used to link recurring occurrences. | |
showAs |
String |
Calendar availability status during the event, such as free, tentative, busy, or out of office. | |
start_dateTime |
Datetime |
Scheduled start time of the event. | |
start_timeZone |
String |
Time zone used for the event's start time. | |
subject |
String |
Subject or title of the event. | |
transactionId |
String |
Client-supplied identifier used to detect duplicate event creations. | |
type |
String |
Type of event occurrence, such as singleInstance, occurrence, exception, or seriesMaster. | |
webLink |
String |
URL to open the event occurrence in a web browser. |
MessageAttachments
Retrieves email message attachments with metadata like attachment names, sizes, and parent message IDs.
Columns
| Name | Type | References | Description |
|---|---|---|---|
messageId |
String |
Messages.Id | Unique identifier of the email message to which the attachment belongs. |
id [KEY] |
String |
Unique identifier for the attachment within the message. | |
contentType |
String |
The type of attachment content. | |
isInline |
Bool |
Indicates whether the attachment is embedded directly in the body of the message. | |
lastModifiedDateTime |
Datetime |
Timestamp indicating when the attachment was last modified. | |
name |
String |
Name of the attachment file as displayed in the message. | |
size |
Int |
Size of the attachment in bytes. |
Plans
Displays task plan data from Microsoft Planner, including plan names, owners, and associated group IDs.
Table Specific Information
Using Plans requires access to Groups permissions. This requires Admin approval. For this reason, you must use your own OAuth App to add the Groups permissions and from the Microsoft Graph. See Creating an Entra ID (Microsoft Entra ID) Application for more details.
Select
All plans in MS Planner exist as a part of a group. In order to retrieve the list of available plans, you must retrieve a list of available plans per group. If no GroupId is specified, then the following WHERE condition will be appended to any query:
GroupId IN (SELECT ID FROM Groups)
Columns
| Name | Type | References | Description |
|---|---|---|---|
container_containerId |
String |
Identifier of the container that holds the plan, typically referencing a Microsoft 365 Group or Team. | |
container_type |
String |
Type of container where the plan is stored, such as group or roster. | |
container_url |
String |
URL link to the container that holds the plan, such as the associated Group or Team. | |
createdBy_application_displayName |
String |
Display name of the application that created the plan. | |
createdBy_application_id |
String |
Unique identifier of the application that created the plan. | |
createdDateTime |
Datetime |
Timestamp indicating when the plan was created. | |
owner |
String |
Identifier of the user or entity that owns the plan. | |
title |
String |
Title or name of the plan as displayed in Microsoft Planner. | |
GroupId |
String |
Identifier of the Microsoft 365 Group associated with the plan. | |
Id [KEY] |
String |
Unique identifier of the plan. |
Stored Procedures
Stored procedures are function-like interfaces that extend the functionality of the connector beyond simple SELECT/INSERT/UPDATE/DELETE operations with Microsoft Office 365.
Stored procedures accept a list of parameters, perform their intended function, and then return any relevant response data from Microsoft Office 365, along with an indication of whether the procedure succeeded or failed.
Microsoft Office 365 Connector Stored Procedures
| Name | Description |
|---|---|
AddAttachments |
Adds one or more attachments to an existing email message based on message ID. |
AssignLicense |
Assigns or removes Microsoft 365 subscriptions for a user and enables or disables specific service plans within those subscriptions. |
CancelEvent |
Cancels an existing calendar event and updates the event status across invitees. |
CreateFolder |
Creates a new folder or updates the contents of an existing file in OneDrive or SharePoint. |
CreateSchema |
Generates and saves a schema definition file for a specified Office365 table or view. |
DeleteAttachment |
Removes an attachment from an email message based on the message and attachment IDs. |
DownloadAttachments |
Downloads one or more attachments from a specified email message. |
DownloadEmail |
Downloads the full contents of an email message, including metadata and body content. |
DownloadFile |
Downloads a specified file from OneDrive or SharePoint. |
FetchAdditionalUserFields |
Retrieves additional Tier 1, Tier 2, and Tier 3 user fields for enhanced profile data. |
ForwardEvent |
Forwards a calendar event invitation to one or more recipients. |
ForwardMail |
Forwards an existing email message to specified recipients. |
GetAdminConsentURL |
Returns a URL to initiate the admin consent process for granting application access using custom OAuth credentials. |
GetOAuthAccessToken |
Gets an authentication token from Office365. |
GetOAuthAuthorizationURL |
Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps. You will request the auth token from this URL. |
MoveMail |
Moves an email message to a specified folder within a user's mailbox. |
RefreshOAuthAccessToken |
Refreshes the OAuth access token used for authentication with various Office 365 services. |
SendMail |
Sends an email message from the authenticated user's mailbox with optional attachments. |
UploadFile |
Uploads a new file or replaces the content of an existing file in OneDrive or SharePoint. |
AddAttachments
Adds one or more attachments to an existing email message based on message ID.
Input
| Name | Type | Required | Description |
|---|---|---|---|
Id |
String |
True | Identifier of the message or event to which the attachment is added. |
DestinationType |
String |
True | Type of destination object for the attachment. Allowed values are: Message or Event. |
FileName |
String |
True | File name of the attachment to be added. |
LocalFile |
String |
False | Path to the local file that contains the content to be attached. |
ContentBytes |
String |
False | Attachment content encoded as a Base64 byte array. Used if LocalFile is not specified. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
ContentBytes |
String |
Indicates whether the attachment content was successfully added to the target message or event. |
Id |
String |
Identifier of the newly added attachment. |
LastModifiedDateTime |
Datetime |
Timestamp indicating the last time the added attachment was modified. |
Isinline |
Boolean |
Indicates whether the attachment was added as an inline element within the message or event body. |
Name |
String |
Name of the attachment that was added. |
Contenttype |
String |
The content type of the attachment. |
Size |
Int |
Size of the added attachment in bytes. |
AssignLicense
Assigns or removes Microsoft 365 subscriptions for a user and enables or disables specific service plans within those subscriptions.
Input
| Name | Type | Required | Description |
|---|---|---|---|
UserID |
String |
False | Identifier of the user to whom the license is assigned. Leave blank to assign the license to the currently authenticated user. |
UserPrincipalName |
String |
False | User principal name (UPN) of the user to whom the license is assigned. Leave blank to assign the license to the currently authenticated user. |
AddLicenseSkuId |
String |
False | Globally Unique Identifier (GUID) of the license SKU to be added to the user. |
DisabledPlans |
String |
False | Comma-separated list of plan identifiers to disable within the license, such as 6fd2c87f-b296-42f0-b197-1e91e994b900, 1f2f344a-700d-42c9-9427-cf6a4d3fdf28. |
RemoveLicenses |
String |
False | Comma-separated list of license GUIDs to remove from the user, such as 76b8cfd1-3de8-4a73-9fb6-dc0c50e2b2f3, b2307a39-3b5c-44db-96f5-1a045c007cb9. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure completed successfully or returned an error. |
CancelEvent
Cancels an existing calendar event and updates the event status across invitees.
Input
| Name | Type | Required | Description |
|---|---|---|---|
EventId |
String |
True | Identifier of the calendar event to be canceled. |
UserId |
String |
False | Identifier of the user who owns the calendar event. |
UserPrincipalName |
String |
False | User principal name (UPN) of the calendar owner. Leave blank to use the currently authenticated user. |
Comment |
String |
False | Optional comment to include with the cancellation notice. Can be an empty string. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure executed successfully or returned an error. |
CreateFolder
Creates a new folder or updates the contents of an existing file in OneDrive or SharePoint.
Input
| Name | Type | Required | Description |
|---|---|---|---|
FolderName |
String |
True | Name of the new folder to be created. |
ParentId |
String |
False | Identifier of the parent folder in which the new folder is created. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
Identifier of the folder that was successfully created. |
CreateSchema
Generates and saves a schema definition file for a specified Office365 table or view.
CreateSchema
Creates a local schema file (.rsd) from an existing table or view in the data model.
The schema file is created in the directory set in the Location connection property when this procedure is executed. You can edit the file to include or exclude columns, rename columns, or adjust column datatypes.
The connector checks the Location to determine if the names of any .rsd files match a table or view in the data model. If there is a duplicate, the schema file will take precedence over the default instance of this table in the data model. If a schema file is present in Location that does not match an existing table or view, a new table or view entry is added to the data model of the connector.
Input
| Name | Type | Required | Description |
|---|---|---|---|
TableName |
String |
True | Name of the table or view for which the schema is generated. |
FileName |
String |
False | Full file path and name where the generated schema is saved. For example: 'C:\Users\User\Desktop\SmartSheet\sheet.rsd'. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Result |
String |
Indicates whether the schema creation was successful or failed. |
FileData |
String |
Base64-encoded content of the generated schema. Returned only if FileName and FileStream are not specified. |
DeleteAttachment
Removes an attachment from an email message based on the message and attachment IDs.
Input
| Name | Type | Required | Description |
|---|---|---|---|
MessageId |
String |
True | Identifier of the email message that contains the attachment to be deleted. |
AttachmentID |
String |
True | Identifier of the attachment to delete from the message. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
Identifier of the message from which the attachment was removed. |
DownloadAttachments
Downloads one or more attachments from a specified email message.
Input
| Name | Type | Required | Description |
|---|---|---|---|
MessageId |
String |
True | Identifier of the email message from which attachments should be downloaded. |
UserId |
String |
False | Identifier of the user account. This is required only if the authenticated user is an administrator performing actions on behalf of another user. |
AttachmentId |
String |
False | Identifier of a specific attachment to download. If not specified, all attachments from the message are returned. |
DownloadTo |
String |
False | Destination path where the attachments are saved. If not specified, the content bytes are returned directly. Required when MessageId is provided. |
Encoding |
String |
False | Specifies the encoding type used for the FileData input, such as Base64. The allowed values are NONE, BASE64. The default value is BASE64. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
Identifier of the downloaded attachment. |
Name |
String |
File name of the downloaded attachment. |
ContentBytes |
String |
Raw content bytes of the downloaded attachment. |
LastmodifiedDatetime |
String |
Timestamp indicating when the attachment was last modified. |
ContentType |
String |
The content type of the attachment. If DownloadTo is specified, this value is null. |
FileData |
String |
Encoded file content returned as output. Used only if DownloadTo and FileStream are not specified. |
DownloadEmail
Downloads the full contents of an email message, including metadata and body content.
Input
| Name | Type | Required | Description |
|---|---|---|---|
MessageId |
String |
True | Identifier of the email message to be downloaded. |
DownloadTo |
String |
False | Destination file path where the downloaded email is saved. If not provided, the email content is returned as output. |
Encoding |
String |
False | Specifies the encoding format used for the FileData input, such as Base64. The allowed values are NONE, BASE64. The default value is BASE64. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure completed successfully or returned an error. |
FileData |
String |
Encoded content of the downloaded email, returned when DownloadTo and FileStream are not specified. |
DownloadFile
Downloads a specified file from OneDrive or SharePoint.
Input
| Name | Type | Required | Description |
|---|---|---|---|
FileId |
String |
True | Identifier of the file to be downloaded. |
DownloadTo |
String |
False | Full path where the downloaded file is saved. If not specified, the file content is returned as output. |
Encoding |
String |
False | Encoding format used for the FileData input, such as Base64. The allowed values are NONE, BASE64. The default value is BASE64. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure executed successfully or failed. |
FileData |
String |
Encoded content of the downloaded file. Returned only if DownloadTo and FileStream are not specified. |
FetchAdditionalUserFields
Retrieves additional Tier 1, Tier 2, and Tier 3 user fields for enhanced profile data.
Input
| Name | Type | Required | Description |
|---|---|---|---|
UserId |
String |
True | Unique identifier of the user whose additional fields are being fetched. |
IncludeFields |
String |
False | Comma-separated list of user fields to include in the result, such as displayName, mail, jobTitle. |
ExcludeFields |
String |
False | Comma-separated list of user fields to exclude from the result, such as mobilePhone, officeLocation. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
\* |
String |
Query results including all selected fields from the user object, based on include and exclude parameters. |
ForwardEvent
Forwards a calendar event invitation to one or more recipients.
Input
| Name | Type | Required | Description |
|---|---|---|---|
EventId |
String |
True | Identifier of the calendar event to be forwarded. |
ToRecipients |
String |
True | Semicolon-separated list of recipient email addresses to whom the event is forwarded, such as user1@example.com; user2@example.com. |
UserId |
String |
False | Identifier of the user who is forwarding the event. |
UserPrincipalName |
String |
False | User principal name (UPN) of the user forwarding the event. Leave blank to use the currently authenticated user. |
Comment |
String |
False | Optional message or comment to include with the forwarded event. Can be an empty string. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure completed successfully or returned an error. |
ForwardMail
Forwards an existing email message to specified recipients.
Input
| Name | Type | Required | Description |
|---|---|---|---|
MessageId |
String |
True | Identifier of the email message to be forwarded. |
ToRecipients |
String |
True | Semicolon-separated list of recipient email addresses, such as user1@example.com; user2@example.com. |
Comment |
String |
False | Optional comment or body content to include above the original message when forwarding. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure completed successfully or returned an error. |
GetAdminConsentURL
Returns a URL to initiate the admin consent process for granting application access using custom OAuth credentials.
Input
| Name | Type | Required | Description |
|---|---|---|---|
CallbackUrl |
String |
False | URL to which the user is redirected after granting admin consent. Must match the Reply URL configured in the Microsoft Entra ID app registration. |
State |
String |
False | Opaque value used to maintain state between the request and the callback. Returned unchanged in the response for validation. |
Scope |
String |
False | Space-separated list of permissions to request from the admin, such as User.Read Mail.Read Calendars.ReadWrite. The default value is offline_access https://graph.microsoft.com/group.read.all https://graph.microsoft.com/group.readwrite.all https://graph.microsoft.com/user.read https://graph.microsoft.com/user.readwrite.all https://graph.microsoft.com/calendars.readwrite https://graph.microsoft.com/contacts.readwrite https://graph.microsoft.com/mail.readwrite https://graph.microsoft.com/Files.ReadWrite.All. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
URL |
String |
Authorization URL that should be opened in a browser to initiate admin consent and retrieve the verifier token. |
GetOAuthAccessToken
Gets an authentication token from Office365.
Input
| Name | Type | Required | Description |
|---|---|---|---|
AuthMode |
String |
False | The type of authentication mode to use. Select App for getting authentication tokens via a desktop app. Select Web for getting authentication tokens via a Web app. The allowed values are APP, WEB. The default value is APP. |
CallbackUrl |
String |
False | The URL the user will be redirected to after authorizing your application. This value must match the Reply URL you have specified in the Microsoft Entra ID app settings. |
Verifier |
String |
False | The verifier returned from Microsoft Entra ID after the user has authorized your app to have access to their data. This value will be returned as a parameter to the callback URL. |
State |
String |
False | An arbitrary string of your choosing that is returned to your app; a successful roundtrip of this string helps ensure that your app initiated the request. |
Scope |
String |
False | A space-separated list of permissions to request from the user when OAuthGrantType='CODE'. Please check the Microsoft Graph API for a list of available permissions. When OAuthGrantType='CLIENT', a scope of 'https://graph.microsoft.com/.default' is used. '/.default' picks up whatever permissions your app already has. |
Prompt |
String |
False | Defaults to 'select_account' which prompts the user to select account while authenticating. Set to 'None', for no prompt, 'login' to force user to enter their credentials or 'consent' to trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
OAuthAccessToken |
String |
The access token used for communication with Office365. |
ExpiresIn |
String |
The remaining lifetime on the access token. A -1 denotes that it will not expire. |
OAuthRefreshToken |
String |
Refresh token to renew the access token. |
GetOAuthAuthorizationURL
Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps. You will request the auth token from this URL.
Input
| Name | Type | Required | Description |
|---|---|---|---|
CallbackUrl |
String |
False | The URL the user will be redirected to after authorizing your application. This value must match the Reply URL in the Microsoft Entra ID app settings. |
State |
String |
False | The same value for state that you sent when you requested the authorization code. |
Scope |
String |
False | A space-separated list of permissions to request from the user when OAuthGrantType='CODE'. Please check the Microsoft Graph API for a list of available permissions. When OAuthGrantType='CLIENT', a scope of 'https://graph.microsoft.com/.default' is used. '/.default' picks up whatever permissions your app already has. |
Prompt |
String |
False | Defaults to 'select_account' which prompts the user to select account while authenticating. Set to 'None' for no prompt, 'login' to force user to enter their credentials or 'consent' to trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
URL |
String |
The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app. |
MoveMail
Moves an email message to a specified folder within a user's mailbox.
Input
| Name | Type | Required | Description |
|---|---|---|---|
MessageId |
String |
True | Identifier of the email message that is to be moved. |
DestinationId |
String |
True | Identifier of the destination folder where the email message should be moved. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
Identifier of the email message after it has been successfully moved. |
RefreshOAuthAccessToken
Refreshes the OAuth access token used for authentication with various Office 365 services.
Input
| Name | Type | Required | Description |
|---|---|---|---|
OAuthRefreshToken |
String |
True | The refresh token returned from the original authorization code exchange. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
OAuthAccessToken |
String |
The authentication token returned from Microsoft Entra ID. This can be used in subsequent calls to other operations for this particular service. |
OAuthRefreshToken |
String |
A token that may be used to obtain a new access token. |
ExpiresIn |
String |
The remaining lifetime on the access token. |
SendMail
Sends an email message from the authenticated user's mailbox with optional attachments.
Input
| Name | Type | Required | Description |
|---|---|---|---|
Id |
String |
False | Optional identifier of the draft email message to send. If not provided, a new message is created from the input fields. |
Subject |
String |
False | Subject line of the email. |
Content |
String |
False | Body content of the email message. |
Attachments |
String |
False | List of attachments in the format: filename1, filecontent1; filename2, filecontent2. Each filecontent can be Base64-encoded data or a file path prefixed with @. |
FileName |
String |
False | Name of the email attachment when sending a file manually. |
LocalFile |
String |
False | Path to the local file that contains the attachment content. |
ContentBytes |
String |
False | Content of the attachment encoded in Base64 format. |
ToRecipients |
String |
False | Semicolon-separated list of recipient email addresses for the To field, such as person1@example.com; person2@example.com. |
CCRecipients |
String |
False | Semicolon-separated list of recipient email addresses for the CC field. |
BccRecipients |
String |
False | Semicolon-separated list of recipient email addresses for the Bcc field. |
SenderEmail |
String |
False | Email address on whose behalf the message should be sent. Use this to send on behalf of another user. |
FromEmail |
String |
False | Email address from which the message is sent. Use this to send from another user's account. |
ContentType |
String |
False | Format of the email body content, such as text or HTML. The allowed values are text, html. The default value is text. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Status |
String |
Indicates whether the stored procedure executed successfully or returned an error. |
UploadFile
Uploads a new file or replaces the content of an existing file in OneDrive or SharePoint.
Input
| Name | Type | Required | Description |
|---|---|---|---|
FileName |
String |
False | Name of the file to upload content to. Provide this only if uploading to an existing file. |
ParentId |
String |
True | Identifier of the folder where the uploaded file should be placed. |
Content |
String |
False | Raw content to upload as the file's contents. |
LocalFile |
String |
False | Path to the local file whose content is uploaded. |
Result Set Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
Identifier of the file that was uploaded. |
\* |
String |
Complete set of output fields returned after the file upload operation, including metadata. |
System Tables
You can query the system tables described in this section to access schema information, information on data source functionality, and batch operation statistics.
Schema Tables
The following tables return database metadata for Microsoft Office 365:
- sys_catalogs: Lists the available databases.
- sys_schemas: Lists the available schemas.
- sys_tables: Lists the available tables and views.
- sys_tablecolumns: Describes the columns of the available tables and views.
- sys_procedures: Describes the available stored procedures.
- sys_procedureparameters: Describes stored procedure parameters.
- sys_keycolumns: Describes the primary and foreign keys.
- sys_indexes: Describes the available indexes.
Data Source Tables
The following tables return information about how to connect to and query the data source:
- sys_connection_props: Returns information on the available connection properties.
- sys_sqlinfo: Describes the SELECT queries that the connector can offload to the data source.
Query Information Tables
The following table returns query statistics for data modification queries:
- sys_identity: Returns information about batch operations or single updates.
sys_catalogs
Lists the available databases.
The following query retrieves all databases determined by the connection string:
SELECT * FROM sys_catalogs
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The database name. |
sys_schemas
Lists the available schemas.
The following query retrieves all available schemas:
SELECT * FROM sys_schemas
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The database name. |
SchemaName |
String |
The schema name. |
sys_tables
Lists the available tables.
The following query retrieves the available tables and views:
SELECT * FROM sys_tables
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The database containing the table or view. |
SchemaName |
String |
The schema containing the table or view. |
TableName |
String |
The name of the table or view. |
TableType |
String |
The table type (table or view). |
Description |
String |
A description of the table or view. |
IsUpdateable |
Boolean |
Whether the table can be updated. |
sys_tablecolumns
Describes the columns of the available tables and views.
The following query returns the columns and data types for the Events table:
SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='Events'
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the table or view. |
SchemaName |
String |
The schema containing the table or view. |
TableName |
String |
The name of the table or view containing the column. |
ColumnName |
String |
The column name. |
DataTypeName |
String |
The data type name. |
DataType |
Int32 |
An integer indicating the data type. This value is determined at run time based on the environment. |
Length |
Int32 |
The storage size of the column. |
DisplaySize |
Int32 |
The designated column's normal maximum width in characters. |
NumericPrecision |
Int32 |
The maximum number of digits in numeric data. The column length in characters for character and date-time data. |
NumericScale |
Int32 |
The column scale or number of digits to the right of the decimal point. |
IsNullable |
Boolean |
Whether the column can contain null. |
Description |
String |
A brief description of the column. |
Ordinal |
Int32 |
The sequence number of the column. |
IsAutoIncrement |
String |
Whether the column value is assigned in fixed increments. |
IsGeneratedColumn |
String |
Whether the column is generated. |
IsHidden |
Boolean |
Whether the column is hidden. |
IsArray |
Boolean |
Whether the column is an array. |
IsReadOnly |
Boolean |
Whether the column is read-only. |
IsKey |
Boolean |
Indicates whether a field returned from sys_tablecolumns is the primary key of the table. |
ColumnType |
String |
The role or classification of the column in the schema. Possible values include SYSTEM, LINKEDCOLUMN, NAVIGATIONKEY, REFERENCECOLUMN, and NAVIGATIONPARENTCOLUMN. |
sys_procedures
Lists the available stored procedures.
The following query retrieves the available stored procedures:
SELECT * FROM sys_procedures
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The database containing the stored procedure. |
SchemaName |
String |
The schema containing the stored procedure. |
ProcedureName |
String |
The name of the stored procedure. |
Description |
String |
A description of the stored procedure. |
ProcedureType |
String |
The type of the procedure, such as PROCEDURE or FUNCTION. |
sys_procedureparameters
Describes stored procedure parameters.
The following query returns information about all of the input parameters for the SendMail stored procedure:
SELECT * FROM sys_procedureparameters WHERE ProcedureName = 'SendMail' AND Direction = 1 OR Direction = 2
To include result set columns in addition to the parameters, set the IncludeResultColumns pseudo column to True:
SELECT * FROM sys_procedureparameters WHERE ProcedureName = 'SendMail' AND IncludeResultColumns='True'
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the stored procedure. |
SchemaName |
String |
The name of the schema containing the stored procedure. |
ProcedureName |
String |
The name of the stored procedure containing the parameter. |
ColumnName |
String |
The name of the stored procedure parameter. |
Direction |
Int32 |
An integer corresponding to the type of the parameter: input (1), input/output (2), or output(4). input/output type parameters can be both input and output parameters. |
DataType |
Int32 |
An integer indicating the data type. This value is determined at run time based on the environment. |
DataTypeName |
String |
The name of the data type. |
NumericPrecision |
Int32 |
The maximum precision for numeric data. The column length in characters for character and date-time data. |
Length |
Int32 |
The number of characters allowed for character data. The number of digits allowed for numeric data. |
NumericScale |
Int32 |
The number of digits to the right of the decimal point in numeric data. |
IsNullable |
Boolean |
Whether the parameter can contain null. |
IsRequired |
Boolean |
Whether the parameter is required for execution of the procedure. |
IsArray |
Boolean |
Whether the parameter is an array. |
Description |
String |
The description of the parameter. |
Ordinal |
Int32 |
The index of the parameter. |
Values |
String |
The values you can set in this parameter are limited to those shown in this column. Possible values are comma-separated. |
SupportsStreams |
Boolean |
Whether the parameter represents a file that you can pass as either a file path or a stream. |
IsPath |
Boolean |
Whether the parameter is a target path for a schema creation operation. |
Default |
String |
The value used for this parameter when no value is specified. |
SpecificName |
String |
A label that, when multiple stored procedures have the same name, uniquely identifies each identically-named stored procedure. If there's only one procedure with a given name, its name is simply reflected here. |
IsProvided |
Boolean |
Whether the procedure is added/implemented by , as opposed to being a native Microsoft Office 365 procedure. |
Pseudo-Columns
| Name | Type | Description |
|---|---|---|
IncludeResultColumns |
Boolean |
Whether the output should include columns from the result set in addition to parameters. Defaults to False. |
sys_keycolumns
Describes the primary and foreign keys.
The following query retrieves the primary key for the Events table:
SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='Events'
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the key. |
SchemaName |
String |
The name of the schema containing the key. |
TableName |
String |
The name of the table containing the key. |
ColumnName |
String |
The name of the key column. |
IsKey |
Boolean |
Whether the column is a primary key in the table referenced in the TableName field. |
IsForeignKey |
Boolean |
Whether the column is a foreign key referenced in the TableName field. |
PrimaryKeyName |
String |
The name of the primary key. |
ForeignKeyName |
String |
The name of the foreign key. |
ReferencedCatalogName |
String |
The database containing the primary key. |
ReferencedSchemaName |
String |
The schema containing the primary key. |
ReferencedTableName |
String |
The table containing the primary key. |
ReferencedColumnName |
String |
The column name of the primary key. |
sys_foreignkeys
Describes the foreign keys.
The following query retrieves all foreign keys which refer to other tables:
SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the key. |
SchemaName |
String |
The name of the schema containing the key. |
TableName |
String |
The name of the table containing the key. |
ColumnName |
String |
The name of the key column. |
PrimaryKeyName |
String |
The name of the primary key. |
ForeignKeyName |
String |
The name of the foreign key. |
ReferencedCatalogName |
String |
The database containing the primary key. |
ReferencedSchemaName |
String |
The schema containing the primary key. |
ReferencedTableName |
String |
The table containing the primary key. |
ReferencedColumnName |
String |
The column name of the primary key. |
ForeignKeyType |
String |
Designates whether the foreign key is an import (points to other tables) or export (referenced from other tables) key. |
sys_primarykeys
Describes the primary keys.
The following query retrieves the primary keys from all tables and views:
SELECT * FROM sys_primarykeys
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the key. |
SchemaName |
String |
The name of the schema containing the key. |
TableName |
String |
The name of the table containing the key. |
ColumnName |
String |
The name of the key column. |
KeySeq |
String |
The sequence number of the primary key. |
KeyName |
String |
The name of the primary key. |
sys_indexes
Describes the available indexes. By filtering on indexes, you can write more selective queries with faster query response times.
The following query retrieves all indexes that are not primary keys:
SELECT * FROM sys_indexes WHERE IsPrimary='false'
Columns
| Name | Type | Description |
|---|---|---|
CatalogName |
String |
The name of the database containing the index. |
SchemaName |
String |
The name of the schema containing the index. |
TableName |
String |
The name of the table containing the index. |
IndexName |
String |
The index name. |
ColumnName |
String |
The name of the column associated with the index. |
IsUnique |
Boolean |
True if the index is unique. False otherwise. |
IsPrimary |
Boolean |
True if the index is a primary key. False otherwise. |
Type |
Int16 |
An integer value corresponding to the index type: statistic (0), clustered (1), hashed (2), or other (3). |
SortOrder |
String |
The sort order: A for ascending or D for descending. |
OrdinalPosition |
Int16 |
The sequence number of the column in the index. |
sys_connection_props
Returns information on the available connection properties and those set in the connection string.
The following query retrieves all connection properties that have been set in the connection string or set through a default value:
SELECT * FROM sys_connection_props WHERE Value <> ''
Columns
| Name | Type | Description |
|---|---|---|
Name |
String |
The name of the connection property. |
ShortDescription |
String |
A brief description. |
Type |
String |
The data type of the connection property. |
Default |
String |
The default value if one is not explicitly set. |
Values |
String |
A comma-separated list of possible values. A validation error is thrown if another value is specified. |
Value |
String |
The value you set or a preconfigured default. |
Required |
Boolean |
Whether the property is required to connect. |
Category |
String |
The category of the connection property. |
IsSessionProperty |
String |
Whether the property is a session property, used to save information about the current connection. |
Sensitivity |
String |
The sensitivity level of the property. This informs whether the property is obfuscated in logging and authentication forms. |
PropertyName |
String |
A camel-cased truncated form of the connection property name. |
Ordinal |
Int32 |
The index of the parameter. |
CatOrdinal |
Int32 |
The index of the parameter category. |
Hierarchy |
String |
Shows dependent properties associated that need to be set alongside this one. |
Visible |
Boolean |
Informs whether the property is visible in the connection UI. |
ETC |
String |
Various miscellaneous information about the property. |
sys_sqlinfo
Describes the SELECT query processing that the connector can offload to the data source.
Discovering the Data Source's SELECT Capabilities
Below is an example data set of SQL capabilities. Some aspects of SELECT functionality are returned in a comma-separated list if supported; otherwise, the column contains NO.
| Name | Description | Possible Values |
|---|---|---|
AGGREGATE_FUNCTIONS |
Supported aggregation functions. | AVG, COUNT, MAX, MIN, SUM, DISTINCT |
COUNT |
Whether COUNT function is supported. | YES, NO |
IDENTIFIER_QUOTE_OPEN_CHAR |
The opening character used to escape an identifier. | [ |
IDENTIFIER_QUOTE_CLOSE_CHAR |
The closing character used to escape an identifier. | ] |
SUPPORTED_OPERATORS |
A list of supported SQL operators. | =, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR |
GROUP_BY |
Whether GROUP BY is supported, and, if so, the degree of support. | NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE |
STRING_FUNCTIONS |
Supported string functions. | LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE |
NUMERIC_FUNCTIONS |
Supported numeric functions. | ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE |
TIMEDATE_FUNCTIONS |
Supported date/time functions. | NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT |
REPLICATION_SKIP_TABLES |
Indicates tables skipped during replication. | |
REPLICATION_TIMECHECK_COLUMNS |
A string array containing a list of columns which will be used to check for (in the given order) to use as a modified column during replication. | |
IDENTIFIER_PATTERN |
String value indicating what string is valid for an identifier. | |
SUPPORT_TRANSACTION |
Indicates if the provider supports transactions such as commit and rollback. | YES, NO |
DIALECT |
Indicates the SQL dialect to use. | |
KEY_PROPERTIES |
Indicates the properties which identify the uniform database. | |
SUPPORTS_MULTIPLE_SCHEMAS |
Indicates if multiple schemas may exist for the provider. | YES, NO |
SUPPORTS_MULTIPLE_CATALOGS |
Indicates if multiple catalogs may exist for the provider. | YES, NO |
DATASYNCVERSION |
The Data Sync version needed to access this driver. | Standard, Starter, Professional, Enterprise |
DATASYNCCATEGORY |
The Data Sync category of this driver. | Source, Destination, Cloud Destination |
SUPPORTSENHANCEDSQL |
Whether enhanced SQL functionality beyond what is offered by the API is supported. | TRUE, FALSE |
SUPPORTS_BATCH_OPERATIONS |
Whether batch operations are supported. | YES, NO |
SQL_CAP |
All supported SQL capabilities for this driver. | SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX |
PREFERRED_CACHE_OPTIONS |
A string value specifies the preferred cacheOptions. | |
ENABLE_EF_ADVANCED_QUERY |
Indicates if the driver directly supports advanced queries coming from Entity Framework. If not, queries will be handled client side. | YES, NO |
PSEUDO_COLUMNS |
A string array indicating the available pseudo columns. | |
MERGE_ALWAYS |
If the value is true, The Merge Mode is forcibly executed in Data Sync. | TRUE, FALSE |
REPLICATION_MIN_DATE_QUERY |
A select query to return the replicate start datetime. | |
REPLICATION_MIN_FUNCTION |
Allows a provider to specify the formula name to use for executing a server side min. | |
REPLICATION_START_DATE |
Allows a provider to specify a replicate startdate. | |
REPLICATION_MAX_DATE_QUERY |
A select query to return the replicate end datetime. | |
REPLICATION_MAX_FUNCTION |
Allows a provider to specify the formula name to use for executing a server side max. | |
IGNORE_INTERVALS_ON_INITIAL_REPLICATE |
A list of tables which will skip dividing the replicate into chunks on the initial replicate. | |
CHECKCACHE_USE_PARENTID |
Indicates whether the CheckCache statement should be done against the parent key column. | TRUE, FALSE |
CREATE_SCHEMA_PROCEDURES |
Indicates stored procedures that can be used for generating schema files. |
The following query retrieves the operators that can be used in the WHERE clause:
SELECT * FROM sys_sqlinfo WHERE Name = 'SUPPORTED_OPERATORS'
Note that individual tables may have different limitations or requirements on the WHERE clause; refer to the Data Model section for more information.
Columns
| Name | Type | Description |
|---|---|---|
NAME |
String |
A component of SQL syntax, or a capability that can be processed on the server. |
VALUE |
String |
Detail on the supported SQL or SQL syntax. |
sys_identity
Returns information about attempted modifications.
The following query retrieves the Ids of the modified rows in a batch operation:
SELECT * FROM sys_identity
Columns
| Name | Type | Description |
|---|---|---|
Id |
String |
The database-generated ID returned from a data modification operation. |
Batch |
String |
An identifier for the batch. 1 for a single operation. |
Operation |
String |
The result of the operation in the batch: INSERTED, UPDATED, or DELETED. |
Message |
String |
SUCCESS or an error message if the update in the batch failed. |
sys_information
Describes the available system information.
The following query retrieves all columns:
SELECT * FROM sys_information
Columns
| Name | Type | Description |
|---|---|---|
Product |
String |
The name of the product. |
Version |
String |
The version number of the product. |
Datasource |
String |
The name of the datasource the product connects to. |
NodeId |
String |
The unique identifier of the machine where the product is installed. |
HelpURL |
String |
The URL to the product's help documentation. |
License |
String |
The license information for the product. (If this information is not available, the field may be left blank or marked as 'N/A'.) |
Location |
String |
The file path location where the product's library is stored. |
Environment |
String |
The version of the environment or rumtine the product is currently running under. |
DataSyncVersion |
String |
The tier of Sync required to use this connector. |
DataSyncCategory |
String |
The category of Sync functionality (e.g., Source, Destination). |
Data Type Mapping
Data Type Mappings
The connector maps types from the data source to the corresponding data type available in the schema. The table below documents these mappings.
| Microsoft Office 365 (OData V4) | Schema |
|---|---|
Edm.Binary |
binary |
Edm.Boolean |
bool |
Edm.Date |
datetime |
Edm.DateTimeOffset |
datetime |
Edm.Decimal |
decimal |
Edm.Double |
double |
Edm.Guid |
guid |
Edm.Int32 |
int |
Edm.String |
string |
Edm.TimeOfDay |
time |
Advanced Configurations Properties
The advanced configurations properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure. Click the links for further details.
| Property | Description |
|---|---|
AuthScheme |
Specifies the type of authentication to use when connecting to Microsoft Office 365. If this property is left blank, the default authentication is used. |
| Property | Description |
|---|---|
AzureTenant |
Identifies the Microsoft Office 365 tenant being used to access data. Accepts either the tenant's domain name (for example, contoso.onmicrosoft.com) or its directory (tenant) ID. |
AzureEnvironment |
Specifies the Azure network environment to which you will connect. Must be the same network to which your Azure account was added. |
| Property | Description |
|---|---|
InitiateOAuth |
Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working. |
OAuthClientId |
Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication. |
OAuthClientSecret |
Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. |
OAuthAccessToken |
Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange. |
OAuthSettingsLocation |
Specifies the location of the settings file where OAuth values are saved. Storing OAuth settings in a central location avoids the need for users to enter OAuth connection properties manually each time they log in. It also enables credentials to be shared across connections or processes. |
CallbackURL |
Identifies the URL users return to after authenticating to Microsoft Office 365 via OAuth. (Custom OAuth applications only.). |
Scope |
Specifies the scope of the authenticating user's access to the application. Generally specified at the time the custom OAuth application is created (if necessary), so that the authenticating user can obtain the the level of access appropriate to their credentials. |
OAuthAuthorizationURL |
The authorization URL for the OAuth service. |
OAuthAccessTokenURL |
The URL to retrieve the OAuth access token from. |
OAuthVerifier |
Specifies a verifier code returned from the OAuthAuthorizationURL. Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set. |
OAuthRefreshToken |
Specifies the OAuth refresh token used to request a new access token after the original has expired. |
OAuthExpiresIn |
Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working. |
OAuthTokenTimestamp |
Displays a Unix epoch timestamp in milliseconds that shows how long ago the current Access Token was created. |
| Property | Description |
|---|---|
OAuthJWTCert |
Supplies the name of the client certificate's JWT Certificate store. |
OAuthJWTCertType |
Identifies the type of key store containing the JWT Certificate. |
OAuthJWTCertPassword |
Provides the password for the OAuth JWT certificate used to access a password-protected certificate store. If the certificate store does not require a password, leave this property blank. |
OAuthJWTCertSubject |
Identifies the subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate. |
| Property | Description |
|---|---|
SSLServerCert |
Specifies the certificate to be accepted from the server when connecting using TLS/SSL. |
| Property | Description |
|---|---|
Location |
Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path. |
BrowsableSchemas |
Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA, SchemaB, SchemaC. |
Tables |
Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA, TableB, TableC. |
Views |
Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA, ViewB, ViewC. |
| Property | Description |
|---|---|
DirectoryRetrievalDepth |
Specify how many folders deep you want to get results for Files table. The resources directly in the root are located at depth 0. The resources one folder deeper are located at depth 1 and so on. You can specify the value -1 to get all the data in a drive no matter the depth they're in. |
MaxRows |
Specifies the maximum rows returned for queries without aggregation or GROUP BY. |
Other |
Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties. |
Pagesize |
The maximum number of records per page the provider returns when requesting data from Microsoft Office 365. |
PseudoColumns |
Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property. |
Timeout |
Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout. |
UseClientSidePaging |
Whether or not the ADO.NET Provider for Microsoft Office 365 should use client side paging. |
UserDefinedViews |
Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file. |
Authentication
This section provides a complete list of authentication properties you can configure.
| Property | Description |
|---|---|
AuthScheme |
Specifies the type of authentication to use when connecting to Microsoft Office 365. If this property is left blank, the default authentication is used. |
AuthScheme
The type of authentication to use when connecting to Microsoft Office 365. Currently, only AzureServicePrincipal is supported
Possible Values
AzureServicePrincipal
Data Type
string
Default Value
AzureServicePrincipal
Remarks
- AzureServicePrincipal: Set this to authenticate as a Microsoft Entra service principal.
Azure Authentication
This section provides a complete list of Azure authentication properties you can configure.
| Property | Description |
|---|---|
AzureTenant |
Identifies the Microsoft Office 365 tenant being used to access data. Accepts either the tenant's domain name (for example, contoso.onmicrosoft.com) or its directory (tenant) ID. |
AzureEnvironment |
Specifies the Azure network environment to which you will connect. Must be the same network to which your Azure account was added. |
AzureTenant
The Microsoft Online tenant being used to access data. If not specified, your default tentant will be used.
Data Type
string
Default Value
""
Remarks
The Microsoft Online tenant being used to access data. For instance, "example.onmicrosoft.com". Alternatively, specify the tenant ID. This value is the directory ID in the Azure Portal > Microsoft Entra ID > Properties.
Typically it is not necessary to specify the tenant. This can be automatically determined by Microsoft when using the OAuthGrantType set to CODE (default). However, it may fail in the case that the user belongs to multiple tenants. For instance, if an admin of domain A invites a user of domain B to be a guest user. The user will now belong to both tenants. It is a good practice to specify the tenant, although in general things should normally work without having to specify it.
The AzureTenant is required when setting OAuthGrantType to CLIENT. When using client credentials, there is no user context. The credentials are taken from the context of the app itself. While Microsoft still allows client credentials to be obtained without specifying which tenant, it has a much lower probability of picking the specific tenant you want to work with. For this reason, we require AzureTenant to be explicitly stated for all client credentials connections to ensure you get credentials that are applicable for the domain you intend to connect to.
AzureEnvironment
Specifies the Azure network environment to which you will connect. Must be the same network to which your Azure account was added.
Possible Values
GLOBAL, CHINA, USGOVT, USGOVTDOD
Data Type
string
Default Value
GLOBAL
Remarks
Required if your Azure account is part of a different network than the Global network, such as China, USGOVT, or USGOVTDOD.
OAuth
This section provides a complete list of OAuth properties you can configure.
| Property | Description |
|---|---|
InitiateOAuth |
Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working. |
OAuthClientId |
Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication. |
OAuthClientSecret |
Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. |
OAuthAccessToken |
Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange. |
OAuthSettingsLocation |
Specifies the location of the settings file where OAuth values are saved. Storing OAuth settings in a central location avoids the need for users to enter OAuth connection properties manually each time they log in. It also enables credentials to be shared across connections or processes. |
CallbackURL |
Identifies the URL users return to after authenticating to Microsoft Office 365 via OAuth. (Custom OAuth applications only.). |
Scope |
Specifies the scope of the authenticating user's access to the application. Generally specified at the time the custom OAuth application is created (if necessary), so that the authenticating user can obtain the the level of access appropriate to their credentials. |
OAuthAuthorizationURL |
The authorization URL for the OAuth service. |
OAuthAccessTokenURL |
The URL to retrieve the OAuth access token from. |
OAuthVerifier |
Specifies a verifier code returned from the OAuthAuthorizationURL. Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set. |
OAuthRefreshToken |
Specifies the OAuth refresh token used to request a new access token after the original has expired. |
OAuthExpiresIn |
Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working. |
OAuthTokenTimestamp |
Displays a Unix epoch timestamp in milliseconds that shows how long ago the current Access Token was created. |
InitiateOAuth
Set this property to initiate the process to obtain or refresh the OAuth access token when you connect.
Possible Values
GETANDREFRESH
Data Type
string
Default Value
GETANDREFRESH
Remarks
The following option is supported:
GETANDREFRESH: Indicates that the entire OAuth Flow will be handled by the connector. If no token currently exists, it will be obtained. If a token exists, it will be refreshed when applicable.
OAuthVersion
The version of OAuth being used.
Possible Values
1.0, 2.0
Data Type
string
Default Value
2.0
Remarks
The version of OAuth being used. The following options are available: 1.0,2.0
OAuthClientId
The client ID assigned when you register your application with an OAuth authorization server.
Data Type
string
Default Value
""
Remarks
As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.
OAuthClientSecret
The client secret assigned when you register your application with an OAuth authorization server.
Data Type
string
Default Value
""
Remarks
As part of registering an OAuth application, you will receive the client secret, also called a consumer secret. Set the client secret as the OAuthClientSecret property.
You will also receive an OAuthClientId, also called a consumer key.
OAuthAccessToken
Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
Data Type
string
Default Value
""
Remarks
The OAuthAccessToken is a temporary credential that authorizes access to protected resources. It is typically returned by the identity provider after the user or client application completes an OAuth authentication flow. This property is most commonly used in automated workflows or custom OAuth implementations where you want to manage token handling outside of the driver.
The OAuth access token has a server-dependent timeout, limiting user access. This is set using the OAuthExpiresIn property. However, it can be reissued between requests to keep access alive as long as the user keeps working.
If InitiateOAuth is set to REFRESH, we recommend that you also set both OAuthExpiresIn and OAuthTokenTimestamp. The connector uses these properties to determine when the token expires so it can refresh most efficiently. If OAuthExpiresIn and OAuthTokenTimestamp are not specified, the connector refreshes the token immediately.
Access tokens should be treated as sensitive credentials and stored securely. Avoid exposing them in logs, scripts, or configuration files that are not access-controlled.
OAuthSettingsLocation
The location of the settings file where OAuth values are saved when InitiateOAuth is set to GETANDREFRESH or REFRESH. Alternatively, you can hold this location in memory by specifying a value starting with 'memory://'.
Data Type
string
Default Value
%APPDATA%\CData\Acumatica Data Provider\OAuthSettings.txt
Remarks
When InitiateOAuth is set to GETANDREFRESH or REFRESH, the driver saves OAuth values to avoid requiring the user to manually enter OAuth connection properties and to allow the credentials to be shared across connections or processes.
Instead of specifying a file path, you can use memory storage. Memory locations are specified by using a value starting with 'memory://' followed by a unique identifier for that set of credentials (for example, memory://user1). The identifier can be anything you choose but should be unique to the user. Unlike file-based storage, where credentials persist across connections, memory storage loads the credentials into static memory, and the credentials are shared between connections using the same identifier for the life of the process. To persist credentials outside the current process, you must manually store the credentials prior to closing the connection. This enables you to set them in the connection when the process is started again. You can retrieve OAuth property values with a query to the sys_connection_props system table. If there are multiple connections using the same credentials, the properties are read from the previously closed connection.
The default location is "%APPDATA%\CData\Acumatica Data Provider\OAuthSettings.txt" with %APPDATA% set to the user's configuration directory. The default values are
- Windows: "
register://%DSN" - Unix: "%AppData%..."
where DSN is the name of the current DSN used in the open connection.
The following table lists the value of %APPDATA% by OS:
| Platform | %APPDATA% |
|---|---|
Windows |
The value of the APPDATA environment variable |
Linux |
~/.config |
CallbackURL
Identifies the URL users return to after authenticating to Microsoft Office 365 via OAuth. (Custom OAuth applications only.).
Data Type
string
Default Value
""
Remarks
If you created a custom OAuth application, the OAuth authorization server redirects the user to this URL during the authentication process. This value must match the callback URL you specified when you Configured the custom OAuth application.
Scope
Specifies the scope of the authenticating user's access to the application. Generally specified at the time the custom OAuth application is created (if necessary), so that the authenticating user can obtain the the level of access appropriate to their credentials.
Data Type
string
Default Value
""
Remarks
Scopes are set to define what kind of access the authenticating user will have; for example, read, read and write, restricted access to sensitive information. System administrators can use scopes to selectively enable access by functionality or security clearance.
When InitiateOAuth is set to GETANDREFRESH, you must use this property if you want to change which scopes are requested. When InitiateOAuth is set to either REFRESH or OFF, you can use either this property or the Scope input to change which scopes are requested.
OAuthAuthorizationURL
The authorization URL for the OAuth service.
Data Type
string
Default Value
""
Remarks
The authorization URL for the OAuth service. At this URL, the user logs into the server and grants permissions to the application. In OAuth 1.0, if permissions are granted, the request token is authorized.
OAuthAccessTokenURL
The URL to retrieve the OAuth access token from.
Data Type
string
Default Value
""
Remarks
The URL to retrieve the OAuth access token from. In OAuth 1.0, the authorized request token is exchanged for the access token at this URL.
OAuthVerifier
Specifies a verifier code returned from the OAuthAuthorizationURL. Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.
Data Type
string
Default Value
""
OAuthRefreshToken
Specifies the OAuth refresh token used to request a new access token after the original has expired.
Data Type
string
Default Value
""
Remarks
The refresh token is used to obtain a new access token when the current one expires. It enables seamless authentication for long-running or automated workflows without requiring the user to log in again. This property is especially important in headless, CI/CD, or server-based environments where interactive authentication is not possible.
The refresh token is typically obtained during the initial OAuth exchange by calling the GetOAuthAccessToken stored procedure. After that, it can be set using this property to enable automatic token refresh, or passed to the RefreshOAuthAccessToken stored procedure if you prefer to manage the refresh manually.
When InitiateOAuth is set to REFRESH, the driver uses this token to retrieve a new access token automatically. After the first refresh, the driver saves updated tokens in the location defined by OAuthSettingsLocation, and uses those values for subsequent connections.
The OAuthRefreshToken should be handled securely and stored in a trusted location. Like access tokens, refresh tokens can expire or be revoked depending on the identity provider’s policies.
OAuthExpiresIn
Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
Data Type
string
Default Value
""
Remarks
The OAuth Access Token is assigned to an authenticated user, granting that user access to the network for a specified period of time. The access token is used in place of the user's login ID and password, which stay on the server.
An access token created by the server is only valid for a limited time. OAuthExpiresIn is the number of seconds the token is valid from when it was created. For example, a token generated at 2024-01-29 20:00:00 UTC that expires at 2024-01-29 21:00:00 UTC (an hour later) would have an OAuthExpiresIn value of 3600, no matter what the current time is.
To determine how long the user has before the Access Token will expire, use OAuthTokenTimestamp.
OAuthTokenTimestamp
Displays a Unix epoch timestamp in milliseconds that shows how long ago the current Access Token was created.
Data Type
string
Default Value
""
Remarks
The OAuth Access Token is assigned to an authenticated user, granting that user access to the network for a specified period of time. The access token is used in place of the user's login ID and password, which stay on the server.
An access token created by the server is only valid for a limited time. OAuthTokenTimestamp is the Unix timestamp when the server created the token. For example, OAuthTokenTimestamp=1706558400 indicates the OAuthAccessToken was generated by the server at 2024-01-29 20:00:00 UTC.
JWT OAuth
This section provides a complete list of JWT OAuth properties you can configure.
| Property | Description |
|---|---|
OAuthJWTCert |
Supplies the name of the client certificate's JWT Certificate store. |
OAuthJWTCertType |
Identifies the type of key store containing the JWT Certificate. |
OAuthJWTCertPassword |
Provides the password for the OAuth JWT certificate used to access a password-protected certificate store. If the certificate store does not require a password, leave this property blank. |
OAuthJWTCertSubject |
Identifies the subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate. |
OAuthJWTCert
Supplies the name of the client certificate's JWT Certificate store.
Data Type
string
Default Value
""
Remarks
The OAuthJWTCertType field specifies the type of the certificate store specified in OAuthJWTCert. If the store is password-protected, use OAuthJWTCertPassword to supply the password..
OAuthJWTCert is used in conjunction with the OAuthJWTCertSubject field in order to specify client certificates.
If OAuthJWTCert has a value, and OAuthJWTCertSubject is set, the Microsoft Office 365 connector initiates a search for a certificate. For further information, see OAuthJWTCertSubject.
Designations of certificate stores are platform-dependent.
Notes
-
The most common User and Machine certificate stores in Windows include:
-
MY: A certificate store holding personal certificates with their
associated private keys.
-
CA: Certifying authority certificates.
-
ROOT: Root certificates.
-
SPC: Software publisher certificates.
- In Java, the certificate store normally is a file containing certificates and optional private keys.
- When the certificate store type is PFXFile, this property must be set to the name of the file.
- When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
-
OAuthJWTCertType
Identifies the type of key store containing the JWT Certificate.
Possible Values
USER, MACHINE, PFXFILE, PFXBLOB, JKSFILE, JKSBLOB, PEMKEY_FILE, PEMKEY_BLOB, PUBLIC_KEY_FILE, PUBLIC_KEY_BLOB, SSHPUBLIC_KEY_FILE, SSHPUBLIC_KEY_BLOB, P7BFILE, PPKFILE, XMLFILE, XMLBLOB, BCFKSFILE, BCFKSBLOB
Data Type
string
Default Value
USER
Remarks
| Value | Description | Notes |
|---|---|---|
| USER | A certificate store owned by the current user. | Only available in Windows. |
| MACHINE | A machine store. | Not available in Java or other non-Windows environments. |
| PFXFILE | A PFX (PKCS12) file containing certificates. | |
| PFXBLOB | A string (base-64-encoded) representing a certificate store in PFX (PKCS12) format. | |
| JKSFILE | A Java key store (JKS) file containing certificates. | Only available in Java. |
| JKSBLOB | A string (base-64-encoded) representing a certificate store in Java key store (JKS) format. | Only available in Java. |
| PEMKEY_FILE | A PEM-encoded file that contains a private key and an optional certificate. | |
| PEMKEY_BLOB | A string (base64-encoded) that contains a private key and an optional certificate. | |
| PUBLIC_KEY_FILE | A file that contains a PEM- or DER-encoded public key certificate. | |
| PUBLIC_KEY_BLOB | A string (base-64-encoded) that contains a PEM- or DER-encoded public key certificate. | |
| SSHPUBLIC_KEY_FILE | A file that contains an SSH-style public key. | |
| SSHPUBLIC_KEY_BLOB | A string (base-64-encoded) that contains an SSH-style public key. | |
| P7BFILE | A PKCS7 file containing certificates. | |
| PPKFILE | A file that contains a PPK (PuTTY Private Key). | |
| XMLFILE | A file that contains a certificate in XML format. | |
| XMLBLOB | Astring that contains a certificate in XML format. | |
| BCFKSFILE | A file that contains an Bouncy Castle keystore. | |
| BCFKSBLOB | A string (base-64-encoded) that contains a Bouncy Castle keystore. |
OAuthJWTCertPassword
Provides the password for the OAuth JWT certificate used to access a password-protected certificate store. If the certificate store does not require a password, leave this property blank.
Data Type
string
Default Value
""
Remarks
This property specifies the password needed to open a password-protected certificate store. To determine if a password is necessary, refer to the documentation or configuration for your specific certificate store.
OAuthJWTCertSubject
Identifies the subject of the OAuth JWT certificate used to locate a matching certificate in the store. Supports partial matches and the wildcard '*' to select the first certificate.
Data Type
string
Default Value
*
Remarks
The value of this property is used to locate a matching certificate in the store. The search process works as follows:
- If an exact match for the subject is found, the corresponding certificate is selected.
- If no exact match is found, the store is searched for certificates whose subjects contain the property value.
- If no match is found, no certificate is selected.
You can set the value to '*' to automatically select the first certificate in the store. The certificate subject is a comma-separated list of distinguished name fields and values. For example: CN=www.server.com, OU=test, C=US, E=example@jbexample.com. Common fields include:
| Field | Meaning |
|---|---|
CN |
Common Name. This is commonly a host name like www.server.com. |
O |
Organization |
OU |
Organizational Unit |
L |
Locality |
S |
State |
C |
Country |
E |
Email Address |
If a field value contains a comma, enclose it in quotes. For example: "O=ACME, Inc.".
SSL
This section provides a complete list of SSL properties you can configure.
| Property | Description |
|---|---|
SSLServerCert |
Specifies the certificate to be accepted from the server when connecting using TLS/SSL. |
SSLServerCert
Specifies the certificate to be accepted from the server when connecting using TLS/SSL.
Data Type
string
Default Value
""
Remarks
If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.
This property can take the following forms:
| Description | Example |
|---|---|
| A full PEM Certificate (example shortened for brevity) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
| A path to a local file containing the certificate | C:\\cert.cer |
| The public key (example shortened for brevity) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
| The MD5 Thumbprint (hex values can also be either space or colon separated) | ecadbdda5a1529c58a1e9e09828d70e4 |
| The SHA1 Thumbprint (hex values can also be either space or colon separated) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
If not specified, any certificate trusted by the machine is accepted.
Certificates are validated as trusted by the machine based on the System's trust store. The trust store used is the 'javax.net.ssl.trustStore' value specified for the system. If no value is specified for this property, Java's default trust store is used (for example, JAVA_HOME\lib\security\cacerts).
Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.
Schema
This section provides a complete list of schema properties you can configure.
| Property | Description |
|---|---|
Location |
Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path. |
BrowsableSchemas |
Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA, SchemaB, SchemaC. |
Tables |
Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA, TableB, TableC. |
Views |
Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA, ViewB, ViewC. |
Location
Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
Data Type
string
Default Value
%APPDATA%\Office365 Data Provider\Schema
Remarks
The Location property is only needed if you want to either customize definitions (for example, change a column name, ignore a column, etc.) or extend the data model with new tables, views, or stored procedures.
If left unspecified, the default location is %APPDATA%\Office365 Data Provider\Schema, where %APPDATA% is set to the user's configuration directory:
| Platform | %APPDATA% |
|---|---|
Windows |
The value of the APPDATA environment variable |
Mac |
~/Library/Application Support |
Linux |
~/.config |
BrowsableSchemas
Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
Data Type
string
Default Value
""
Remarks
Listing all available database schemas can take extra time, thus degrading performance. Providing a list of schemas in the connection string saves time and improves performance.
Tables
Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC.
Data Type
string
Default Value
""
Remarks
Listing all available tables from some databases can take extra time, thus degrading performance. Providing a list of tables in the connection string saves time and improves performance.
If there are lots of tables available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those tables. To do this, specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.
Note
If you are connecting to a data source with multiple schemas or catalogs, you must specify each table you want to view by its fully qualified name. This avoids ambiguity between tables that may exist in multiple catalogs or schemas.
Views
Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
Data Type
string
Default Value
""
Remarks
Listing all available views from some databases can take extra time, thus degrading performance. Providing a list of views in the connection string saves time and improves performance.
If there are lots of views available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those views. To do this, specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.
Note
If you are connecting to a data source with multiple schemas or catalogs, you must specify each view you want to examine by its fully qualified name. This avoids ambiguity between views that may exist in multiple catalogs or schemas.
Miscellaneous
This section provides a complete list of miscellaneous properties you can configure.
| Property | Description |
|---|---|
DirectoryRetrievalDepth |
Specify how many folders deep you want to get results for Files table. The resources directly in the root are located at depth 0. The resources one folder deeper are located at depth 1 and so on. You can specify the value -1 to get all the data in a drive no matter the depth they're in. |
MaxRows |
Specifies the maximum rows returned for queries without aggregation or GROUP BY. |
Other |
Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties. |
Pagesize |
The maximum number of records per page the provider returns when requesting data from Microsoft Office 365. |
PseudoColumns |
Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property. |
Timeout |
Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout. |
UseClientSidePaging |
Whether or not the ADO.NET Provider for Microsoft Office 365 should use client side paging. |
UserDefinedViews |
Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file. |
DirectoryRetrievalDepth
Specify how many folders deep you want to get results for Files table. The resources directly in the root are located at depth 0. The resources one folder deeper are located at depth 1 and so on. You can specify the value -1 to get all the data in a drive no matter the depth they're in.
Data Type
string
Default Value
5
Remarks
This property must be set in the connection string or the driver will use a default of DirectoryRetrievalDepth=5.
MaxRows
Specifies the maximum rows returned for queries without aggregation or GROUP BY.
Data Type
int
Default Value
-1
Remarks
This property sets an upper limit on the number of rows the connector returns for queries that do not include aggregation or GROUP BY clauses. This limit ensures that queries do not return excessively large result sets by default.
When a query includes a LIMIT clause, the value specified in the query takes precedence over the MaxRows setting. If MaxRows is set to "-1", no row limit is enforced unless a LIMIT clause is explicitly included in the query.
This property is useful for optimizing performance and preventing excessive resource consumption when executing queries that could otherwise return very large datasets.
Other
Specifies additional hidden properties for specific use cases. These are not required for typical provider functionality. Use a semicolon-separated list to define multiple properties.
Data Type
string
Default Value
""
Remarks
This property allows advanced users to configure hidden properties for specialized scenarios. These settings are not required for normal use cases but can address unique requirements or provide additional functionality. Multiple properties can be defined in a semicolon-separated list.
Note
It is strongly recommended to set these properties only when advised by the support team to address specific scenarios or issues.
Specify multiple properties in a semicolon-separated list.
Integration and Formatting
| Property | Description |
|---|---|
DefaultColumnSize |
Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
ConvertDateTimeToGMT=True |
Converts date-time values to GMT, instead of the local time of the machine. The default value is False (use local time). |
RecordToFile=filename |
Records the underlying socket data transfer to the specified file. |
Pagesize
The maximum number of records per page the provider returns when requesting data from Microsoft Office 365.
Data Type
int
Default Value
300
Remarks
When processing a query, instead of requesting all of the queried data at once from Microsoft Office 365, the connector can request the queried data in pieces called pages.
This connection property determines the maximum number of results that the connector requests per page.
Note that setting large page sizes may improve overall query execution time, but doing so causes the connector to use more memory when executing queries and risks triggering a timeout.
PseudoColumns
Specifies the pseudocolumns to expose as table columns. Use the format 'TableName=ColumnName;TableName=ColumnName'. The default is an empty string, which disables this property.
Data Type
string
Default Value
""
Remarks
This property allows you to define which pseudocolumns the connector exposes as table columns.
To specify individual pseudocolumns, use the following format: "Table1=Column1;Table1=Column2;Table2=Column3"
To include all pseudocolumns for all tables use: "*=*"
Timeout
Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error. The default is 60 seconds. Set to 0 to disable the timeout.
Data Type
int
Default Value
60
Remarks
This property controls the maximum time, in seconds, that the connector waits for an operation to complete before canceling it. If the timeout period expires before the operation finishes, the connector cancels the operation and throws an exception.
The timeout applies to each individual communication with the server rather than the entire query or operation. For example, a query could continue running beyond the timeout value if each paging call completes within the timeout limit.
Setting this property to 0 disables the timeout, allowing operations to run indefinitely until they succeed or fail due to other conditions such as server-side timeouts, network interruptions, or resource limits on the server. Use this property cautiously to avoid long-running operations that could degrade performance or result in unresponsive behavior.
UseClientSidePaging
Whether or not the ADO.NET Provider for Microsoft Office 365 should use client side paging.
Data Type
bool
Default Value
true
Remarks
Some sources do not support server side paging. In these cases, set UseClientSidePaging to true. Otherwise, leave it as false. Setting UseClientSidePaging to true on a source that already supports paging can cause incomplete results.
UserDefinedViews
Specifies a filepath to a JSON configuration file defining custom views. The provider automatically detects and uses the views specified in this file.
Data Type
string
Default Value
""
Remarks
This property allows you to define and manage custom views through a JSON-formatted configuration file called UserDefinedViews.json. These views are automatically recognized by the connector and enable you to execute custom SQL queries as if they were standard database views. The JSON file defines each view as a root element with a child element called "query", which contains the SQL query for the view. For example:
{
"MyView": {
"query": "SELECT * FROM Events WHERE MyColumn = 'value'"
},
"MyView2": {
"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
}
}
You can define multiple views in a single file and specify the filepath using this property. For example: UserDefinedViews=C:\Path\To\UserDefinedViews.json. When you use this property, only the specified views are seen by the connector.
Refer to User Defined Views for more information.