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 SaaS connector uses the following default correlation and object configurations.

Default Correlation Configuration

Before you aggregate accounts from this source, you can map account attributes with their corresponding identity attributes based on your requirements.

You can customize the correlation configuration. Refer to Assigning Source Accounts to Identities for more information.

When you first create the Salesforce SaaS source, the default correlation mapping is:

Account Attribute Operation Identity Attribute
email Equals Work email

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 PublicGroups
Id Role
Id Profile
Id Account
Id PermissionSet
Id PermissionSetGroup
Id PermissionSetLicense
Id CollaborationGroup
Id ManagedPackage

Default Account Attributes

The Salesforce SaaS 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

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 SaaS connector supports provisioning custom attributes present on the user object.

  • (For attributes present on user object only) The Salesforce SaaS 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 SaaS 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
  • CollaborationGroup
  • Role (includes the role hierarchy)
  • PermissionSet
  • PermissionSetGroup
  • PermissionSetLicense
  • ManagedPackage
  • DelegateGroup

User and group object modification is supported by default in new Salesforce sources. For pre-existing sources, you must add the following group schemas manually using the createSchema API, as described in Updating the Schema.

{
    "type": "PermissionSet",
    "displayAttribute": "Name",
    "identityAttribute": "Id",
    "nativeObjectType": "PermissionSet",
    "attributes": [
        {
            "name": "Id",
            "type": "string",
            "description": "The permission set's ID"
        },
        {
            "name": "Name",
            "type": "string",
            "description": "The internal id for this profile"
        },
        {
            "name": "Label",
            "type": "string",
            "description": "The friendly name assigned to the profile"
        },
        {
            "name": "Description",
            "type": "string",
            "description": "Description for the profiles"
        }
    ]
}
{
    "type": "PermissionSetGroup",
    "displayAttribute": "MasterLabel",
    "identityAttribute": "Id",
    "nativeObjectType": "PermissionSetGroup",
    "attributes": [
        {
            "name": "Id",
            "type": "string",
            "description": "The permission set group's ID"
        },
        {
            "name": "MasterLabel",
            "type": "string",
            "description": "The permission set group's Name"
        },
        {
            "name": "Description",
            "type": "string",
            "description": "A description of the permission set group"
        }
    ]
}
{
    "type": "CollaborationGroup",
    "displayAttribute": "Name",
    "identityAttribute": "Id",
    "nativeObjectType": "CollaborationGroup",
    "attributes": [
        {
            "name": "Id",
            "type": "string",
            "description": "The collaboration group's ID"
        },
        {
            "name": "Name",
            "type": "string",
            "description": "The collaboration group's name"
        },
        {
            "name": "CollaborationType",
            "type": "string",
            "description": "The collaboration group type"
        }
    ]
}
{
    "type": "ManagedPackage",
    "displayAttribute": "NamespacePrefix",
    "identityAttribute": "Id",
    "nativeObjectType": "ManagedPackage",
    "attributes": [
        {
            "name": "Id",
            "type": "string",
            "description": "The managed package's ID"
        },
        {
            "name": "NamespacePrefix",
            "type": "string",
            "description": "The managed package's namespace prefix"
        }
    ]
}

Add the following attributes to the account schema of pre-existing sources:

  • QueueNames - Type: string, multi: true, entitlement: true, managed: true
  • PermissionSet - Type: string, multi: true, entitlement: true, managed: true, schemaObjectType: PermissionSet
  • ManagedPackage - Type: string, multi: true, entitlement: true, managed: true, schemaObjectType: ManagedPackage
  • CollaborationGroup - Type: string, multi: true, entitlement: true, managed: true, schemaObjectType: CollaborationGroup
  • PermissionSetLicense - Type: string, multi: true, entitlement: true, managed: true, schemaObjectType: PermissionSetLicense
  • PermissionSetGroup - Type: string, multi: true, entitlement: true, managed: true, schemaObjectType: PermissionSetGroup

Default Group Attributes

The Salesforce SaaS 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.
DeveloperName The unique name for the Public Group.
DoesIncludeBosses Indicates whether the managers have access (true) or do not have access (false) to records shared with members of the group.
OwnerId The ID of the user who owns the group.

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.

Default DelegateGroup Attributes

The Salesforce SaaS 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
        }
    ]
}

Default Machine Identity Attributes

Machine Identity attributes define the multiple types of machine identities that can be assigned to the managed system's user accounts.

For more information, refer to Machine Identity Security Overview.

When aggregating Machine Identity Attributes as group objects, the following attributes are returned by the group aggregation process:

Attribute Name Description
Id Unique identifier of the agent.
apiFriendlyName Unique, API-safe name for the agent.
MasterLabel User-friendly label shown in the Salesforce UI.
Type Type of agent. Values can be: Bot - classic Einstein Bot, ExternalCopilot - external-facing agent (for example, customer-facing), InternalCopilot - internal agent (for example, employee-facing).
BotUserId ID of the associated Salesforce user account that represents the bot's identity.
CreatedById ID of the user who created the agent.
CreatedDate Creation timestamp.
LastModifiedDate Last update timestamp.
SystemModstamp Read-only timestamp field in Salesforce that tracks the last time a record was modified, either by a user or by an automated system process.
LastModifiedById ID of the user who last updated the agent.
Versions Version details of an agent.
Status Indicates whether the agent is Active or Inactive.
permissionSets Permission sets assigned to the agent via the Agent User.
profile Profiles that can access the agent.

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.