ServiceNow

ServiceNow improves service levels, energizes employees, and enables your enterprise to work at lightspeed. Create, read and update records stored within ServiceNow including Incidents, Questions, Users and more.
This connector is available in the following products and regions:
Service | Class | Regions |
---|---|---|
Copilot Studio | Premium | All Power Automate regions except the following: - China Cloud operated by 21Vianet |
Logic Apps | Standard | All Logic Apps regions except the following: - US Department of Defense (DoD) |
Power Apps | Premium | All Power Apps regions except the following: - China Cloud operated by 21Vianet |
Power Automate | Premium | All Power Automate regions except the following: - China Cloud operated by 21Vianet |
Contact | |
---|---|
Name | Microsoft |
URL | Microsoft LogicApps Support Microsoft Power Automate Support Microsoft Power Apps Support |
Connector Metadata | |
---|---|
Publisher | Microsoft |
Website | https://www.servicenow.com/ |
Privacy policy | https://www.servicenow.com/privacy-statement.html |
Note
The Get Knowledge Articles operation can only be used when the Knowledge API (sn_km_api) plugin is activated.
Known Issues and Limitations
When using the Create Record action, it's not possible to specify the full record description. The field value will be ignored due to Service-Now REST API limitations.
The Get Records action may return an "Invalid Table" or other error in Power Apps. For Power Apps implementations the suggested work around is to utilize the Get Records action in Power Automate and pass the data back to Power Apps.
The connector currently supports only instance URLs ending with "service-now.com". Using alternative domains such as "servicenowservices.com" may lead to connection errors. In such cases—particularly when working with new ServiceNow domain in GCC — it is recommended to use Basic Authentication.
If you encounter a popup error stating "Invalid redirect_uri", copy the full URL from the popup window and extract the redirect_uri parameter (e.g., redirect_uri=https%3a%2f%2ftip1-shared.consent.azure-apim.net%2fredirect). After decoding the URL (replacing %3a with : and %2f with /), update the Redirect URL field in your ServiceNow instance’s OAuth app registry as shown in image below. Then, try re-adding the connection.
How to set up a ServiceNow Power Platform connection that uses Microsoft Entra ID
There are two connection types:
Microsoft Entra ID OAuth using Certificate: This is an app-token based authentication type where an application registered in Entra ID can be used to access ServiceNow by getting a token with the resource set as the ServiceNow representative Entra ID app.
Microsoft Entra ID OAuth using User Login: This is a user-token based authentication type where the end user can sign into the Entra ID 1P application (ServiceNow Connector 1p App) and get an access token with the scope set for the ServiceNow representative Entra ID app.
Steps to create a Microsoft Entra ID OAuth connection using Certificate
Step 1: Register an "Application A" in Microsoft Entra ID for OIDC Integration with ServiceNow. This is the ServiceNow representative Entra ID application.
Go to App registrations > New registration to create a new application registration
Name: any name of choice
Redirect URI: not required
Add
aud
,email
&upn
to the claims under "Optional claims"
Step 2: Register the same ID as an OIDC provider in ServiceNow
Navigate to
System OAuth > Application Registry > New > Configure an OIDC provider
to verify ID tokens- Name: any name of choice
- Client ID: the
client ID
of "Application A" created in Step 1 - Client Secret: this will not actually be used, any value can be set
In the OIDC provider registration form, add a new OIDC provider configuration. Select the search icon against the OAuth OIDC Provider Configuration field to open the records of OIDC configurations, select "New".
- OIDC Provider: Microsoft Entra ID
- OIDC Metadata URL: The URL must be in the form
https://login.microsoftonline.com/<tenantID>/.well-known/openid-configuration
, replacetenantID
withDirectory (tenant) ID
- OIDC Configuration Cache Life Span: 120
- Application: Global
- User Claim: oid
- User Field: User ID
- Enable JTI claim verification: Disabled
Select "Submit" and update the OAuth OIDC Entity form
Step 3: Register an "Application B" in Microsoft Entra ID for Connector Usage. This is the Application which plays the role of a user with elevated permissions in the ServiceNow instance
Navigate to
App registrations > New registration
to create a new app- Name: any name of choice
- In Certificates & secrets, upload the .cer file of the certificate
In case of SNI certificate, just add
trustedCertificateSubjects
in the manifest of the application with the relevantauthorityId
andsubjectName
Step 4: Create a System User in ServiceNow. This is the "Application B" as a user in the ServiceNow instance
Navigate to
User Administration > Users
to create a new user- User ID: The object ID of the service principal of "Application B" created in Step 3
- Check
Web service access only
Step 5: Connect Using the Connector – Copilot Studio – Connector configuration
Configure the connector with the following information and connect:
- Instance Name: The instance name of ServiceNow
- Tenant ID: The tenant ID of the Microsoft Entra tenant
- Client ID: The client ID of "Application B" created in Step 3
- Resource URI: The client ID of "Application A" created in Step 1 (not the Application URI)
- Client Certificate Secret: The .pfx file of the certificate created in Step 3
- Certificate Password: The password of the .pfx file
Steps to create Microsoft Entra ID OAuth User login
To configure a Microsoft Entra ID OAuth User Login connection, please complete Step 1 and Step 2 as outlined in the certificate authentication section above.
Step 1 stays the same. In Step 2, update the user claim to Upn or custom claim property from the token (for third-party identity providers other than Entra) in ServiceNow. The user field should match the ServiceNow system user table field containing the upn or user ID.
Steps 3 and 4 from the certificate authentication section above are not required. Instead, "Application B" in this case is a 1p App which is created for the ServiceNow connector. The below app needs to be granted permissions in the "Application A".
"Application B" ID: c26b24**-****-****-****-**********
While creating the connection for the ServiceNow connector, the user needs to select "Microsoft Entra ID User Login" as the authentication type and only needs to provide the ServiceNow Instance name and the resource ID (which would be the identifier for "Application A"). After this, the sign-in button will take user through the Entra ID login using their own account.
Using a 3rd Party identity provider, or data mismatches existing between the user in Entra ID and the ServiceNow users table
- If there is a mismatch between the user identifier property in the Entra ID token and the user identifier value thats in the ServiceNow table
- For example, the token contains the full upn (along with domain –
abc@contoso.com
) and the ServiceNow users table only contains the user identifier (abc
). It is recommended to add a custom attribute to the token that contains a value which matches the user identifier in the ServiceNow identifier by applying a formula, and then leveraging that new property to do the claim mapping in Step 2. - Microsoft Learn Documentation describing the process of adding a new claim property: https://learn.microsoft.com/entra/external-id/customers/how-to-add-attributes-to-token
- For example, the token contains the full upn (along with domain –
"How to set up a ServiceNow Power Platform connection that uses Microsoft Entra ID" references:
- External ID Token Authentication (OIDC) for Rest APIs - Support and Troubleshooting
- ServiceNow Catalog Microsoft Graph connector | Microsoft Learn
Creating a connection
The connector supports the following authentication types:
Basic Authentication | Sign in using basic authentication | All regions | Not shareable |
Microsoft Entra ID OAuth using Certificate | OAuth with Microsoft Entra ID using PFX certificate. | POWERPLATFORM only | Shareable |
Microsoft Entra ID User Login | Login with Microsoft Entra ID Credentials | All regions | Not shareable |
Use Oauth2 | Sign in with Oauth2 | All regions | Not shareable |
Default [DEPRECATED] | This option is only for older connections without an explicit authentication type, and is only provided for backward compatibility. | All regions | Not shareable |
Basic Authentication
Auth ID: basicAuthentication
Applicable: All regions
Sign in using basic authentication
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
Name | Type | Description | Required |
---|---|---|---|
Instance | string | Name of the instance for service-now.com or custom URL for migrated account | True |
Username | string | Username for this instance | True |
Password | securestring | The password for this account | True |
Microsoft Entra ID OAuth using Certificate
Auth ID: aadOAuthCert
Applicable: POWERPLATFORM only
OAuth with Microsoft Entra ID using PFX certificate.
This is shareable connection. If the power app is shared with another user, connection is shared as well. For more information, please see the Connectors overview for canvas apps - Power Apps | Microsoft Docs
Name | Type | Description | Required |
---|---|---|---|
Instance Name | string | The instance name used to identify the ServiceNow Site URl | True |
Tenant ID | string | True | |
Client ID | string | True | |
Resource URI | string | True | |
Client certificate secret | clientCertificate | The client certificate secret allowed by this application | True |
Microsoft Entra ID User Login
Auth ID: entraIDUserLogin
Applicable: All regions
Login with Microsoft Entra ID Credentials
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
Name | Type | Description | Required |
---|---|---|---|
Resource URI | string | True | |
Instance Name | string | The instance name used to identify the ServiceNow Site URL | True |
Use Oauth2
Auth ID: oauth2ServiceNow
Applicable: All regions
Sign in with Oauth2
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
Name | Type | Description | Required |
---|---|---|---|
Instance Name | string | The instance name used to identify the ServiceNow Site URl | True |
Client Id | string | The ID used to identify this application with the service provider | True |
Client secret | securestring | The shared secret used to authenticate this application with the service provider | True |
Default [DEPRECATED]
Applicable: All regions
This option is only for older connections without an explicit authentication type, and is only provided for backward compatibility.
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
Name | Type | Description | Required |
---|---|---|---|
Instance | string | Name of the instance for service-now.com or custom URL for migrated account | True |
Username | string | Username for this instance | True |
Password | securestring | The password for this account | True |
Throttling Limits
Name | Calls | Renewal Period |
---|---|---|
API calls per connection | 600 | 60 seconds |
Actions
Create Record |
Create a record in a ServiceNow table. |
Delete an attachment (Preview) |
Delete an attachment |
Delete Record |
Deletes a record for a ServiceNow object type like 'Incidents |
Get Attachment Metadata (Preview) |
Retrieve metadata for attachments |
Get Knowledge Articles |
Returns a list of knowledge base (KB) articles which can be searched and filtered |
Get Record |
Gets a record for a ServiceNow object type like 'Incidents' |
Get Record Types |
Lists the available record types |
List Records |
Gets records of a certain ServiceNow object type like 'Incidents' |
Retrieve attachment content (Preview) |
Retrieve attachment content |
Retrieve attachment metadata (Preview) |
Retrieve attachment metadata |
Update Record |
Updates a record for a ServiceNow object type like 'Incidents' |
Upload a binary file as an attachment (Preview) |
Uploads a binary file as an attachment to a specified record |
Upload a multipart file attachment (Preview) |
Upload an attachment from a multipart form |
Create Record
Create a record in a ServiceNow table.
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Record Type
|
tableType | True | string |
Type of record to list |
body
|
body | True | dynamic | |
Display System References
|
sysparm_display_value | boolean |
Determines if system references should be included |
|
Exclude Reference Links
|
sysparm_exclude_reference_link | boolean |
Determines if reference links should be excluded |
|
Fields
|
sysparm_fields | string |
Comma-separated list of fields to be returned. Example: name,email,phone |
Returns
Delete an attachment (Preview)
Delete an attachment
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
sys_id
|
sys_id | True | string |
Delete Record
Deletes a record for a ServiceNow object type like 'Incidents
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Record Type
|
tableType | True | string |
Type of record to list |
System ID
|
sysid | True | string |
System ID for the record. |
Get Attachment Metadata (Preview)
Retrieve metadata for attachments
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
sysparm_limit
|
sysparm_limit | string |
Limit to be applied on pagination. Note: Unusually large sysparm_limit values can impact system performance. Default: 1000 |
|
sysparm_offset
|
sysparm_offset | string |
Number of records to exclude from the query. Use this parameter to get more records than specified in sysparm_limit. For example, if sysparm_limit is set to 500, but there are additional records you want to query, you can specify a sysparm_offset value of 500 to get the second set of records. Default: 0 |
|
sysparm_query
|
sysparm_query | string |
Encoded query. Queries for the Attachment API are relative to the Attachments [sys_attachment] table. For example: (sysparm_query=file_name=attachment.doc) |
Get Knowledge Articles
Returns a list of knowledge base (KB) articles which can be searched and filtered
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Fields
|
fields | string |
Comma-separated list of fields from the Knowledge table. |
|
Limit
|
limit | integer |
Maximum number of records to return. |
|
Query
|
query | True | string |
Text to search for. |
Filter
|
filter | string |
Encoded query to use to filter the result set. |
|
Kb
|
kb | string |
Comma-separated list of knowledge base sys_ids. |
Returns
- Body
- GetArticlesResponse
Get Record
Gets a record for a ServiceNow object type like 'Incidents'
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Record Type
|
tableType | True | string |
Type of record to list |
System ID
|
sysid | True | string |
System ID for the record. |
Display System References
|
sysparm_display_value | boolean |
Determines if system references should be included |
|
Exclude Reference Links
|
sysparm_exclude_reference_link | boolean |
Determines if reference links should be excluded |
|
Fields
|
sysparm_fields | string |
Comma-separated list of fields to be returned. Example: name,email,phone |
Returns
Get Record Types
List Records
Gets records of a certain ServiceNow object type like 'Incidents'
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Record Type
|
tableType | True | string |
Type of record to list |
Display System References
|
sysparm_display_value | boolean |
Determines if system references should be included |
|
Exclude Reference Links
|
sysparm_exclude_reference_link | boolean |
Determines if reference links should be excluded |
|
Query
|
sysparm_query | string |
Encoded query used to filter the result set. Example: active=true^ORDERBYnumber^ORDERBYDESCcategory |
|
Limit
|
sysparm_limit | integer |
Limit to be applied on pagination. The default is 10000. |
|
Offset
|
sysparm_offset | integer |
Number of records to exclude from the query. |
|
Fields
|
sysparm_fields | string |
Comma-separated list of fields to be returned. Example: name,email,phone |
Returns
Retrieve attachment content (Preview)
Retrieve attachment content
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
sys_id
|
sys_id | True | string |
Retrieve attachment metadata (Preview)
Retrieve attachment metadata
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
sys_id
|
sys_id | True | string |
Update Record
Updates a record for a ServiceNow object type like 'Incidents'
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Record Type
|
tableType | True | string |
Type of record to list |
System ID
|
sysid | True | string |
System ID for the record. |
body
|
body | True | dynamic | |
Display System References
|
sysparm_display_value | boolean |
Determines if system references should be included |
|
Exclude Reference Links
|
sysparm_exclude_reference_link | boolean |
Determines if reference links should be excluded |
|
Fields
|
sysparm_fields | string |
Comma-separated list of fields to be returned. Example: name,email,phone |
Returns
Upload a binary file as an attachment (Preview)
Uploads a binary file as an attachment to a specified record
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
table_name
|
table_name | True | string |
Name of the table to which you want to attach the file |
table_sys_id
|
table_sys_id | True | string |
Sys_id of the record on the specified table to which you want to attach the file |
file_name
|
file_name | True | string |
Name to give the attachment |
file
|
file | True | binary |
Binary file to attach to the specified record |
Returns
Upload a multipart file attachment (Preview)
Upload an attachment from a multipart form
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
attachment_content
|
attachment_content | True | file |
Attachment to upload |
table_name
|
table_name | True | string |
Name of the table to which you want to attach the file. |
table_sys_id
|
table_sys_id | True | string |
Sys_id of the record on the specified table to which you want to attach the file |
Returns
Definitions
UploadAttachmentResponse
Name | Path | Type | Description |
---|---|---|---|
average_image_color
|
result.average_image_color | string |
If the attachment is an image, the sum of all colors. |
compressed
|
result.compressed | string |
Flag that indicates whether the attachment file has been compressed. |
content_type
|
result.content_type | string |
Content-type of the associated attachment file, such as image or jpeg or application/x-shockwave-flash. |
created_by_name
|
result.created_by_name | string |
Full name of entity that originally created the attachment file. |
download_link
|
result.download_link | string |
Download URL of the attachment on the ServiceNow instance. |
file_name
|
result.file_name | string |
File name of the attachment. |
image_height
|
result.image_height | string |
If an image file, the height of the image. Unit: Pixels |
image_width
|
result.image_width | string |
If an image file, the width of the image. Unit: Pixels |
size_bytes
|
result.size_bytes | string |
Size of the attachment. Unit: Bytes |
size_compressed
|
result.size_compressed | string |
Size of the attachment. Unit: Bytes |
sys_created_by
|
result.sys_created_by | string |
Entity that originally created the attachment file. |
sys_created_on
|
result.sys_created_on | string |
Date and time that the attachment file was initially saved to the instance. |
sys_id
|
result.sys_id | string |
Sys_id of the attachment file. |
sys_mod_count
|
result.sys_mod_count | string |
Number of times the attachment file has been modified (uploaded to the instance). |
sys_tags
|
result.sys_tags | string |
Any system tags associated with the attachment file. |
sys_updated_by
|
result.sys_updated_by | string |
Any system tags associated with the attachment file. |
sys_updated_on
|
result.sys_updated_on | string |
Date and time that the attachment file was last updated. |
table_name
|
result.table_name | string |
Name of the table to which the attachment is associated. |
table_sys_id
|
result.table_sys_id | string |
Sys_id of the table associated with the attachment. |
updated_by_name
|
result.updated_by_name | string |
Full name of entity that last updated the attachment file. |
GetTypesResponse
Name | Path | Type | Description |
---|---|---|---|
result
|
result | array of object |
Result set of all record types for current instance. |
Display name
|
result.label | string |
Display name of the record type. |
Value
|
result.value | string |
Value of the record type. |
GetArticlesResponse
Name | Path | Type | Description |
---|---|---|---|
Count
|
meta.count | integer |
Number of available KB articles |
End
|
meta.end | integer |
Ending index of the result set |
Fields
|
meta.fields | string |
Fields in the article |
Filter
|
meta.filter | string |
Filter used to acquire the data |
Kb
|
meta.kb | string |
List of knowledge base article sys_ids |
Language
|
meta.language | string |
List of comma-separated languages of the KB articles that were requested |
Query
|
meta.query | string |
Specified request query |
Start
|
meta.start | string |
Starting index of result set |
Status
|
meta.status.code | string |
Status of the call |
Kb
|
meta.ts_query_id | string |
List of comma-separated languages of the KB articles that were requested |
articles
|
articles | array of object | |
Display Value
|
articles.fields.display_value | string |
Display value of the requested field |
Label
|
articles.fields.label | string |
Label representing the requested field |
Name
|
articles.fields.name | string |
Name of the requested field |
Type
|
articles.fields.type | string |
Data type of requested field |
Value
|
articles.fields.value | string |
Value of the requested field |
Link
|
articles.Link | string |
Link to the article |
id
|
articles.id | string |
Knowledge article sys_id from the Knowledge [kb_knowledge] table |
Number
|
articles.number | string |
Knowledge article sys_id from the Knowledge [kb_knowledge] table |
Rank
|
articles.rank | float |
Search rank of article specific to this search |
Score
|
articles.score | float |
Relevancy score, results sorted in descending order by score |
Snippet
|
articles.snippet | string |
Text showing a small portion of the knowledge article |
Title
|
articles.title | string |
Short description or title of the knowledge article |