Table of Contents


Overview

Microsoft Intune is the cloud endpoint management service in Microsoft’s Intune suite, used to enrol and manage Windows PCs, Macs, iOS and Android devices. It holds the enrolled device record (hardware identifiers, operating system version, compliance state, enrolment type, assigned user), the application catalogue and its assignments, and, on Windows, the Defender protection state. Intune is addressed through the Microsoft Graph API, the same API surface that serves Entra ID, so an Intune connection also reaches directory users and groups.

The ReadyWorks connector calls Microsoft Graph directly. It requests an application-level access token from the Microsoft identity platform using the client credentials grant with the .default scope, reads the token from the access_token node, and sends it as Authorization: Bearer on the data calls with Content-Type: application/json. Each job then calls a Graph endpoint, reads the value array, and writes it to its own staging table. Every job that pages uses Graph’s own paging model, following the @odata.nextLink URL until it runs out.

Six of the eleven jobs enumerate. They first call a collection endpoint (all users, all groups, all managed devices, all mobile apps), collect the id of each record, and then make one call per record to fetch its detail. That is how per-device detected applications, per-device hardware, per-group membership and per-app assignment data is assembled. The call volume of those jobs scales with the size of your estate.

In a ReadyWorks context this gives you the managed device estate, the people the devices belong to, the group structure that drives Intune policy and application targeting, and the installed and assigned software. That supports device refresh planning, OS upgrade waves, application rationalisation, and reconciliation of the Intune device list against other sources such as the network, the asset register or an Apple management platform.

Direction: the connector is registered as bidirectional. The only outbound template shipped is a blank generic REST POST scaffold with no endpoint set, so in practice this connector reads from Intune and Entra ID, and the outbound side is a starting point for a write-back job you build yourself.

Connector Properties

PropertyValue
IdentifierINTUNE
NameMicrosoft Intune
DescriptionConnector for processing Microsoft Intune data using MS Graph.
Job TypesBoth Inbound and Outbound
Order100
EnabledYes
LockedYes
Block UpdateNo
Single AuthenticationNo
Windows OnlyNo
Connector Version2026-03-15
HooksNone
Additional Job FieldsNone
Image

Authentication Methods

The connector ships two authentication methods, both of which acquire a Microsoft Graph application token through the client credentials grant. They differ only in what proves the application’s identity: a client secret or a certificate.

MethodIdentifierBase MethodScriptOrderEnabledConfig Fields
MS Graph AuthenticationINTUNE_ms_graphJSON Rest API_ms_graphjson_rest_api.php10Yes9
MS Graph Certificate Based AuthenticationINTUNE_4d3c234ce2INTUNE_4d3c234ce2json_rest_api.php20Yes10

NOTE: Both methods need an Entra ID app registration with application permissions granted, rather than delegated permissions, and admin consent given. The shipped jobs need read access to users, groups, managed devices and mobile app data.

NOTE: Both methods are flagged as the default method for the connector. Check which one is preselected when you create a connection rather than assuming.

Method 1: MS Graph Authentication (INTUNE_ms_graph)

Connect to Intune using MS Graph API

The client secret method. You supply the directory (tenant) identifier, the application (client) identifier and a client secret from the Entra ID app registration. The connector posts those to the tenant’s OAuth 2.0 token endpoint with grant_type=client_credentials and scope=https://graph.microsoft.com/.default, and uses the returned access token as a bearer token. The tenant identifier is substituted into the OAuth URI, so the default endpoint value works unchanged for any tenant. Use this method when it is acceptable to store and rotate a secret.

Connection Configuration Fields (9)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYeshttps://graph.microsoft.com255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
60Tenant IdpasswordYes64000Enter Microsoft Graph directory (tenant) Id of the Connection
70App ID / Client IDpasswordYes64000Enter Microsoft Graph application (application / client) Id of the Connection
80Client SecretpasswordYes64000Enter Microsoft Graph client secret of the Connection
190OAuth POST Request Full URItextYeshttps://login.microsoftonline.com/%auth_value_1%/oauth2/v2.0/token500Enter URI to send a POST OAuth request to the identity platform to acquire an access token
200Access Token JSON NodetextNoaccess_token255Enter JSON data node for access token
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/x-www-form-urlencodedOff

Headers sent on the data calls:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Bearer%auth_data%Off

Authentication request body:

KeyValue
client_id%auth_value_2%
client_secret%auth_value_3%
grant_typeclient_credentials
scopehttps://graph.microsoft.com/.default

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame
POSTtrueNot set

Method 2: MS Graph Certificate Based Authentication (INTUNE_4d3c234ce2)

Connect to an Intune using MS Graph API with Certificate

The certificate method. Instead of a client secret, you upload the public certificate and the matching private key registered against the app registration. The MS_GRAPH_JWT authentication flag tells the engine to build and sign a JWT client assertion from that key pair and send it in place of a secret. The same tenant identifier and application identifier fields are used, and the token is acquired from the same OAuth endpoint. Use this method where certificate-based application credentials are required by policy, or where you want a credential lifetime measured in years rather than months.

Connection Configuration Fields (10)

OrderLabelTypeRequiredDefaultMax LenTooltip
10Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
10API DomaintextYeshttps://graph.microsoft.com255Enter API domain of the Connection
60Tenant IdpasswordYes64000Enter Microsoft Graph directory (tenant) Id of the Connection
70App ID / Client IDpasswordYes64000Enter Microsoft Graph application (application / client) Id of the Connection
80Public CertificatepasswordNo64000Upload Microsoft Graph Public Certificate file
90Private KeypasswordNo64000Upload Microsoft Graph Private Key file
190OAuth POST Request Full URItextYeshttps://login.microsoftonline.com/%auth_value_1%/oauth2/v2.0/token500Enter URI to send a POST OAuth request to the identity platform to acquire an access token
200Access Token JSON NodetextNoaccess_token255Enter JSON data node for access token
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/x-www-form-urlencodedOff

Headers sent on the data calls:

HeaderValueBase64
Content-Type:application/jsonOff
Authorization: Bearer%auth_data%Off

Authentication request body:

KeyValue
tenant_id%auth_value_1%
client_id%auth_value_2%
grant_typeclient_credentials
scopehttps://graph.microsoft.com/.default
pub_cert%auth_value_3%
pri_key%auth_value_4%

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame
POSTtrueNot set

NOTE: Public Certificate and Private Key are both marked optional on this form, but the JWT client assertion cannot be built without them. A connection saved without both will fail at the token request.

NOTE: The certificate you upload must be the one registered on the Entra ID app registration, and the private key must match it. The token request fails with an identity platform error rather than a ReadyWorks error if it does not.

Inbound Job Fields Enabled (44)

Inbound jobs expose the full REST job form, including Graph paging through the pagination group and the three enumeration levels that the per-device and per-group jobs depend on.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
20Job SchedulelookupYesDailySelect frequency Job should run
30EnabledradioYesYesChoose if Job is enabled
40Use Unparsed DataradioNoNoChoose if you wish to parse the incoming data, or leave it in its raw format
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
70Destination TabletextYesEnter name of the destination table
80Data IdentitytextNoEnter identity of the Job
120Append New Data to Existing TablesradioNoNoChoose if new data will append to the existing destination table, or will create a new destination table
130Fields to IndextextNoEnter fields to index
170Method TypeselectYesGETSelect method type of the Job
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
220Raw JSON Body DatatextareaNoEnter the raw JSON body to send. Do not use body selections in the API Parameters if this is used.
230API Return Data NodetextNoEnter API return data node of the Job
250Pagination TypeselectNoNoneSelect request paging type of the Job
270API Pagination NodetextNoEnter API pagination node of the Job
280Pagination Offset StarttextNoEnter request paging offset start of the Job
290Pagination LimittextNoEnter request pagination limit of the Job
300Pagination Termination NodetextNoEnter request paging termination node and value of the Job
310Maximum API CallstextNoEnter maximum number of API calls for the Job to make
320Enumeration 1 TypeselectNoNoneEnter enumeration level 1 type
330Enumeration 1 ETL JoblookupNoSelect ETL job for the enumeration values
340Enumeration 1 Data Typedata_typeNoSelect the data type and fields for enumeration 1 values
350Enumeration 1 Keys End PointtextNoEnter enumeration 1 keys end point of the Job
360Enumeration 1 NodetextNoEnter enumeration 1 node of the Job
370Enumeration 1 Fieldsfields_listNoEnter enumeration 1 fields of the Job
380Enumeration 2 TypeselectNoNoneEnter enumeration level 2 type
390Enumeration 2 ETL JoblookupNoSelect ETL job for the enumeration 2 values
400Enumeration 2 Data Typedata_typeNoSelect the data type and fields for enumeration 2 values
410Enumeration 2 Keys End PointtextNoEnter enumeration 2 keys end point of the Job
420Enumeration 2 NodetextNoEnter enumeration 2 node of the Job
430Enumeration 2 Fieldsfields_listNoEnter enumeration 2 fields of the Job
440Enumeration 3 TypeselectNoNoneEnter enumeration level 3 type
450Enumeration 3 ETL JoblookupNoSelect ETL job for the enumeration 3 values
460Enumeration 3 Data Typedata_typeNoSelect the data type and fields for enumeration 3 values
470Enumeration 3 Keys End PointtextNoEnter enumeration 3 keys end point of the Job
480Enumeration 3 NodetextNoEnter enumeration 3 node of the Job
490Enumeration 3 Fieldsfields_listNoEnter enumeration 3 fields of the Job
500Pause EnumerationtextNoEnter values for pausing enumeration every X calls for Y seconds
510Kill Enumeration on ErrorradioNoNoChoose to stop the enumeration loop on an error or continue processing the loop
520Additional Fieldsfields_listNoEnter list of additional fields to add to staging data
550Retry PausetextNoEnter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds.
560OrdertextYesEnter order of the Job

Outbound Job Fields Enabled (13)

The outbound job form is fully enabled, which is what lets you turn the shipped REST POST scaffold into a real write-back job.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
30EnabledradioYesYesChoose if Job is enabled
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
170Method TypeselectYesGETSelect method type of the Job
180Data Sending MethodselectYesJSON Encoded DataSelect method for sending the outbound data
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
260Return Data Fields Listfields_listYesEnter return data fields of the Job
530Outbound Fields Listfields_listYesEnter outbound fields of the Job
540Ignore Empty Outbound FieldsradioNoYesIgnore, and do not include, any outbound fields that are empty and have no data
550Raw JSON Outbound TemplatetextareaNoEnter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields.
560OrdertextYesEnter order of the Job

Inbound Job Templates (11)

Eleven inbound templates ship, covering directory users and groups, the managed device estate, the application catalogue and its assignments, and Windows protection state. Nine call named Graph endpoints and two are blank scaffolds for jobs you write yourself. All eleven ship disabled.

#Job DescriptionDestination TableAPI End PointEnabledWhat It Pulls
1Usersintune_users/v1.0/usersNoThe Entra ID directory user list from /v1.0/users, narrowed by a $select to about thirty identity and organisational attributes: display name, given name and surname, mail and user principal name, employee identifier, job title, department, company, office location, city, state, country, postal code, phone numbers, the on-premises synchronisation attributes and the extension attributes.
2Rest GET APIapi_dataNot setNoA blank template with no endpoint configured, shipped as a starting point for a custom Graph GET job. It writes to a generic api_data table.
3User Registered Devicesintune_user_registered_devices/v1.0/users/%enum_id%/ownedDevicesNoFor each user in the directory, the device objects that user owns, from /v1.0/users/{id}/ownedDevices. This is the Entra ID device registration view of ownership rather than the Intune enrolment view.
4Groupsintune_groups/v1.0/groupsNoEvery group in the directory from /v1.0/groups, covering security groups, Microsoft 365 groups and mail-enabled groups, with identifier, display name, description, mail address and the group type flags that drive Intune assignment targeting.
5Group Membersintune_group_members/v1.0/groups/%enum_id%/membersNoFor each group, the members of that group from /v1.0/groups/{id}/members, narrowed by $select to identifier and display name. This is the edge list that connects users to the groups Intune policy and application assignments are targeted at.
6Detected Appsintune_detected_apps/beta/deviceManagement/managedDevices/%enum_id%/detectedAppsNoFor each MDM-managed device, the software Intune has detected on it from the beta detectedApps relationship: application display name, version, size and publisher. This is Intune’s discovered software inventory, distinct from the applications Intune itself deploys.
7Managed Applicationsintune_apps/v1.0/deviceAppManagement/mobileAppsNoThe application catalogue defined in Intune from /v1.0/deviceAppManagement/mobileApps: every app added for deployment, with display name, publisher, platform-specific type, publishing state and version.
8Managed Applications Assignmentsintune_apps_assignments/v1.0/deviceAppManagement/mobileApps/%enum_id%/assignmentsNoFor each application in the catalogue, its assignment records: which group the app is targeted at, the intent (required, available or uninstall), and the assignment settings that control installation behaviour.
9Managed Devicesintune_devices/v1.0/deviceManagement/managedDevicesNoThe enrolled device estate from /v1.0/deviceManagement/managedDevices: every device Intune manages, with device name, owner, operating system and version, compliance state, enrolment date, last sync time, management agent and the assigned user.
10Managed Devices Hardwareintune_devices_hardware/beta/deviceManagement/managedDevices/%enum_id%NoFor each managed device, the beta managedDevices object with a sixty-field $select that adds the hardware and enrolment detail the v1.0 collection does not carry: serial number, model and manufacturer, wired and wireless MAC addresses, total and free storage, physical memory, processor architecture, SKU family and number, join type, Autopilot enrolment, enrolment profile name, bootstrap token escrow state, encryption and supervision flags, and the Windows malware counters.
11Protection Stateintune_protected_state/beta/deviceManagement/managedDevices/%enum_id%/windowsProtectionStateNoFor each MDM-managed device, the Windows protection state from the beta windowsProtectionState relationship: Microsoft Defender engine, signature and platform versions, real-time protection and network inspection status, last quick and full scan times, and whether the device needs a reboot or a full scan.

Job Template Configuration

Settings Common to All Eleven Templates

SettingValue
EnabledNo
Job ScheduleDaily (15 1 * * *)
Allow Empty TableYes
Append Files to Same Destination TableNo
Append New Data to Existing TablesNo
Use Unparsed DataNo
Convert UUID-Keyed Objects to RowsNo
Ignore XML AttributesNo
Log Raw API CallsNo
Method TypeGET
Body Data Sending MethodJSON Encoded Data

Settings That Vary by Template

TemplateIDOrderDestination TableData IdentityAPI End PointAPI Return Data NodePagination Type
Users2210intune_usersintune_users/v1.0/usersvalueNext Page Node
Rest GET API2310api_dataapi_dataNot setNot setNot set
User Registered Devices2520intune_user_registered_devicesintune_user_registered_devices/v1.0/users/%enum_id%/ownedDevicesvalueNext Page Node
Groups2630intune_groupsintune_groups/v1.0/groupsvalueNext Page Node
Group Members2740intune_group_membersintune_group_members/v1.0/groups/%enum_id%/membersvalueNext Page Node
Detected Apps2850intune_detected_appsintune_detected_apps/beta/deviceManagement/managedDevices/%enum_id%/detectedAppsvalueNot set
Managed Applications2960intune_appsintune_apps/v1.0/deviceAppManagement/mobileAppsvalueNext Page Node
Managed Applications Assignments3070intune_apps_assignmentsintune_apps_assignments/v1.0/deviceAppManagement/mobileApps/%enum_id%/assignmentsvalueNext Page Node
Managed Devices3180intune_devicesintune_devices/v1.0/deviceManagement/managedDevicesvalueNext Page Node
Managed Devices Hardware3290intune_devices_hardwareintune_devices_hardware/beta/deviceManagement/managedDevices/%enum_id%Not setNext Page Node
Protection State24100intune_protected_stateintune_protected_state/beta/deviceManagement/managedDevices/%enum_id%/windowsProtectionStateNot setNext Page Node

Settings That Vary by Template (continued)

TemplateIDAPI Pagination Nodeenumeration_typeenumeration_pathenumeration_node
Users22"@odata.nextLink"Not setNot setNot set
Rest GET API23Not setNot setNot setNot set
User Registered Devices25"@odata.nextLink"API End Point/v1.0/usersvalue
Groups26"@odata.nextLink"Not setNot setNot set
Group Members27"@odata.nextLink"API End Point/v1.0/groupsvalue
Detected Apps28Not setAPI End Point/v1.0/devicemanagement/manageddevices?$filter=managementAgent%20eq%20’mdm’value
Managed Applications29"@odata.nextLink"Not setNot setNot set
Managed Applications Assignments30"@odata.nextLink"API End Point/v1.0/deviceAppManagement/mobileAppsvalue
Managed Devices31"@odata.nextLink"Not setNot setNot set
Managed Devices Hardware32"@odata.nextLink"API End Point/v1.0/deviceManagement/managedDevicesvalue
Protection State24"@odata.nextLink"API End Point/v1.0/deviceManagement/managedDevices?$filter=managementAgent%20eq%20’mdm’value

Job Parameters and Enumeration

Users

API data parameters:

KeyValue
$selectSee below

$select:

id,displayName,givenName,mail,surname,userPrincipalName,businessPhones,city,companyName,country,department,employeeId,faxNumber,jobTitle,mailNickname,mobilePhone,officeLocation,onPremisesExtensionAttributes,onPremisesDistinguishedName,onPremisesDomainName,onPremisesImmutableId,onPremisesUserPrincipalName,otherMails,postalCode,state,streetAddress,usageLocation,userType

User Registered Devices

Enumeration 1 fields:

NameValue
enum_id_1id

Group Members

API data parameters:

KeyValue
$selectid,displayName

Enumeration 1 fields:

NameValue
enum_id_1id

Detected Apps

Enumeration 1 fields:

NameValue
enum_id_1id

Managed Applications Assignments

Enumeration 1 fields:

NameValue
enum_id_1id

Managed Devices Hardware

API data parameters:

KeyValue
$selectSee below

$select:

id,userId,deviceName,ownerType,managedDeviceOwnerType,managementState,enrolledDateTime,lastSyncDateTime,chassisType,operatingSystem,deviceType,complianceState,managementAgent,osVersion,easActivated,easDeviceId,easActivationDateTime,aadRegistered,azureADRegistered,deviceEnrollmentType,lostModeState,activationLockBypassCode,emailAddress,azureActiveDirectoryDeviceId,azureADDeviceId,deviceRegistrationState,deviceCategoryDisplayName,isSupervised,isEncrypted,userPrincipalName,model,manufacturer,complianceGracePeriodExpirationDateTime,serialNumber,userDisplayName,wiFiMacAddress,deviceHealthAttestationState,totalStorageSpaceInBytes,freeStorageSpaceInBytes,managedDeviceName,partnerReportedThreatState,retireAfterDateTime,autoPilotEnrolled,managementCertificateExpirationDate,windowsActiveMalwareCount,windowsRemediatedMalwareCount,notes,ethernetMacAddress,physicalMemoryInBytes,processorArchitecture,specificationVersion,joinType,skuFamily,skuNumber,managementFeatures,enrollmentProfileName,bootstrapTokenEscrowed,deviceFirmwareConfigurationInterfaceManaged

Enumeration 1 fields:

NameValue
enum_id_1id

Protection State

Enumeration 1 fields:

NameValue
enum_id_1id

NOTE: All eleven templates ship with Enabled set to No. Enable the ones you need after you have confirmed the app registration permissions are in place.

NOTE: Six templates enumerate: they make one call per user, group, device or application. On a large tenant that is thousands of Graph calls per run, which interacts with both the Graph throttling limits and the Single Authentication setting on the connection.

NOTE: Four templates call beta Graph endpoints. Microsoft does not support beta endpoints for production workloads and can change their shape without notice, so treat the data those jobs return as subject to change between Graph releases.

Outbound Job Templates (1)

One outbound template ships, and it is a generic scaffold rather than a working job.

#Job DescriptionMethodAPI End PointEnabledWhat It Does
1Rest POST APIPOSTNot setNoA blank outbound REST job with no endpoint configured. It sends a single required field, Record Key, as a JSON body and maps three values back from the response: a status, a message and the record key. It is a starting point for building a write-back job against a Graph endpoint you choose.

Job Template Configuration

Settings

SettingValue
Order10
EnabledNo
Log Raw API CallsNo
Method TypePOST
Body Data Sending MethodJSON Encoded Data
Data Sending MethodJSON Encoded Data
Ignore Empty Outbound FieldsYes

Job Parameters and Enumeration

Rest POST API

Outbound fields list:

LabelNameTypeRequiredPattern
Record Keyrecord_keyStringon

Return data fields:

LabelName
Return Statusstatus
Return Messagemessage
Record Keydata.record_key

NOTE: This template ships disabled and has no endpoint set. It will not do anything until you supply an API End Point, the method and the outbound field list your target endpoint expects.

Last updated on 11/4/2026

Attachments