Custom Profile Fields - HL Vanilla Community
<main> <article class="userContent"> <p><strong>🛑 IMPORTANT:</strong> The <strong>Profile Extender</strong> add-on and previous method of managing custom fields has been deprecated and replaced with the process discussed in this article. Any existing profile fields will be retained and migrated to the new system.</p><p><strong>Higher Logic Vanilla (Vanilla)</strong> user profiles feature a default set of profile fields (e.g., username and email address). If needed, your organization can expand these default fields with one or more <strong>custom profile fields</strong>, giving your users more ways to express themselves with information suitable to the goals and theme of your Vanilla community.</p><p>Users can fill out these custom profile fields:</p><ul><li>During the registration process</li><li>From their user profiles</li></ul><h2 data-id="custom-profile-fields-overview">Custom profile fields overview</h2><p>In this section, we'll look at a group of custom profile fields in action, from the Dashboard, to a user filling them out on the registration form, and how they then display on their profile page.</p><h3 data-id="custom-profile-fields-dashboard">Custom profile fields - Dashboard</h3><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/00BRKZDB5BFY/custom-profile-fields.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/00BRKZDB5BFY/custom-profile-fields.png" alt="custom_profile_fields.png" height="482" width="826" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h3 data-id="custom-profile-fields-registration-form">Custom profile fields - Registration form</h3><ul><li><strong>Blue </strong>highlighting indicates <strong>default profile fields</strong>.</li><li><strong>Red </strong>highlighting indicates <strong>custom profile fields</strong>.</li><li>Notice how the <em>Biography</em> field in the image above is <em>public</em> but set to <em>inactive</em>, so it doesn't show on the Registration form below.</li><li>Also notice how the <em>Plan </em>field in the image above is <em>active </em>but set to <em>internal</em>, so it also doesn't show to the non-admin user in the image below.</li></ul><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/1K4JEZCEPJFV/registration-form-custom-profile-fields.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/1K4JEZCEPJFV/registration-form-custom-profile-fields.png" alt="registration_form_custom_profile_fields.png" height="575" width="604" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h3 data-id="custom-profile-fields-user-profile">Custom profile fields - User profile</h3><p>As you can see below, custom profile fields display in the <strong>About Me</strong> section of a user's profile.</p><ul><li>Notice the <strong>lock icon</strong> on the <strong>Last Name</strong> field; this is because that custom field has a <strong>Visibility </strong>set to <strong>Private</strong>, so only the user (and anyone with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Personal Info > View</code> permission) can see it.</li></ul><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/EVXG7RB8LSJB/custom-fields-on-user-profile.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/EVXG7RB8LSJB/custom-fields-on-user-profile.png" alt="custom_fields_on_user_profile.png" height="468" width="499" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h2 data-id="access-custom-profile-fields">Access custom profile fields</h2><ol><li>Access the Dashboard.</li><li>Navigate to <strong>Settings > Membership > User Profile</strong>.</li></ol><div class="embedExternal embedImage display-large float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/ILR596MM8DZ0/access-custom-profile-fields.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/ILR596MM8DZ0/access-custom-profile-fields.png" alt="access_custom_profile_fields.png" height="538" width="1242" loading="lazy" data-display-size="large" data-float="none"></img></a> </div> </div> <p>From here, Admins can:</p><ul><li>Create profile fields</li><li>Enable/disable profile fields</li><li>Edit profile fields</li><li>Delete profile fields</li><li>Reorder profile fields</li></ul><h2 data-id="create-a-custom-profile-field">Create a custom profile field</h2><p>On the <strong>Settings > Membership > User Profile </strong>page:</p><p>1. Click the <strong>Add Field</strong> button.</p><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/0UE59XQC0XEM/add-profile-field.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/0UE59XQC0XEM/add-profile-field.png" alt="add_profile_field.png" height="487" width="910" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <p>2. In the dialog, configure the following options:</p><ul><li><strong>Type</strong>: Choose the type of profile field to create: <ul><li><strong>Single Textbox</strong>: Users can enter a single line of text.</li><li><strong>Multi-line Textbox</strong>: Users can enter paragraphs of text.</li><li><strong>Single Checkbox</strong>: Users indicate a preference via a simple checkbox.</li><li><strong>Single-Select Dropdown</strong>: Users can select a single option from a list of preconfigured choices.</li><li><strong>Multi-Select Dropdown</strong>: Users can select one or more options from a list of preconfigured choices.</li><li><strong>Date Picker</strong>: Users can select a date via a date picker. </li><li><strong>Numeric Input</strong>: This is a simple text field that only accepts numbers.</li></ul></li><li><strong>API Label</strong>: The unique identifier to use when calling our API. This label cannot be changed once saved!  </li><li><strong>Label</strong>: The title displayed for this profile field on the front end of your Vanilla community.</li><li><strong>Description</strong>: Allows you to provide helper text to explain the purpose of a profile field.</li><li><strong>Options</strong>: Enter, one per line, the options you want available to users upon clicking the dropdown. This option is only available if your <em>Type </em>is set to either of the dropdown field types.</li><li><strong>Visibility</strong>: Determines <em>who</em> can see this profile information on user profiles:<ul><li><strong>Public</strong>: Visible to <em>all</em> users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Profiles > View</code> permission.</li><li><strong>Private</strong>: Only visible to users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Personal Info > View</code> permission.</li><li><strong>Internal</strong>: Only visible to users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Internal Info > View</code> permission. <strong>📝 NOTE</strong>: Fields with this visibility setting will automatically set Registration Options to Hidden and not allow the Editing option to be set to Allow. Instead, you can set internal field editing to either Restricted or Blocked. </li></ul></li><li><strong>Editing</strong>: Controls who can edit this profile information:<ul><li><strong>Allow</strong>: Users can edit this field on their profile.</li><li><strong>Restrict</strong>: Only users with the <code class="code codeInline" spellcheck="false" tabindex="0">Users > Edit</code> permission can edit this field. </li><li><strong>Block</strong>: This field cannot be updated by any user (use this when the info is being passed via SSO).</li><li><strong>Optional</strong>: Users have the option to provide this information, but can complete registration without doing so.</li><li><strong>Hidden</strong>: This field will be hidden to users on the registration form. There are two use-cases for this: first, it's perfect for internal fields that should only appear to staff members; second, it's for fields that are being passed via SSO that should not be changed by the user when they connect for the first time. </li></ul></li><li><strong>Show on posts</strong>: This option allows you to include this profile field in the meta info included on user posts. You can only enable this option for Single Textbox fields. Visibility Options are respected. </li><li><strong>Registration Options</strong>: Lets you control how this field functions during registration:<ul><li><strong>Required</strong>: Users must provide this information to complete registration.</li></ul></li></ul><p>3. When finished, click <strong>Save</strong> to create the profile field.</p><h2 data-id="manage-custom-profile-fields">Manage custom profile fields</h2><p>On the <strong>Settings > Membership > User Profile</strong> page, you can manage your custom profile fields in the following ways:</p><ul><li>Enabling/disabling</li><li>Editing</li><li>Deleting</li><li>Reordering</li></ul><h3 data-id="enabledisable-fields">Enable/disable fields</h3><p>Use the <strong>Active </strong>toggle to control whether a custom profile field is enabled/disabled. </p><ul><li>This controls whether a field is available to users on your Registration form and user profiles.</li><li>When enabled, pay attention to a field's <strong>Visibility</strong> setting, as this impacts who can see it.<ul><li><strong>Public</strong>: Visible to <em>all</em> users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Profiles > View</code> permission.</li><li><strong>Private</strong>: Only visible to users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Personal Info > View</code> permission.</li><li><strong>Internal</strong>: Only visible to users with the <code class="code codeInline" spellcheck="false" tabindex="0">Garden > Internal Info > View</code> permission.</li></ul></li><li>Disabling a field is a great way to hide it <em>without </em>deleting the field and its data.</li></ul><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/U7ZE91H50M0R/enable-disable-fields.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/U7ZE91H50M0R/enable-disable-fields.png" alt="enable_disable_fields.png" height="368" width="826" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h3 data-id="reorder-fields">Reorder fields</h3><p>You can manage the order in which your custom profile fields display to your users.</p><ol><li>Click the <strong>Reorder</strong> button.</li><li>In the dialog, all of your fields are listed in their current order. To reorder them, drag and drop them to the desired locations.</li><li>Click <strong>Apply</strong> to save your changes.</li></ol><div class="embedExternal embedImage display-large float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/WZ3QH4X5DQ1N/reorder-fields.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/WZ3QH4X5DQ1N/reorder-fields.png" alt="reorder_fields.png" height="630" width="928" loading="lazy" data-display-size="large" data-float="none"></img></a> </div> </div> <p>This updated order is represented on your community's registration form and on user profiles.</p><h3 data-id="edit-fields">Edit fields</h3><ol><li>Click the <strong>pencil icon</strong>.</li><li>Make your desired changes. Refer to the <em>Create a custom profile field</em> section above for descriptions of each field. </li><li>Click <strong>Save</strong> to apply your changes.</li></ol><p><strong>🛑 IMPORTANT:</strong> Certain edits cannot be made. Refer to the section below for more information.</p><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/XF3MUIHIO74S/edit-profile-field.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/XF3MUIHIO74S/edit-profile-field.png" alt="edit_profile_field.png" height="313" width="826" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h4 data-id="what-can-be-edited">What can be edited?</h4><ul><li>The <strong>API Name</strong> cannot be changed</li><li>The field <strong>Type </strong>can be changed, but you're restricted in the available options because the data-type must stay the same to maintain consistency. For example:<ul><li>Single Textbox, Multi-line Textbox, and Single-Select Dropdown are all <em>text</em> <em>data types</em>, and they can be swapped amongst each other. This means you can update a Single Textbox to a Multi-line Textbox or Single Select Dropdown, for example.</li><li>Date Picker, Single Checkbox, Multi-Select Dropdown, and Numeric Input fields cannot be changed.</li></ul></li></ul><h3 data-id="delete-fields">Delete fields</h3><ol><li>Click the <strong>trashcan icon</strong>.</li><li>In the confirmation popup, click <strong>Delete </strong>to confirm the action. <strong>🛑 IMPORTANT:</strong> This action cannot be undone!</li></ol><div class="embedExternal embedImage display-medium float-none"> <div class="embedExternal-content"> <a class="embedImage-link" href="https://us.v-cdn.net/6030677/uploads/IMSYECA0XI7G/delete-profile-field.png" rel="nofollow noreferrer noopener ugc" target="_blank"> <img class="embedImage-img" src="https://us.v-cdn.net/6030677/uploads/IMSYECA0XI7G/delete-profile-field.png" alt="delete_profile_field.png" height="313" width="826" loading="lazy" data-display-size="medium" data-float="none"></img></a> </div> </div> <h4 data-id="impact-of-deleting-profile-fields">Impact of deleting profile fields</h4><ul><li>No new data will be collected or displayed for a deleted profile field. </li><li>Any data <em>previously</em> collected through this field will continue to be associated with community members. </li><li>If a deleted field was <em>active</em>, it will no longer display on user profiles.</li><li>You can continue to pass profile data into Vanilla via SSO as described <a href="https://success.vanillaforums.com/kb/articles/284" rel="nofollow noreferrer ugc">in this article</a>.</li></ul><h2 data-id="update-custom-profile-fields-on-your-profile">Update custom profile fields on your profile</h2><p>Check out the article below to learn how to update the custom profile fields on your user profile.</p><div class="js-embed embedResponsive" data-embedjson="{"body":"Each user in your Higher Logic Vanilla (Vanilla) community has a dedicated Profile page that displays their personal information and an overview of their community activities, such as badges they've earned and reactions they've received. In this article, you'll learn everything you need to know about accessing and managing…","photoUrl":"https:\/\/us.v-cdn.net\/6030677\/uploads\/GXW21TRYG1JP\/share-imagevanilla-community.jpg","url":"https:\/\/success.vanillaforums.com\/kb\/articles\/557-user-profile-page#profile-page-overview","embedType":"link","name":"User Profile Page - HL Vanilla Community"}"> <a href="https://success.vanillaforums.com/kb/articles/557-user-profile-page#profile-page-overview" rel="nofollow noreferrer ugc"> https://success.vanillaforums.com/kb/articles/557-user-profile-page#profile-page-overview </a> </div><h2 data-id="export-user-lists">Export user lists</h2><p>With our previous custom profile process, <strong>Profile Extender</strong>, Admins could export a CSV file of their users. This function, along with Profile Extender, has been deprecated; in its place, you can leverage our CSV output for API V2 to export the data you need. </p><p>The Profile Extender export included basic profile info, such as:</p><ul><li>Username</li><li>Email</li><li>Roles</li><li>Rank</li><li>Posts</li><li>Visits</li><li>Date last active</li><li>Date registered</li><li>Register IP</li><li>Last IP </li></ul><p>With our <strong>API V2 CSV Output</strong>, you can filter or expand the data included in the export. For example: </p><ul><li>Previously, you would get a full list of users. </li><li>Now you can choose to simply export a list of all users with matching profile info, such as Job Title, Industry, and Location. </li><li>Learn more: <a href="https://success.vanillaforums.com/discussion/1331/new-feature-csv-output-for-api-v2" rel="nofollow noreferrer ugc">https://success.vanillaforums.com/discussion/1331</a></li></ul><h2 data-id="fetch-user-profile-data-via-api">Fetch user profile data via API</h2><p>You can continue to use the “expand=extended” parameter on API V2 calls to include custom profile info in user fragments of our API response. </p><ul><li><a href="https://success.vanillaforums.com/kb/articles/394" rel="nofollow noreferrer ugc">Check out this article</a> to learn more.</li></ul><h2 data-id="filter-users-by-profile-data-via-api">Filter users by profile data via API</h2><p>You can filter the API V2 <code class="code codeInline" spellcheck="false" tabindex="0">/GET /api/v2/users</code> endpoint by profile field.</p><h2 data-id="faq">FAQ</h2><p><strong>Q</strong>: What happens to custom profile fields when a user is deleted? </p><p><strong>A</strong>: They are backed up. If a user is restored, profile fields are restored as well.</p><p><br></p><p><strong>Q</strong>: How are profile fields managed via the API?</p><p><strong>A</strong>: Profile fields can be added and edited via the API using the <code class="code codeInline" spellcheck="false" tabindex="0">/api/v2/profile-fields</code> endpoint.</p><p><br></p><p><strong>Q</strong>: How are profile fields mapped via Salesforce Contact Sync?</p><p><strong>A</strong>: The mapping of custom profile fields to Salesforce fields will be done in the Salesforce settings UI. Admins will be provided with a list of all configured profile fields and provide the associated Salesforce ID for each field they wish to sync.</p><p><br></p><p><strong>Q</strong>: What happened to my existing custom profile fields created via Profile Extender?</p><p><strong>A</strong>: All of your existing profile fields have been migrated to the new system.</p> </article> </main>