# Guidance needed to provision complex attributes (e.g., externalIds) to Google Workspace via SailPoint ISC connector

**URL:** <https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549>\
**Category:** SHF Discussion and Questions\
**Tags:** provisioning, identity-security-cloud\
**Created:** [December 1, 2025, 3:27pm UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549 "2025-12-01T15:27:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![khalilgahbiche](https://avatars.discourse-cdn.com/v4/letter/k/6de8d8/32.png) [@khalilgahbiche](https://developer.sailpoint.com/discuss/u/khalilgahbiche)\
**Post date:** [December 1, 2025, 3:27pm UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549/1 "2025-12-01T15:27:17Z")

</div>

Hey Sailors,

I’m encountering the same situation as that described [here](https://developer.sailpoint.com/discuss/t/google-workspace-provision-externalids/19963) and I’d like to know if anyone can share how to configure the “Account Schema” to manage those complex attributes.

P.S. I’ve also checked the official documentation [here](https://documentation.sailpoint.com/connectors/g_suite/help/integrating_g_suite/complex_provisioning_pol.html) but as no examples are provided, I couldn’t work it out.

Thank you for your help. 🙏

Link1: [https://developer.sailpoint.com/discuss/t/google-workspace-provision-externalids/19963](https://developer.sailpoint.com/discuss/t/google-workspace-provision-externalids/19963)

Link2: [https://documentation.sailpoint.com/connectors/g\_suite/help/integrating\_g\_suite/complex\_provisioning\_pol.html](https://documentation.sailpoint.com/connectors/g_suite/help/integrating_g_suite/complex_provisioning_pol.html)

---

<div class="post-metadata">

**Author:** ![khalilgahbiche](https://avatars.discourse-cdn.com/v4/letter/k/6de8d8/32.png) [@khalilgahbiche](https://developer.sailpoint.com/discuss/u/khalilgahbiche)\
**Post date:** [December 4, 2025, 9:38am UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549/2 "2025-12-04T09:38:51Z")

</div>

Hey peers 👋 ,

Don’t hesitate to ask any question if you need more information.

Thanks 🙏

---

<div class="post-metadata">

**Author:** ![ts\_fpatterson](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/ts_fpatterson/32/26704_2.png) [@ts\_fpatterson](https://developer.sailpoint.com/discuss/u/ts_fpatterson)\
**Post date:** [December 15, 2025, 2:03pm UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549/3 "2025-12-15T14:03:20Z")

</div>

From my understanding, the connector expects externalIds to be a list of strings, where each string is a JSON object.

Navigate to: Admin \> Connections \> Sources \> [Your Google Workspace Source] \> Account Schema.

Add New Attribute (or edit externalIds if it exists):

Name: externalIds (Must match the Google API field name exactly).

Type: string

Multi-Valued: Yes

Entitlement: No (unless you specifically want to govern it).

In your “Create” provisioning policy, you must generate the value as a JSON String.

Attribute: externalIds

Value Calculation: You need to construct the JSON string. You can use a Velocity Template or a Rule to build this string dynamically.

Example JSON Format (Single Value): If you are assigning one ID, the output of your transform/script for this attribute should be a single string looking like this:

JSON

{“value”: “1001”, “type”: “organization”}  
Example JSON Format (Multiple Values): If the user has multiple external IDs, your transform should return a List of strings.

String 1: {“value”: “1001”, “type”: “organization”}

String 2: {“value”: “5678”, “type”: “account”}

Provisioning Policy Logic (Velocity Example):

```auto
#if($identity.employeeNumber)
{
  "value": "$identity.employeeNumber",
  "type": "organization"
}
#end

```

When the attribute is marked as Multi-Valued in the schema, the SailPoint connector automatically knows to wrap the values you provide into a JSON Array ([…]) when sending the request to Google’s API. If you do not mark it as multi-valued, the connector may try to send it as a single string object or fail to format the API request correctly, leading to the issues described in the forum posts.

I haven’t had the chance to test this as I don’t have a google workspace environment currently.

---

<div class="post-metadata">

**Author:** ![khalilgahbiche](https://avatars.discourse-cdn.com/v4/letter/k/6de8d8/32.png) [@khalilgahbiche](https://developer.sailpoint.com/discuss/u/khalilgahbiche)\
**Post date:** [December 15, 2025, 9:16pm UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549/4 "2025-12-15T21:16:53Z")

</div>

Hey @ts_fpatterson ,

Thank you for your detailed response. I’ll try it out and let you knwo asap.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/sailpoint/original/2X/f/f2136700ed5e3703e0b85e02f6be799dacca7735.png) [@system](https://developer.sailpoint.com/discuss/u/system)\
**Post date:** [February 13, 2026, 9:17pm UTC](https://developer.sailpoint.com/discuss/t/guidance-needed-to-provision-complex-attributes-e-g-externalids-to-google-workspace-via-sailpoint-isc-connector/189549/5 "2026-02-13T21:17:43Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
