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!














