Concat() function not working on Workday SaaS connector

Hello,

We are trying to retrieve an attribute using the concat function in Workday SAAS connector, but it always returns a blank value.

Here is the XPath we are using:

concat(wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:First_Name," ",wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name, " (", wd:Worker_Data/wd:Worker_ID, ")")

On the VA connector (using the ns1 namespace), it works perfectly. However, in the SaaS connector, even a simple test like concat("A","B") does not return any value.

Do you know if the concat function is supported in the Workday SaaS connector? If not, is there any recommended workaround?

I looked into the SailPoint docs on this & wanted to share what I found, in case it helps narrow things down.

So the Workday SaaS connector seems to be treating the XPath mapping as a node lookup, not as a place to actually run XPath functions. It resolves the matched XML node and reads the text value out of it. concat() doesnt return a node, it returns a string, so the connector has nothing to read and you get blank back. The fact that even concat("A","B") comes back blank is what made me lean this way honestly. If it was a bad path or namespace problem the static one would still resolve to “AB”. Looks more like connector behavior than anything wrong on your side.

Couple things in the docs that backed this up for me. The SailPoint Workday SaaS XPath mapping page only ever shows node-path style mappings, no function expressions anywhere. And concat itself is documented as a separate ISC transform operation, not as something the connector runs inline on the XPath.

Also wd: is right for the SaaS connector btw. The ns1: you see floating around in older docs is from the VA based Workday connector, wouldnt mix those.

So what i would suggest, pull the three values separately and do the concat on the ISC side after aggregation. Example source schema attributes:

FIRST_NAME  -> wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:First_Name
LAST_NAME   -> wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name
WORKER_ID   -> wd:Worker_Data/wd:Worker_ID

Then build the combined value with a concat transform. Replace sourceName with the actual Workday source name in your tenant:

{
  "name": "Workday Display Name With Worker ID",
  "type": "concat",
  "attributes": {
    "values": [
      {
        "type": "accountAttribute",
        "attributes": {
          "sourceName": "Workday",
          "attributeName": "FIRST_NAME"
        }
      },
      " ",
      {
        "type": "accountAttribute",
        "attributes": {
          "sourceName": "Workday",
          "attributeName": "LAST_NAME"
        }
      },
      " (",
      {
        "type": "accountAttribute",
        "attributes": {
          "sourceName": "Workday",
          "attributeName": "WORKER_ID"
        }
      },
      ")"
    ]
  }
}

If the combined value really needs to live on the Workday account record itself, the cleaner path would be to build it in Workday as a calculated field, expose it through the integration, and then map that single field in the SaaS connector. The connector handles that fine because it is reading a real XML node with text content.

I would probably not keep testing different concat() syntax variants here. Since even static concat("A","B") returns blank, it really does look like a connector-side limitation.

Hi @ragavi87688 Have you tried prefixing concat with the fn: namespace (ie fn:concat). I haven’t tried myself, but the difference in default namespaces between va and saas got me thinking.

Hi,

Interesting observation.

From what I’ve seen, the Workday SaaS connector can be a bit limited compared to the VA-based connector when it comes to XPath functions. It’s possible that functions like concat() are not fully supported or evaluated in the same way in the SaaS model.

The fact that even concat("A","B") returns blank does suggest it’s more of a connector limitation rather than an issue with your XPath.

As a workaround, you could consider:

  • Mapping individual attributes (First Name, Last Name, Worker_ID) separately and combining them later using a transform in ISC
  • Or handling the concatenation outside the connector logic if possible

Thanks!

Hi, I’ve tried using the namespace “fn,” but I still get a blank space. I have open a SP ticket to check on that.

Just to inform you that SailPoint confirmed that this function is not supported by the Workday SaaS connector.