# 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](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.
> - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified.

The BMC Remedyforce 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](<https://documentation.sailpoint.com/saas/help/accounts/schema.html>) for more information.

### 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 |

### Default Account Attributes

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

The BMC Remedyforce source returns several attributes falling into two categories. The first are general attributes such as name, city, and state. Additionally, there are entitlement attributes that specify user level access granted to BMC Remedyforce.

> [!IMPORTANT]
>
> The following attribute must be added manually when upgrading from any version below 7.0 to version 8.1.
>
> **PermissionSet**
>
> The Entitlement and Managed System property must be enabled and the PermissionSet assigned to a user. PermissionSet contains settings and permissions which control the users action. The available permission depends on which user license is selected. User can have multiple permission sets.

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

| Attribute Name | Description |
| --- | --- |
| UserName | By default, this attribute is the connector's default display name attribute. It's typically in an email type format. For example, `denise.hunt@demoexample.com` |
| Id | This attribute is the connector default internal Salesforce ID. For example, 005A00000014ySyIXX. This is an Account ID which must not be changed. |
| 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 | The 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. |
| Fax | The user's fax number. |
| IsActive | A flag that indicates if the user is active in Salesforce. **False** indicates disabled. |
| EmailEncodingKey | Encoding that should be used during email communications. |
| ProfileId | The 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 | The 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. |
| UserRoleId | The user role's Id. |
| UserRoleName | The user role's name. |
| PublicGroups | Public groups are the entitlements for the user. |
| UserPermissionsMarketingUser | Maps to the Marketing User Flag. |
| UserPermissionsMobileUser | Maps to the Mobile User Flag. |
| UserPermissionsOfflineUser | Maps to the Offline user Flag. |
| Phone | The user's phone number. |
| ReceivesAdminInfoEmails | Receives the remedyforce.com administrator newsletter. |
| UserType | The type of user. |
| UserPermissionsSFContentUser | Maps to the Sales Anywhere User. |
| ReceivesInfoEmails | Receives the remedyforce.com newsletter. |
| State | The user's state. |
| Title | The user's title. |

### Custom Attributes

Configure the connector to include custom attributes from the source in account aggregation processes. To include additional custom attributes in the account aggregation processes, add the attribute name to the account schema exactly as it is configured in the source schema.

| Attribute Name | Description |
| --- | --- |
| BMCServiceDesk\_\_IsStaffUser\_\_c | Maps to the BMC ServiceDesk Staff. |
| BMCServiceDesk\_\_Remedyforce\_Knowledge\_User\_\_c | Maps to the Remedyforce Knowledge User. |
| BMCServiceDesk\_\_Account\_Name\_\_c | Maps to the Account Name. |
| BMCServiceDesk\_\_remarks\_\_c | Maps to the Remarks. |
| BMCServiceDesk\_\_IsOutOfOffice\_\_c | Maps to Out of Office. |
| BMCServiceDesk\_\_ContactId\_\_c | Maps to Contact Id |
| BMCServiceDesk\_\_Account\_ID\_\_c | Maps to the Account ID. |
| BMCServiceDesk\_\_FPLoginID\_\_c | Maps to the FootPrints Login ID. |
| BMCServiceDesk\_\_Room\_\_c | Maps to the Room attribute. |

The BMC Remedyforce source supports aggregating custom attributes present on the user object. The custom attributes added in the BMC Remedyforce user schema must have `__c` appended to the attribute names created in BMC Remedyforce.

For example, if you added **EMP\_DEPARTMENT** in the user entity on the BMC Remedyforce system, you would add **EMP\_DEPARTMENT\_\_\_c** in the BMC Remedyforce user schema.

The custom attributes can also be updated.

## 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](<https://documentation.sailpoint.com/saas/help/access/entitlements.html>) 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.

### Default Profile Attributes

The BMC Remedyforce 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. These are the attributes returned by group aggregation.

| Attribute Name | Description |
| --- | --- |
| Id | The internal id for this group. For example, `00eA0000000OoP6IAK` |
| Name | The friendly name assigned to the profile. For example, `Force.com - Free User`. It has to be unique as it is used as the identity and display attribute by default. |
| UserType | The profile type, even though the attribute name would indicate a user. |
| Description | The description for the profiles. |
| UserLicense | The user's license. |

#### DirectPermissions

The source reads the permissions assigned to a profile using the `remedyforce.com api`. To get the permissions, the source queries the service to describe the profile object. In the returned attribute, all of the permissions contained by a group are prefixed with Permissions and camel cases of the permission so the right and target are separated by the camel case convention. For example, `PermissionsEditTask` or `PermissionsTransferAnyEntity`. These are broken down into a Permission attribute per prefixed-attribute.
