Workday: REST call to a report

Jonathan F
Tera Expert

We are pulling information from Workday and avoiding their plugin (based on what we see in this community forum) and their SOAP API (based on how needlessly complicated it is), and so we landed on using their Rest API to pull what Workday calls Custom Reports. So, we are using System Web Services > REST Message to call Workday.

Results:

- Workday has IP Whitelisting for security purposes, so I configured the REST Message to use the MID Server set up for our integrations

- I updated our firewall rules and confirmed that the traffic from the MID Server to the Workday server is not blocked

- I have the correct Basic Auth credentials, and have confirmed that I can reach Workday using Postman from my device AND using the logs in ServiceNow that it is sending an identical header as I'm using from my device that works

- We temporarily removed the IP Whitelisting rules and attempting to call directly from ServiceNow to Workday

However, these REST requests continue to receive a 401 unauthorized message from Workday. Does this problem sound familiar to somebody? If so, what did you do to fix the situation?

Thank you for your time and consideration.

1 ACCEPTED SOLUTION

Jonathan F
Tera Expert

It turns out that it was the configuration error was on Workday's side. I finally got access to view their login attempt logs, which included more detail about why the request was rejected. It showed that the update he thought he applied was not actually applied because he had to submit a few more requests to apply the change. After applying the change to the IP Whitelisting, the request goes through for the report.

View solution in original post

7 REPLIES 7

Mike Patel
Tera Sage

for your username are you using your username@tenant ex: servicenow@mycompany ?

also try to open report in new windows with service account login info just to make sure service account has access to the report.

Jonathan F
Tera Expert

I have tried both username and username@tenant from ServiceNow.

I have successfully reached the URL using the username from Chrome and from Postman. I get an unauthorized message from both Chrome and Postman when using username@tenant.

When comparing the request from ServiceNow's logs to what I send from Postman, I can't seem to find any differences other than ServiceNow sends an extra X-SNC-INTEGRATION-SOURCE header.

Yes, You need to use just user and pass not @tenant.

Also can you try adding ?format=json after your reportname in endpoint ?

Jonathan F
Tera Expert

Thank you for continuing to offer suggestions to try!

I confirmed adding ?format=json in Postman works. Then I tried it in ServiceNow by adding it to the end of the Endpoint field and received the same result.