Skip to Content

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:

  1. Go to https://portal.azure.com.

  2. In the left-hand navigation pane, select Microsoft Entra ID > App registrations.

  3. Click New registration.

  4. Enter a name for the application.

  5. 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.

  6. 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 CallbackURL connection property; in those cases, set it to match this URI exactly.

  7. Click Register. The application management screen opens. Record these values for later use:

  8. Go to Certificates & Secrets. Click New Client Secret, set the desired expiration, and save the generated value. This value will only be shown once — record it to use with OAuthClientSecret.

  9. Select the Microsoft Graph API and then select the permissions your app will seek.

  10. 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
  1. Go to https://portal.azure.com.
  2. In the left-hand navigation pane, select Microsoft Entra ID > App registrations.
  3. Click New registration.
  4. Enter a name for the application.
  5. Select the desired tenant setup. Since this custom application is for Service Principal use, choose Any Microsoft Entra ID tenant – Multitenant.
  6. Click Register. The application management screen opens. Note the value in Application (client) ID as the OAuthClientId and the Directory (tenant) ID as the AzureTenant
  7. Navigate to Certificates & Secrets and define the application authentication type. Two types of authentication are available: certificate (recommended) or client secret
    • For certificate authentication: In Certificates & Secrets, select Upload 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, select New Client Secret for 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
  8. Navigate to Authentication and select the Access tokens option.
  9. Select the Microsoft Graph API and then select the permissions your app will seek.
  10. Save your changes.
  11. 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.

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:

  1. Log in to https://portal.azure.com with an administrator account.
  2. Navigate to Microsoft Entra ID > App registrations and select your registered application.
  3. Navigate to API permissions.
  4. Review the permissions listed under Application permissions. Ensure the necessary API scopes are included for your use case.
  5. Click Grant admin consent to approve the requested permissions.

This gives your application permissions on the tenant under which it was created.

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.

  1. Log in to https://portal.azure.com
  2. Create a custom OAuth application, as described above.
  3. Navigate to App Registrations.
  4. Find the application you just created, and open API Permissions.
  5. Select the Microsoft Graph permissions. There are two distinct sets of permissions: Delegated and Application.
  6. For use with Service Principal, specify Application permissions.
  7. 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:

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.

Authentication

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.

Azure Authentication

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.

OAuth

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.

JWT OAuth

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.

SSL

Property Description
SSLServerCert Specifies the certificate to be accepted from the server when connecting using TLS/SSL.

Schema

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.

Miscellaneous

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.