Get requests from ServiceDesk with given status

Hello, everyone:

I’m trying to get requests from my users using ServiceDesk REST API.
No matter if I set the requestStatus parameter as open, closed or both, I always got the same list. I examine the returned JSON and I got requests with statusCategory as “DONE”, “NEW” and “INDETERMINATE”. All when asking for open, none when asking for closed.

When I was doing this with JIRA REST API, and my user, I can use JQL to get a list of issues with a list of status like “Accepted”, “rejected” or “inDevelopment”.

Am I doing something wrong? Some missing configuration or a parameter in the request that I didn’t saw?

Thank you!

Hello @CarlosALpezOrtn,

Is it safe to assume that you are referring to Get customer requests API? I’ve tried these two requests - one using CLOSED_REQUESTS and the other using OPEN_REQUESTS - and both yielded the expected responses.

  • GET /rest/servicedeskapi/request?requestStatus=CLOSED_REQUESTS
  • GET /rest/servicedeskapi/request?requestStatus=OPEN_REQUESTS

In order to better understand your scenario, can you share the request you are sending?

Cheers,
Ian

Yes, I’m using Get Customer Requests. The uri I’m using is
https://ccsaconsultoria.atlassian.net/rest/servicedeskapi/request?requestStatus=OPEN_REQUESTS&expand=requestType

Also, the same one with CLOSED_REQUESTS.
The first returns all of our requests, open and closed, that our client has access. The second returns no requests at all. I think it’s because we’re using custom “status” (“in development”, “testing”, “pending payment”…) and they’re not defined as “open” or “closed” (they should be, in Jira cloud looks like they are, but not on ServiceDesk, I don’t know, I’m not the administrator).
The best way would be to select requests based on their “status”, the same way we did in another project with Jira Cloud REST API, Search issues, using JQL:
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-search/#api-rest-api-3-search-post
But JQL is out of reach on ServiceDesk API, and I don’t if it’s possible, at all.

Thanks!

Hello @CarlosALpezOrtn ,

Thanks, this clarifies the behavior you are experiencing.

For your use case, you can still use Jira Cloud’s Search for issues using JQL even if you are searching for service desk issues. There, you can use the custom status field in your JQL. If you want to search for all service desk issues/requests in a specific custom status you can try something like

custom_status in (“in development”, “testing”, “pending payment”) and projectType = service_desk

Is there a specific need for you to use a JSM Cloud API or does the information returned by Jira Cloud REST API’s issue search sufficient enough?

Cheers,
Ian

No, I can’t use Jira Cloud because we are making a website for our customers, that doesn’t have an Atlassian account, they’re just JSM customers.
I can’t connect them with Jira Cloud, I had to do via ServiceDesk, using Basic Auth (I wrote to support, and they told me that OAuth connection for JSM customers is in the scheudle, but there is no release date since 2016).

So, “Search for issues using JQL” in Jira Cloud REST API is not an option.

Hi @CarlosALpezOrtn ,

Here are two things I can think of:

  • Stepping back a bit, when you said you are using custom status, can your administrator edit the status category in the workflow your JSM project is using (see image below)? There, they can map the status to the correct category and your call to Get customer requests endpoint should return the expected response.

  • When you said

If your web app is using basic auth to call the JSM APIs, can you use the same credentials to call the Jira Cloud API to search for the issues?

Cheers,
Ian

Ok, my administrator is checking the status configuration that you provided. It looks like it wasn’t checked before. I’ll tell you when he finish with it.

About the second part, no I can’t use Jira Cloud API. I told you, our costumers don’t have an Atlassian account, just a customer account that you can create inside Jira config. They can’t connect with Jira because an error says that they don’t have a Jira database, they only can connect to ServiceDesk.
I was asking to support for two weeks about how to connect them with Jira Cloud, using OAuth2 and Basic Auth, and I have to re-write all the Jira section of my project in order to connect and use ServiceDesktop, because there is NO WAY to do it right now.

EDIT: my administrator said that the Category configuration of status are configured, but still the same issue with filter.

Hello: I was doing other task while I’m waiting for an answer, but still I don’t have any clue how to do this. Do someone knows how to get this information form ServiceDesk Api?

Thanks.

Hi @CarlosALpezOrtn,

Using JSM APIs, Get customer requests API should be able to handle this given that the states are set to the proper categories.

After rechecking, the API is returning the expected response so I am unsure what is causing the discrepancy.

To help verify, can you share the workflow for a request? Go to a request that is supposedly done/closed (based on your custom status definition) then click the View workflow

A modal should pop up that will look like this

This will help us better understand what the workflow looks like for your JSM project.

Thanks,
Ian

Hello:
Sorry for the late reply, but I had to ask for permission to see the workflow, and in the meantime, other projects gain priority.
This is the workflow of one of our closed issues:

Hi @CarlosALpezOrtn ,

Based on the image, if this is the workflow for a service desk project, requests that are in the status in green rectangles should have the status category DONE and will be returned by /rest/servicedeskapi/request?requestStatus=CLOSED_REQUESTS.

As I currently do not see any problems/bugs with the said API (after checking again today), I think this is more of a service desk project configuration-related concern. Having said that, I would advise that you raise this item in Atlassian Support so that the support folks can help diagnose if there are configurations that were missed out.

Cheers,
Ian

1 Like

Hello again:

My administrator finally solved it. He wrote to support and was talking for a while with them. They did something and now it’s working. I’m not sure what it was, but it involved turning all the requests into a “temporal status” and then to closed again, like something was missing when closing them, or the status itself that needed to “reset”.

So, now it’s working. Thanks a lot!

2 Likes