Google SaaS keywords attribute not set

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

  1. 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.

  2. 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.

  3. 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!!!