Also, I have observed, if I do a get API call using bruno, in response there is no “HIRE_DATE” tag, so not sure how even the hiredate is being populated with same value as Original Hire Date when we run full aggregation
@Krank Regarding HireDate, check your app xml, there should be SOAP XML attribute mapping must be defined. Could you please share your workday xml for review?
Hello Kranti. Since full aggregation finds the worker but delta does not, I would first check the delta-specific Workday Business Process Security Policy permissions. The Integration System Security Group used by the connector needs View Completed Only on the related business process:
Your EffectiveDateOffset=18 and Future_Hire_Events look fine for the 10/05 future hire. SailPoint’s troubleshooting guide also notes that the connector adds the core Hire/Terminate events internally, so their absence from your custom Delta_Aggregation_Events list would not by itself explain this. Troubleshooting
Since you are already testing in Bruno, I would send the delta-style Get_Workers request using Transaction_Log_Criteria_Data for the same time window. If the Hire transaction is not returned there, that points more toward Workday permission or event visibility than later IIQ processing.
For HIREDATE, I would leave the mapping unchanged. The documented default is Worker_Data/Employment_Data/Worker_Status_Data/Hire_Date.
Also verify that the IdentityIQ server time is synchronized with the configured Workday Effective Time Zone, since delta uses the last aggregation time when building its window. Troubleshooting
I would start with the Hire/Termination Business Process permissions.
I forgot to mention, we do have “Hire” and “Termination” assigned to ISU.
I checked the get_worker API call with Transaction_Date_Range_Data and I’m able to get the worker.
SailPoint’s troubleshooting guide also notes that the connector adds the core Hire/Terminate events internally, so their absence from your custom Delta_Aggregation_Events list would not by itself explain this.
I did include this in “Delta_Aggregation_Events”
Hire Employee
Contract Contingent Worker
I even added PST as mentioned in the troubleshooting document.
“CustomServerTimeZone” to “PST”
Hello Kranti. Thanks. Getting the worker with Transaction_Date_Range_Data confirms Workday can return it, but the open question is whether your Bruno request used the same transaction criteria and Updated_From / Updated_Through window IIQ generated. I would now capture the exact Get_Workers request IIQ sends during delta aggregation and replay it unchanged in Bruno.
If that exact request does not return the worker, compare the transaction criteria and Updated_From / Updated_Through window. pastEffectiveDateOffset can include updates dated before the last aggregation.
If the exact request does return the worker but IIQ still skips it, I would then focus on connector-side response/XPath processing rather than Workday permissions.
Also, since you added CustomServerTimeZone=PST, check the application Debug page for a legacy Server Time Zone entry. SailPoint notes that if both Server Time Zone and Effective Time Zone exist, Server Time Zone takes precedence. Upgrade Considerations
Also what tag/words should I be looking for in the logs after I run the delta aggregation ?
After running the delta aggregation I searched for “Transaction_Log_Criteria_Data”, “Transaction_Date_Range_Data” , “Updated_From” , I didn’t get any hits.
<< Harish>> check the application Debug page for a legacy Server Time Zone entry.
<> You mean the about page? I checked the timezone is “America/Toronto”
Hello Kranti. Thanks, this helps. Your current loggers may just not be printing the SOAP body. For one test run, I would also enable these classes. The Workday logger casing matters, and these can generate a lot of logging:
These same classes were recommended in an IIQ Workday troubleshooting thread for deeper connector logging. Community thread. After the delta run, search around that task time for Get_Workers, Hire Employee, the worker Employee ID, Updated_From, and Updated_Through.
The key thing I would check is which Get_Workers request actually returns this worker. Future-dated workers can also be picked up during delta, so I would focus on the actual request criteria and response rather than assuming one path. Future Dated Workers.
On the timezone, I meant the application config, not the About page: Debug > Object Browser > Application > your Workday app. Also check the Effective Time Zone on the application UI. If both a legacy Server Time Zone and Effective Time Zone exist, SailPoint says Server Time Zone takes precedence. The America/Toronto value on the About page does not tell us what the Workday application is actually using. Upgrade Considerations
@Krank There are few more things could you please check:
SKIP_FUTURE_TERMINATION_RECORDS: Check if <entry key="SKIP_FUTURE_TERMINATION_RECORDS" value="true"/> exists in your Application XML. If this is set to true, the connector explicitly bypasses future terminations. Ensure it is false (or removed, as false is the default).
Also in your screenshot I don’t see * Terminate Employee or * End Contingent Worker Contract. Could you please check and if missing please add it to Delta_Aggregation_Events entry in your application xml.
Also, can you please add pastEffectiveDataOffset entry in the app xml. Could be wrong, but if you don;t have past offset and due to time zone difference if end/hire date is today, you may miss the record. Here it means connector going to include account updates up to 30 days old in delta aggregation.
<entry key="pastEffectiveDataOffset" value="30"/>
In case this doesn’t work, please enable below logs and also share your app xml.
I did add the loggers, fortunately the issue is resolved by itself. I did not do any configuration/code changes. Maybe the workday team created new hire differently this time. This has happened to me before, enabling logs has resolved issues without any code changes. This is quite strange behavior.
Effective Time Zone was already PST (I think this what they called in debug CustomServerTimeZone)
Thanks for taking time to respond. We only want to ingest future hires. Yes, I did add the pastEffectiveDataOffset in debug and also checked if it is reflecting properly in UI.