Skip to main content
bjoern_schulze
Helper ⭐️⭐️⭐️
September 22, 2026
Question

Custom Widget "Profile completion": Questions and issues

  • September 22, 2026
  • 1 reply
  • 18 views

We built a custom Widget called “Profile Completion” for the o2 Community.

The widget:

  • Loads the current user’s profile through a Gainsight connector
  • Calculates completion based on nine equally weighted criteria:
    • eight User Profile Fields
    • personal avatar
  • Displays the completion percentage, username, progress bar, missing fields, explanation text, and a link to the profile settings
  • Supports configurable Builder options for content and display
  • Uses Gainsight Personalization to target users with a Primary Role (through a segment)

It looks like this:

Questions and Issues

Pre-load personalization based on profile completion

Currently, Personalization only filters by a broad segment such as users with a Primary Role. The widget is therefore initialized for all matching users and must load the connector before it can determine whether the profile is complete.

Question:

Is there a supported way to personalize a Custom Widget based on a calculated or stored profile-completion status before the widget is loaded?

Ideally, we would like to have something like:

Primary Role = Registered User
AND profile_completion_status = incomplete

Complete profiles should not load the widget or execute its connector.

Avatar availability as a segmentation attribute

The personal avatar is available in the user API response and we can use it to calculate the completion percentage. However, avatar availability is not available as a User Profile Field filter.

Question:

Can the presence or absence of a user-uploaded avatar be exposed as a segmentable user attribute?

Ideally, the segment should be able to distinguish:

  • avatar exists
  • avatar is missing

Birthday empty-state filtering

The Birthday field does not provide an `is empty` filter. The available date filter, such as `More than 0 day ago`, does not reliably identify users who have never entered a birthday.

Question:

Is there a supported filter for an unset or default Birthday value?

Our workaround: The widget treats the platform default value `1-1-1970, 0` as incomplete.

Segment logic: OR conditions and exclusions

The Segment Builder currently allows multiple filters with `AND`, but we could not create the required condition:

Field A is empty
OR Field B is empty
OR Field C is empty

We also could not reliably create a negated version of the existing “all profile fields completed” segment.

Questions:

  • Are `OR` conditions supported for User Profile Field filters?
  • Can a segment be defined as the inverse of another segment?
  • Is there a recommended pattern for targeting users who match at least one incomplete-profile condition?

Native Style tab for Custom Widgets

The native Style tab is available for native widgets, but not for our Custom Widget.

Questions:

  • Can the native `Style` tab be enabled for Custom Registry Widgets?
  • Is there an official Registry configuration schema for enabling it?
  • If it is not supported, is there a planned roadmap for enabling it for Custom Widgets?

We deliberately do not want to recreate the native Style tab with an unsupported custom implementation.

1 reply

Matt Breneman
Contributor ⭐️⭐️⭐️
September 22, 2026

hey ​@bjoern_schulze! I can share what I have done for the “Pre-load personalization based on profile completion” question. My widget was based on Community actions rather than profile completion so keep that in mind during my response.

I used the Gamification ranks to help with this. You can make the widget visible to specific segments. So, I made it visible to Newcomer and Contributor ⭐ only. Based on my gamification rules, by the time someone gets to Contributor ⭐⭐, they will have completed the items on the widget and then it becomes hidden for them. 

 

This may not apply exactly to your use case since the profile completion may not relate to their ranks, but I’m hoping it at least provides an idea on what can be done for showing/hiding the widget.