# Using Multiple Group Entitlements

For pre-existing Zendesk sources perform the following steps to start using the Multiple Group Entitlements with your current source.

1. Use the [createSchema](<https://developer.sailpoint.com/docs/api/create-source-schema-v-1/>) API to create new group schema for your source. The following is an example for API body content for adding Project Roles to an existing source:

   ```json
   {
   "nativeObjectType": "organization",
   "identityAttribute": "id",
   "displayAttribute": "name",
   "hierarchyAttribute": null,
   "includePermissions": false,
   "features": [],
   "configuration": {},
   "name": "organization",
   "attributes": [
   {
   "name": "id",
   "type": "STRING",
   "schema": null,
   "description": "The ID of the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "name",
   "type": "STRING",
   "schema": null,
   "description": "A unique name for the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "details",
   "type": "STRING",
   "schema": null,
   "description": "Details about the organization, such as the address.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "group_id",
   "type": "STRING",
   "schema": null,
   "description": "New tickets from users in this organization are automatically put in this group.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": true
   },
   {
   "name": "url",
   "type": "STRING",
   "schema": null,
   "description": "The API URL of the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "external_id",
   "type": "STRING",
   "schema": null,
   "description": "A unique external id to associate organizations to an external record.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "created_at",
   "type": "STRING",
   "schema": null,
   "description": "The creation time of the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "updated_at",
   "type": "STRING",
   "schema": null,
   "description": "The last update time of the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "domain_names",
   "type": "STRING",
   "schema": null,
   "description": "An array of domain names associated with this organization.",
   "isMulti": true,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "notes",
   "type": "STRING",
   "schema": null,
   "description": "Notes about the organization.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "shared_tickets",
   "type": "BOOLEAN",
   "schema": null,
   "description": "End users in this organization are able to see each other's tickets.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "shared_comments",
   "type": "BOOLEAN",
   "schema": null,
   "description": "End users in this organization are able to see each other's comments on tickets.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "tags",
   "type": "STRING",
   "schema": null,
   "description": "The tags associated with the organization.",
   "isMulti": true,
   "isEntitlement": false,
   "isGroup": false
   }
   ]
   },
   {
   "nativeObjectType": "customAgentRole",
   "identityAttribute": "id",
   "displayAttribute": "name",
   "hierarchyAttribute": null,
   "includePermissions": false,
   "features": [],
   "configuration": {},
   "name": "customAgentRole",
   "attributes": [
   {
   "name": "id",
   "type": "STRING",
   "schema": null,
   "description": "The ID of the custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "name",
   "type": "STRING",
   "schema": null,
   "description": "The name of the custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "description",
   "type": "STRING",
   "schema": null,
   "description": "The description of the custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "role_type",
   "type": "STRING",
   "schema": null,
   "description": "Type of custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "created_at",
   "type": "STRING",
   "schema": null,
   "description": "The creation time of the custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   },
   {
   "name": "updated_at",
   "type": "STRING",
   "schema": null,
   "description": "The last update time of the custom role.",
   "isMulti": false,
   "isEntitlement": false,
   "isGroup": false
   }
   ]
   }
   ```
2. Update the account schema with the following steps:

   1. Get the account schema using [getSchema](<https://developer.sailpoint.com/docs/api/get-source-schema-v-1/>) API.
   2. Copy the schema to a file and search for the attribute corresponding to the group schema that is added in step 1.
   3. Add/update the below two properties for the attribute found in step 2.b.

      ```text
      "isGroup": true,
      "schema": {"type": "CONNECTOR_SCHEMA","id": "<Schema_ID_From_Step1>","name": "<Name_Of_Schema_Created_In_Step1>"}
      ```
   4. Add the schema modified in step 2.c. to the payload to update the account schema in the source using [replaceSchema](<https://developer.sailpoint.com/docs/api/put-source-schema-v-1/>) API.
