The Workday Real-Time Sync Setup Guide states "By default, Okta waits until the end of the day to take actions on a terminated Worker in Workday. Such actions might include un-assigning them from the Workday app and/or deactivating them. However, if the termination reasons for the Worker match those specified in Immediate Termination Reasons, Okta will take action immediately after receiving the event from Workday."
What does Okta consider "end of the day" to unassign/deactiveate the user?
Also as an FYI to anyone interested, if you set up immediate termination reasons, enter a last day of work as today, but a term date in the future (maybe as part of a severance package), RTS will not immediately deactivate the Okta account. RTS is entirely dependent on term date; last day of work has no impact.
From what I have been able to gather watching event logs, it seems that Workday converts accounts from active employee to terminated employee at 11:59:59pm. This means that Okta will not catch the user as "inactive" until the next scheduled import after 11:59:59pm on the day they're termed.
A fun fact about scheduled imports - if you have it set to once per day, it will launch 24 hours after the last import COMPLETED. This means if you have your first import launch at 5:00pm and it takes 5 mins to complete, tomorrow your import will launch at 5:05pm. You can see how this can get off track in a hurry.
We've only implemented RTS in a sandbox, not in prod, but I did have to work through some things with support (both workday and okta) due to how workday was sending data to okta could parse it out. They've sorted out the integration since then but you may see some slight difference between the documentation screenshots and field names vs what's in workday. Otherwise, the only other gotcha I noticed was the issue I mentioned previously with term date vs last day of work.