# Custom User Attributes

**This article explains what Custom User Attributes are and how to create them.**

## What are they, and how do they work?

Custom User Attributes include additional information in your Happeo User Profile besides the standard Google, Okta, or Entra ID Directory Fields.

This additional information allows for much richer profiles (e.g. details about interests, skill sets, preferred pronouns, etc.) and faster searches.

Furthermore, only public attributes will be displayed on Happeo, while attributes only visible to administrators will not be shown.

### How often are custom attributes synced?

The synchronization happens automatically every 24 hours.

## How to create a custom attribute in Google

Below, you can find [a tutorial](https://support.google.com/a/answer/6208725?hl=en#zippy=%2Cadd-a-new-custom-attribute) from Google:

1. You can create a custom user attributes schema [here](https://admin.google.com/u/1/ac/users) by clicking **Manage custom attributes**  
2. Select **Add custom attribute**  
3. Add fields into the created schema. These fields should make the organization's visible fields available only for sync and visible in Happeo  
   1. The info type should be set to **Text**  
   2. The visibility should be set to **Visible to organization**  
   3. The number of values should be set to **Single** or **Multiple value**  
4. By completing the previous steps, a user or administrator is then able to edit newly created fields  
   1. For instance, if you navigate back [here](https://admin.google.com/u/1/ac/users)  
   2. Click your **user profile**  
   3. Click the **downward arrow** on the right side of **User information**  
   4. And scroll down until you see your recently created custom attribute  
   5. You can click the pencil / edit symbol on the right side of it (it will appear once you hover over it)  
   6. And you can write whatever you like in the field  
5. After Happeo synchronizes with Google Workspace, the Custom Attributes become searchable and available on the user’s profile. Moreover, the name of the schema becomes the section title

## How to create a custom attribute in Okta

From the **Dashboard** in Okta:

1. Click **Directory** from the navigation menu and **Profile editor**  
2. From the **Users** tab, select the **Happeo App** (by clicking the application name)

3. Then, click **Add attribute**

You can find the following **settings** below:

- Data type – Set to **string**  
- Display name – The label you wish to display (e.g. skills, hobbies, favorite music genre, etc.)  
- Variable name – This is used to refer to the attribute in profile mappings and expressions (e.g. skills, hobbies, etc.)  
- External namespace – Fill in as: **urn:ietf:params:scim:schemas:extension:happeo:2.0:User**  
- Description – A description of the label you are displaying (e.g. the user’s skills)  
- Enum – Needs to be checked if there are only predefined fields that users can choose from (e.g. Monday, Tuesday….Sunday)  
- Attribute length – The customizable length of an attribute  
- Attribute required – Needs to be checked when creating a **user** or a **group**  
- Scope – Check the box **User personal**

After filling in the necessary information, you can click **Save**.

On the **Profile editor** page, you can scroll down the **Attributes** list to find the new attribute you created.

To add the attribute to your Happeo environment, click **Mappings** under the **Attributes** tab.

Then, you can:

1. Click **Okta User to Happeo**  
2. Scroll down and click **Choose an attribute or enter an expression**  
3. You can then add the mapping related to the attribute you created  
4. Make sure to preview the mapping to ensure that it maps properly. You can do this by entering an Okta user in the **Preview** field at the bottom of the page

5. Once everything looks good, you can click on **Save Mappings**

If users are **already assigned to the Happeo app**, we should receive an update from Okta as soon as you add values to the new attribute.

If they are **not assigned to the app**, we will get the whole user profile together with the Custom Attribute when this is synched in Happeo.

Once the users have been updated, you can find the new attributes in the User Profile under the Additional Info tab.

## How to create a custom attribute in Entra ID

First, **open your Entra ID Active Directory portal**.

If your custom user attribute is not yet present in the User profile, you can:

01. Go to **External Identities**  
02. Click **Custom User Attributes**  
03. Click **Add**  
04. Navigate to **Enterprise Applications**  
05. Open the **Provisioning tab** of the **Happeo Enterprise Application**  
06. Under **Mappings**, select the object (user or group) for which you'd like to add a custom attribute  
07. At the bottom of the page, select **Show advanced options**  
08. Select **Edit attribute list for AppName**  
09. At the bottom of the attribute list, enter information about the custom attribute in the fields provided  
10. Create **a new custom attribute** with Happeo attributes naming:
    1. urn:ietf:params:scim:schemas:extension:happeo:2.0:User:Custom\_Attribute  
    2. Column value for type will remain as **String**  
11. **Save** your changes

Then from there, you can:

1. Click **Add new mapping** at the bottom-left of the page for users  
2. Select the **source attribute**  
3. Select the **newly created target attribute**  
    1. urn:ietf:params:scim:schemas:extension:happeo:2.0:User:Custom\_Attribute  
4. Click **OK**  
5. **Save** your changes

Once the sync has been **forced** from the Entra ID provisioning, you can find the new attributes under the **Additional Info** tab in the User Profile.

## Filtering using Google’s custom attributes

Google's custom attributes can be used to filter searches in the People Directory, making it easier to find the right people.

### Manage the visibility of custom attribute filters

As an Admin, you can manage which custom attributes appear as filters when searching for people in the People Directory. To do so, you can:

1. Go to the **Admin Settings** (by clicking your avatar at the top right corner of the page and selecting **Admin Settings**)  
2. Click on **People directory**  
3. Select **Filters**  
4. **Toggle** the custom attributes you want visible as filters   
    1. You will receive a pop-up message on the edge of your screen confirming that the filters have been successfully changed  
2. You can also reset the custom attribute visibility settings by clicking **Reset to default** at the top-right of the list

### Use custom attribute filters

In the People Directory, you can find the toggled custom attributes below the People Directory search bar. When clicking on a custom attribute, you can:

- Select a filter by checking one or more of the boxes  
- Hover over the ‘i’ icon for more information about the attribute

## Troubleshooting

### API Scope Issue for Custom User Attributes

If your custom user attributes aren’t being updated after editing the custom attribute itself, please ensure that the API scope is set up correctly in Google Workspace.

To do so, **you must first**:

Determine the sync account designated for your Happeo environment. You can find this information by clicking on [this provided link](https://app.happeo.com/admin-v2/users/googleWorkspace) and identifying the user assigned as the Google Admin Account.

Then, you can:

1. Go to [admin.google.com](http://admin.google.com/) using your Google Super Admin account  
2. From the left-hand sidebar, click **Directory** and then **Users**  
3. Click on the **Google sync account** designated for your Happeo environment  
4. Scroll down to **Admin roles and privileges** and click on the section  
5. You should find one or more roles named " **Happeo Sync**" or similar variations. A couple of scenarios may exist:   
   1. The account may have a **single** "Happeo Sync" Admin Role assigned with the scope set to **cover all organizational units**  
   2. The account may have **multiple** "Happeo Sync" Admin Roles assigned. Typically, one is named " **Happeo User Sync**," covering a limited number of organizational units, and another is named " **Happeo Group Sync**," with the scope encompassing all organizational units  
6. Open the Admin Role named after “ **Happeo**” that has the scope for **All organizational units**  
7. Click on the **Privileges** section  
8. Scroll down until you see **Schema management** and **check the box** under it called **Schema read**  
9. Click **Save**

Here is the [Google Help Center article](https://support.google.com/a/answer/2406043?hl=en).

For more information, please [see this Google Doc](https://docs.google.com/document/d/1O40wNDFMDMsLa59PVVGNswEiuhZf36soxTfKRZ7kXK8/edit).
