- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-05-2025 05:57 PM
Hello all
I need to invoke a REST Message which supports client credentials as the Oauth grant type. I followed the docs and I have defined a Oauth profile. I have also verified that SNOW is able to obtain an access token but this happens only when I request for an access token manually.
For this integration of work at runtime, SNOW needs to be able to obtain the access token using client credentials without human intervention. I have looked at prior solutions where folks have suggested writing a job
https://www.servicenow.com/community/developer-forum/access-token-in-case-of-client-credentials-gran...
or have referred to the following Support Note https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0791131
Am I correct in assuming that there is no way that ServiceNow will automatically obtain the access token?
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-05-2025 06:31 PM
Why not generate the token by saving it as a REST Message and then invoking it using the RestMessage
API? Here's an example:
-
Save the REST Message:
Configure a REST Message in ServiceNow with the necessary endpoint and authentication details. -
Call it with the
RestMessage
API:
var restMessage = new sn_ws.RESTMessageV2('MyTokenEndpoint', 'Default');
var response = restMessage.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info('Response Status: ' + httpStatus);
gs.info('Response Body: ' + responseBody);
In this example, the MyTokenEndpoint
is the name of the saved REST Message, and you can use the RestMessageV2
API to invoke it directly.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-05-2025 06:31 PM
Why not generate the token by saving it as a REST Message and then invoking it using the RestMessage
API? Here's an example:
-
Save the REST Message:
Configure a REST Message in ServiceNow with the necessary endpoint and authentication details. -
Call it with the
RestMessage
API:
var restMessage = new sn_ws.RESTMessageV2('MyTokenEndpoint', 'Default');
var response = restMessage.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info('Response Status: ' + httpStatus);
gs.info('Response Body: ' + responseBody);
In this example, the MyTokenEndpoint
is the name of the saved REST Message, and you can use the RestMessageV2
API to invoke it directly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-05-2025 08:05 PM
Thank you @Omkar Mone
That approach worked.
I defined the REST Message using System Web Services --> Outbound REST Message. The client credentials flow, in my scenario, uses POST so I defined that including the scopes.
Then I followed your steps in my script with one change. To get the access token, I used JSON.parse
var access_token = JSON.parse(response.getBody()).access_token