Skip to content

Schema Reference

The application schema is used to configure the objects returned from a connector.

Note

  • The Account Schema tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as Entitlement or Multi-Valued. Refer to Managing Source Account Schemas for more information.

  • The schema attributes that are not present by default must be defined as strings if not specified.

The Salesforce connector uses the following default correlation and object configurations.

Default Account Schema

Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location.

The set of account attributes each source stores and how they're organized is known as the account's schema. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to Managing Source Account Schemas for more information.

Updating the Schema

For pre-existing sources, perform the following steps to start using new attributes with your source. Refer to the appropriate attribute section for detailed information about updating the schema.

  1. Use the createSchema API to create a new group schema for your source.
  2. Update the account schema with the following steps:
    1. Get the account schema using the getSchema API.
    2. Copy the schema to a file and search for the attribute corresponding to the group schema you created earlier.
    3. Add and update the properties for the attribute you found.
    4. Add the modified schema to the payload to update the account schema in the source using the replaceSchema API.

Default Account ID

SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as account IDs.

Caution

Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts.

To resolve issues caused by changing account IDs, reconfigure them to their default values.

The following table lists the default account IDs for this connector:

Account ID Schema Object Type
Id Account
Id Group
Name PermissionSet
Id PermissionSetGroup
Id Role
Id PublicGroup
Id PermissionSetLicense
Id ManagedPackage

Default Account Attributes

The Salesforce connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified.

Note

Only account attributes in the source schema are processed by the connector.

Attribute Name Description
UserName The account user's display name, typically in an email type format. For example, denise.hunt@demoexample.com
Id The internal Salesforce ID number for the account. The format is as follows: 005A00000014ySyIXX
Name The user's full name
FirstName The user's first name
LastName The user's last name
Alias The user's assigned alias
City The user's city
CommunityNickname Display Names for the user's online communities
CallCenterId The user's call center
CompanyName The user's company name
Country The user's country
Department The user's department
Email The user's Email address
Division The user's division
EmployeeNumber The user's employee number
Extension The user's telephone extension
Street Name of the street
Fax The user's fax number
IsActive Indicates if the user account is active in Salesforce. When set to false, the user account is disabled
EmailEncodingKey Encoding that should be used during email communications
ProfileId ID of the profile assigned to a user. Profiles contain settings and permissions, which control what users can do. The available profiles depend on which user license is selected
ProfileName Name of the profile assigned to a user. Profiles contain settings and permissions, which control what users can do. The available profiles depend on which user license is selected
Role The role assigned to a user
PublicGroups Public groups are the entitlements for a user
QueueNames The queues assigned to the user
UserPermissionsMarketingUser Maps to the Marketing user flag
UserPermissionsOfflineUser Maps to the Offline user flag
Phone The user's phone number
ReceivesAdminInfoEmails Enable to receive the salesforce.com administrator newsletter
UserType Type of the user. This field is read-only.
IsFrozen The user's frozen status.
UserPermissionsSFContentUser Maps to Sales Anywhere User
ReceivesInfoEmails Enable to receive the salesforce.com newsletter
State The user's state
Title The user's title
ManagerId The user's manager' ID
PermissionSet The PermissionSet assigned to a user
ManagedPackage The managed package assigned to a user
CollaborationGroup The collaboration group ID assigned to a user
PermissionSetGroup The PermissionSetGroup assigned to a user
PermissionSetLicense The PermissionSetLicense assigned to a user
FederationIdentifier A Federation ID is an identifier that is unique within a Salesforce Organization
UserPermissionsMobileUser Maps to the Mobile user flag. This attribute isn't supported with Salesforce API version 59.0.
IsPortalEnabled Enabled if the user is a Portal User. This field is read-only.
IsPartner Enabled if the user is a Partner User. This field is read-only.
UserLicense The user's license
TimeZoneSidKey The user's timezone, it uses a display name defined by Salesforce. Only a few timezones are defined in the policy drop down and this will need to be customized for each deployment. Defaults to America/Los_Angeles.
LocaleSidKey The user's locale. Defaults to UTF-8.
LanguageLocaleKey The language locale key. There are several selections to choose from in from the web interface. The locale keys are customizable. Defaults to en_US.

Note

The ProfileId and UserRoleId fields are required in the schema to aggregate the ProfileName and userRoleName respectively. If the ProfileId or UserRoleId is removed then profile name and user role name will not be fetched.

Additional Account Attributes for the Salesforce Connector

Note

The Salesforce connector supports provisioning custom attributes present on the user object.

  • (For attributes present on user object only) The Salesforce connector enables you to aggregate and update custom attributes present on user objects. The custom attributes added in the Salesforce user schema must have __c appended to the attribute names created in Salesforce.

    For example, if you added EMP_DEPARTMENT in the user entity on the Salesforce system, you should also add EMP_DEPARTMENT__c in the Salesforce user schema.

    Note

    Custom attributes can also be updated.

  • Support for custom attributes not present in Salesforce system but are required internally in SailPoint, such as for a configured correlation rule can be acknowledged if the attribute is prepended with _#. For example:

    _#Emp_company_history

Default Entitlement Attributes

Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to Managing Entitlements for more information.

Caution

Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations.

User and Group Object Modification

The Salesforce connector supports user object modification while enabling and disabling accounts. For enable or disable account operations, you can modify other attributes of the account that are part of the user object.

The connector supports multiple group objects and entitlements by having the group object schemas defined and aggregated. The following are the group object schemas:

  • PublicGroups
  • QueueNames
  • Role (includes the role hierarchy)
  • PermissionSet
  • PermissionSetGroup
  • PermissionSetLicense
  • ManagedPackage
  • DelegateGroup

User and group object modification is supported by default in new Salesforce sources. You must add the objects manually for pre-existing sources.

Important

  • You must manually add multi-group object schemas.
  • You must remove the UserRoleName and UserRoleId attributes and add an attribute named Role into the account schema.
  • Adding the Role entitlement attribute into the account schema adds duplicate Role entitlements. This can be helpful if you can't remove the UserRoleName attribute from the account schema.

Note the following when adding or modifying a group object:

  • Use the API to create a new group schema.
  • Use the POST method.
  • Use the beta/sources/<source-id>/schemas URI.

The following JSON payload example adds the schema for the PublicGroups group object:

{
    "name": "PublicGroups",
    "nativeObjectType": "PublicGroups",
    "identityAttribute": "Id",
    "displayAttribute": "Name",
    "hierarchyAttribute": null,
    "includePermissions": false,
    "features": [],
    "configuration": {},
    "attributes": [
        {
            "name": "Id",
            "type": "STRING",
            "schema": null,
            "description": "PublicGroups Id.",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "Name",
            "type": "STRING",
            "schema": null,
            "description": "PublicGroups name.",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        }
    ]
}

The example adds the following schema for the PublicGroups group object:

<Schema displayAttribute="Name" identityAttribute="Id" nativeObjectType="PublicGroups" objectType="PublicGroups">
    <AttributeDefinition name="Id" type="string">
        <Description>PublicGroups Id.</Description>
    </AttributeDefinition>
    <AttributeDefinition name="Name" type="string">
        <Description>PublicGroups name.</Description>
    </AttributeDefinition>
</Schema>

Default Group Attributes

The Salesforce connector also supports groups. The following attributes must be configured on the managed system and in the SailPoint source schema to manage groups.

Profiles are aggregated during account-group aggregation. The following are the attributes returned by the group aggregation process.

Attribute Name Description
Id The internal Salesforce ID for the group. For example: 00eA0000000OoP6IAK
Name The friendly name assigned to the profile. For example, Force.com - Free User
UserType This is the profile's type.
Description The description for the profile.

Default Role Attributes

When aggregating group attributes as role objects, the following attributes are returned by the role aggregation process:

Attribute Name Description
Id The role's unique identifier.
Name The role name.
CaseAccessForAccountOwner The case access level for the account owner.
ContactAccessForAccountOwner The contact access level for the account owner.
OpportunityAccessForAccountOwner The opportunity access level for the account owner.
ParentRoleId Unique identifier for the role's parent role.

Aggregating group attributes as role objects enables the connector to delete a role associated with a user provisioning and assign a new role to a user during provisioning.

New sources support the Role object with bidirectional role hierarchy at one level by default. For an existing source, update the Role schema with the hierarchyAttribute set to ParentRoleId and the attributes listed in the table above to get support for the role hierarchy:

{
    "hierarchyAttribute": "ParentRoleId",
    "attributes": [
        {
            "name": "CaseAccessForAccountOwner",
            "type": "STRING",
            "schema": null,
            "description": "The case access level for the account owner",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "ContactAccessForAccountOwner",
            "type": "STRING",
            "schema": null,
            "description": "The contact access level for the account owner",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "OpportunityAccessForAccountOwner",
            "type": "STRING",
            "schema": null,
            "description": "The opportunity access level for the account owner",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "ParentRoleId",
            "type": "STRING",
            "schema": null,
            "description": "Unique identifier for role's parent role",
            "isMulti": true,
            "isEntitlement": false,
            "isGroup": false
        }
    ]
}

Then use the REST API for Entitlement Aggregation and add disableOptimization=true in the payload to trigger a full entitlement aggregation. For example:

https://{tenant}.api.identitynow.com/beta/entitlements/aggregate/sources/:id?disableOptimization=true

Default PublicGroup Attributes

When aggregating PublicGroup attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id The Public Group's identifier.
Name The Public Group's name.

Aggregating PublicGroup as a group object enables the connector to verify aggregated Public Groups not currently associated with a user, and assign any new Public Group to users during provisioning.

Default PermissionSet Attributes

When aggregating PermissionSet attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id The permission set's ID. This is an Account ID which must not be changed.
Name The internal ID for this profile.
Label The friendly name assigned to the profile.
Description The description for the profiles.

Aggregating PermissionSet as a group object enables the connector to verify aggregated PermissionSets not currently associated with a user, and assign any new PermissionSet to users during provisioning.

Default PermissionSetGroup Attributes

When aggregating PermissionSetGroup attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id The permission set group's ID. This is an Account ID which must not be changed.
MasterLabel The permission set group's name.
Description A description of the permission set group.

Aggregating PermissionSetGroup as a group object enables the connector to verify aggregated PermissionSetGroups not currently associated with a user, and assign any new PermissionSetGroup to users during provisioning.

Default PermissionSetLicense Attributes

When aggregating PermissionSetLicense attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id The permission set license's ID. This is an Account ID which must not be changed.
MasterLabel The permission set license's master label.

Aggregating PermissionSetLicense as a group object enables the connector to verify aggregated PermissionSetLicenses not currently associated with a user, and assign any new PermissionSetLicense to users during provisioning.

Default ManagedPackage Attributes

While aggregating ManagedPackage attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id The managed package's ID.
NamespacePrefix The managed package's namespace prefix.

Aggregating ManagedPackage as a group object enables the connector to verify aggregated managed packages not currently associated with a user, and assign any new managed package to users during provisioning.

Default CollaborationGroup Attributes

While aggregating CollaborationGroup attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id Collaboration Group Id.
Name Collaboration Group name.
CollaborationType Collaboration Group Type.

Aggregating CollaborationGroup as a group object enables the connector to verify aggregated collaboration groups not currently associated with a user, and assign any new collaboration group to users during provisioning.

For pre-existing sources, update the Account schema with a CollaborationGroup schema attribute to start managing Collaboration Groups in account aggregation, then add the schema above using the Create a new Schema on the Specified Source process. Refer to Updating the Schema for more information.

Add the following schema attribute to the account schema:

{
    "name": "CollaborationGroup",
    "type": "STRING",
    "schema": {
        "type": "CONNECTOR_SCHEMA",
        "id": <Add the Schema ID for the Collaboration Group Object>,
        "name": "CollaborationGroup"
    },
    "description": null,
    "isMulti": true,
    "isEntitlement": true,
    "isGroup": true
}

Add the following JSON to create the group schema:

{
    "name": "CollaborationGroup",
    "nativeObjectType": "CollaborationGroup",
    "identityAttribute": "Id",
    "displayAttribute": "Name",
    "hierarchyAttribute": null,
    "includePermissions": false,
    "features": [],
    "configuration": {},
    "attributes": [
        {
            "name": "Id",
            "type": "STRING",
            "schema": null,
            "description": "Collaboration Group Id.",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "Name",
            "type": "STRING",
            "schema": null,
            "description": "Collaboration Group name.",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "CollaborationType",
            "type": "STRING",
            "schema": null,
            "description": "Collaboration Group Type.",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        }
    ]
}

Default DelegateGroup Attributes

The Salesforce connector supports the Salesforce DelegateGroup object.

Attribute Name Description
Id The Delegate Group's unique identifier.
Name The developer group's unique label.
DeveloperName The unique developer name for the delegate group.
IsLoginAccessEnabled Indicates if login access is enabled for the developer group.

Aggregating DelegateGroup as a group object enables the connector to verify aggregated Delegate Groups not currently associated with a user, and assign any new Delegate Group to users during provisioning.

New sources have the DelegateGroup account schema attribute by default. For existing sources, add the following attribute to your account schema to manage DelegateGroup objects in account aggregation:

{
    "name": "DelegateGroup",
    "type": "STRING",
    "schema": {
        "type": "CONNECTOR_SCHEMA",
        "id": <Add the Schema ID for the Delegate Group Object>,
        "name": "DelegateGroup"
    },
    "description": "The ID of the Delegate Group assigned to the user",
    "isMulti": true,
    "isEntitlement": true,
    "isGroup": true
}

To aggregate DelegateGroup as a group object, add the following JSON to the group schema via the IDN REST API to add the new schema to an existing source:

{
    "name": "DelegateGroup",
    "nativeObjectType": "DelegateGroup",
    "identityAttribute": "Id",
    "displayAttribute": "Name",
    "hierarchyAttribute": null,
    "includePermissions": false,
    "features": [],
    "configuration": {},
    "attributes": [
        {
            "name": "Id",
            "type": "STRING",
            "schema": null,
            "description": "The Delegate Group's unique identifier",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "Name",
            "type": "STRING",
            "schema": null,
            "description": "The developer group's unique label",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "DeveloperName",
            "type": "STRING",
            "schema": null,
            "description": "The unique developer name for the delegate group",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        },
        {
            "name": "IsLoginAccessEnabled",
            "type": "BOOLEAN",
            "schema": null,
            "description": "Indicates if login access is enabled for the developer group",
            "isMulti": false,
            "isEntitlement": false,
            "isGroup": false
        }
    ]
}

Documentation Feedback

Feedback is provided as an informational resource only and does not form part of SailPoint’s official product documentation. SailPoint does not warrant or make any guarantees about the feedback (including without limitation as to its accuracy, relevance, or reliability). All feedback is subject to the terms set forth at https://developer.sailpoint.com/discuss/tos.