Workday Accounts SaaS Connector Custom Attributes?

Hello,

Scenario:

We are working on implementing these 2 Workday connectors into our tenant. We use the “Workday SaaS” connector to aggregate HR Source of Authority records. We use the “Workday Accounts SaaS” to manage the user objects and user levels in Workday from SailPoint.
image

Problem:

The “Workday SaaS” connector schema is much easier to configure since it uses the Get_Workers Workday APIs. We can fetch Custom IDs, Custom Attributes via field override, and general attributes from the XPath. A very important detail for us, is that we also pull in a custom attribute using the Workday field override service that simply adds the prefix ‘WKD’ to the beginning of the FILENUMBER. We use this prefixed FILENUMBER as the Account Name in SailPoint to avoid false correlations from the default correlation since we have other Sources of Authority with overlapping IDs. We could also do this via a SailPoint customizer, since Workday is a source that supports that.
image

The “Workday Accounts SaaS” documentation is much less detailed. I am not exactly sure what API it uses, and I am not sure what information it can fetch. The “Workday Accounts SaaS” connector does not support customizers, so I cannot add the 'WKD" prefix to the FILENUMBER on these accounts via SailPoint. These are very likely to incorrectly correlate based on default correlation if we cannot fetch that prefixed FILENUMBER.

My Main Question:

Is there a way to configure the “Workday Accounts SaaS” schema to also include that ‘PrefixedFileNumber__c’ in this connector? Are there any other possible solutions to make sure the accounts include that attribute somehow?
If not, are there any ways that I have not yet thought of to add that prefix on the SailPoint side, since this connector doesn’t support customizers and it is a SaaS source?

Thank you!

Hi @seth_hexum Un-tested, provided as is:

I haven’t tried it, and I’m not sure ISC supports it, but there is the XPath concat() function. So:

If your XPath for FILENUMBER is wd:Worker_Data/wd:Worker_ID
You could try wd:Worker_Data/concat("WKD",wd:Worker_ID)

@j_place This is a great suggestion. I did not know that you could use concat within the configuration.

Oddly enough, this seems to work for the “Workday Accounts SaaS” connector, but not the “Workday SaaS” one. Here is what I tried:

Input (FILENUMBER): 121748
Expected Output (PREFIXED_FILENUMBER): WKD121748

For “Workday Accounts SaaS”, I used this as the XPath Schema Mapping:

concat('WKD', ns1:Workday_Account_Reference/ns1:ID[@ns1:type='Employee_ID'] | ns1:Workday_Account_Reference/ns1:ID[@ns1:type='Contingent_Worker_ID'])

As you can see from this screenshot, it worked.
image

For “Workday SaaS”, I tried multiple different XPath Mappings with ZERO success:

Using the same format that worked above:

concat('WKD', wd:Worker_Data/wd:Worker_ID)

Using the format you suggested:

wd:Worker_Data/concat("WKD",wd:Worker_ID)

This seems really strange that it would work for one and not the other. Do you have any ideas on how to get it to work for the Workday SaaS connector?

Hi Seth - It’s probably using a different code base in the backend (I note one uses ns1: and one wd: for the namespace). Glad it got the accounts connector working for you, though.

Hi @seth_hexum,

Please try the below XPath. I tested it with the VA‑based Workday connector using the path shown below, and it worked successfully for me.

image

image

We are using the SaaS connector which uses the ‘wd’ namespace instead of the ‘ns1’ namespace that the VA connector uses. I think Jeremy is correct that they use different code bases, which would explain why the Accounts connector still uses the ns1 namespace and it works.

I would guess you are correct. I did find it odd that the Accounts SaaS connector still uses the ‘ns1’ namespace. It is a bummer I can’t use the same logic in the main connector, but luckily I can use a custom attribute that they created instead. I was just hoping to limit the number of those we have to create.

Thanks again! I will mark your original answer as the solution since that solved my problem!

Hi Seth

Just a couple of other comments, if I may. As to your question about including PrefixedFileNumber__c on the accounts connector - you wouldn’t be able to access the same custom field as the Custom Field Override Service attaches Custom Fields to Business Objects - a Worker object in this case, not an Account object.

Also, thinking that the wd: namespace should (I assume) be the later code base, so may be XPath 3.0, which opens up the possibility of:

wd:Worker_Data/("WKD" || wd:Worker_ID)

as a shorthand for concat. Maybe worth a try?

Also, maybe

wd:Worker_Data/string-join(("WKD",wd:Worker_ID),"")

That is a good thought. I gave your 2 examples a try with no luck. I also tried some other variations with no luck. I still cannot seem to get anything to work with the wd namespace. Here are a few I also tried.

'WKD' || wd:Worker_Data/wd:Worker_ID
'WKD' || string(wd:Worker_Data/wd:Worker_ID)
concat('WKD', string(wd:Worker_Data/wd:Worker_ID))
concat('WKD', data(wd:Worker_Data/wd:Worker_ID))

Do the examples you’ve tried just return blank?

One more, and then I give up:

wd:Worker_Data/concat("WKD",wd:Worker_ID/text())

Still no luck. And yes, it just returns blank for all the examples I have tried.