SailPoint ISC Webservices SaaS connector account aggregation returning 0 accounts | TechnologyOne (CiA) API

Hi All,

I am currently configuring a SaaS Direct Connect Web Services connector in SailPoint Identity Security Cloud to aggregate accounts from SaaS TechnologyOne (CiA).

I am running into issues getting the aggregation never run successfully and throws error .

Depending on the script I use, I either get 0 records returned or the aggregation times out (suggesting an infinite loop).

I have confirmed via Postman that the API credentials and the endpoint itself are working correctly. The issue seems to be isolated to how the SailPoint paging engine is evaluating the termination condition.

API Details:

  • Endpoint: …/Api/WS/v2/User/List?page=X&pageSize=Y

  • Paging Type: Page-based (1-based index).

  • Expected Response Structure: A JSON object containing an array named DataSet.

My Current Configuration:

1. General Information & Context URL:

  • Context URL: /Api/WS/v2/User/List

  • HTTP Method: GET

2. Response Information:

  • Root Path: $.DataSet (Confirmed case-sensitive).

3. Account Schema & Response Mapping:

I have mapped UserId from the JSON to my id attribute, which is flagged as the Account ID.

4. Postman Example Response:

Here is the JSON structure I am successfully getting outside of SailPoint:

5. Paging Configuration (Current State):

Based on the official SailPoint documentation for limit/offset (page-based) paging, I am using the proprietary variables ($limit$, $offset$, $RECORDS_COUNT$).

  • Initial Page Offset: 1

  • Page Size: 50

  • Paging Steps:

The Problem:

Even though this configuration appears to match the documentation examples :

If my test environment has fewer than 50 users (a partial first page), the $RECORDS_COUNT$ < $limit$ check seems to cause the aggregation to return 0 records.

I have also experienced timeout errors (possible infinite loops) when attempting to use other termination logic, such as checking for .length == 0 on the DataSet array.

Questions for the Community:

Has anyone successfully configured paging for the TechnologyOne CiA User/List endpoint using the SaaS Web Services connector?

Is there a quirk with how $RECORDS_COUNT$ is evaluated in the cloud engine when the very first page is not full?

Should I be using a different termination strategy for TechnologyOne, such as checking if the first element of the array exists (e.g., TERMINATE_IF $response.DataSet[0]$ == null)?

Any recommendations or examples of working paging scripts for this specific target system would be greatly appreciated.

Thank you!

Hi @yasha

It looks like since your first call is hitting the terminate call before it returns any records, I would try replacing that specific check with something like this:

TERMINATE_IF ($offset$ != 1) && ($RECORDS_COUNT$ < $limit$)

Let me know if this works for you!

Unfortunately, no luck.

Thanks for trying it.

If you remove paging, does it aggregate all the users just fine (Just the ones on the first page)?

@trettkowski
Still no luck

Ah! Well that narrows down the issue.

That error typically indicates a VA issue, not anything wrong with your configuration. Have you tried restarting your VA?

Edit: Just realized this is a SaaS based connector, you can disregard the above.

I used a pageNumber system to fixed my pagination problems:


TERMINATE_IF $response.hasNextPage$ == false 

$endpoint.fullUrl$ = $application.baseUrl$ + “/name?pageNumber=” +($response.pageNumber$ + 1)+“&pageSize=1000”

Also, have you defined a starting point for $limit? I couldn’t see one

Don’t you need to mention the page=X&pageSize=Y in the first call?

I don’t think Pagination is his issue here or he’s at least not even getting to the pagination portion of his code hence why removing it did nothing.

I don’t think your pagination code will work considering his response from the API doesn’t have a hasNextPage response.

1 Like

@trettkowski
I took too long with my reply and missed the rest the conversation>
He did mention he was using a SaaS connector so no need for a VA.

@yasha Can you share your GET all connector settings

@iamnithesh
Thank you. I tried the recommended steps however still the aggregation failed with error and returning 0 accounts.

@phil_awlings

I currently only have two HTTP operations configured.

One for test and one for aggregation.

Sharing both for the reference and the current configuration

Have you tried with $RECORDS_COUNT$ < 50

Can you match the Account aggregation settings to same as functioning Postman example:
/List?page=184&pageSize=1

Then run an aggregation, and post the results. If that errors, then we know there is something wrong in the HTTP operation build