I have tried to set the attribute “keywords” on a user in Google SaaS by putting the following value:
{
"type": "custom"
,"customType": "guid value"
,"value":"guid value"
}
But it seems it’s not updating the attribute on user in Google even though it’s reporting “commited”. I noticed that if i do the same in “Google PlayGround” it’s also saying OK, but not updating the attribute using
{"keywords":
{"type": "custom", "customType": "guid value","value":"guid value"}
}
#Returns OK but no change
instead of include the multivalue statement [ ] :
{
"keywords":
[
{"type": "custom", "customType": "guid value","value":"guid value"}
]
}
#Updates the user successfully
Is this a bug in ISC because with attribute organization this works witch has the same structure, i asume the ISC Google connector is adding the [ ] correctly on organization and not on keywords
@ulflindstrom -
Thanks for the detailed input—this is a great catch and very likely points to a subtle but critical behavior difference in how multi-valued attributes like keywords
are handled by the Google Workspace API and how the SailPoint ISC Google connector structures the outgoing payload.
Root Cause
Google Workspace APIs expect certain attributes, including keywords
, to always be passed as arrays, even when you’re only supplying a single object. If not, the update will be silently ignored.
You’ve observed correctly that:
{
"keywords":
{
"type": "custom",
"customType": "guid value",
"value":"guid value"
}
}
Returns 200 OK but does not update the field.
Whereas:
{
"keywords":
[
{
"type": "custom",
"customType": "guid value",
"value":"guid value"
}
]
}
Returns 200 OK and updates the user field correctly.
Implication for SailPoint IdentityNow (ISC)
This behavior indicates that SailPoint ISC’s Google SaaS connector may not be wrapping the keywords
attribute in an array ([]
) as required—at least in cases where only a single value is being provisioned.
Yet, for organization
, it likely uses the correct [ ]
format, which is why it works as expected.
Recommended Actions
-
Check Connector Configuration:
Ensure that keywords
is explicitly marked as a multi-valued attribute in your connector schema in ISC. Sometimes SailPoint may not auto-detect the multi-value nature unless declared.
-
Use a Custom Provisioning Rule (if needed):
You can create a Before Provisioning Rule or Transform in ISC to enforce the structure:
keywords: [
{
"type": "custom",
"customType": "guid value",
"value": "guid value"
}
]
This can be done via scripting to wrap it into a list if it isn’t already.
-
Raise to SailPoint Support:
If you confirm that other multi-valued fields work correctly but keywords
fails only in single-entry cases, it’s likely a connector-side bug or schema oversight. SailPoint support should be informed so they can patch this in the connector logic.
Workaround Tip
Until a fix is applied:
- Always send
keywords
as an array, even if it’s a single item.
- If using provisioning policies or transforms, add logic to wrap the item in
[]
if it’s not already.
Cheers!!!