As a Growth Product Manager I need the ability to create broadcast messages targeted to users with specific permissions. Many times we want to communicate only with specific user sets to gather their expertise or feedback on a specific GitLab feature or proposal.
For Example
we may want to ask Admins if we should add the ability for them to see the GitLab usage within their namespace. Or we may want to ask Developers what their experience was like integrating with Verify.
Details
Adding the ability to target users based on URL and permission set will allow us to
Proposal
Requirements
Broadcast messages targeted to a specific permission set only show for users with that permission set.
Allow Broadcast messages creator to select multiple permission sets
URL targeting also works with this feature
Guest, Reporter, Developer, Maintainer, Owner all appear in selector.
Jensen Stavachanged title from Add targeting by permission set to Broadcast Messages to [Engineering] Add targeting by permission set to Broadcast Messages
changed title from Add targeting by permission set to Broadcast Messages to [Engineering] Add targeting by permission set to Broadcast Messages
I think most of the complexity around this feature and its other enhancements will be around availability. These messages are displayed on every page, and these queries can get cumbersome. We might need to leverage a nightly task that builds objects that we can more quickly reference as opposed to doing actual query/scope building.
Another way we might need to offset this would be making this an individual endpoint (if it isn't already) and do this request async, to ensure the initial page load isn't affected.
@eugielimpin I think that you should pick this up first. It will help you learn how the feature works so that we can properly spike on the more complicated next step.
@jstava A user has a role (permission set) in the context of a group, sub-group, or project. This means we can only check whether to show a broadcast message if the user is viewing a group/sub-group/project-specific page.
For example, given a broadcast message targeted to Developer role we can have the following scenarios:
User is in project page wherein they are a developer
Show broadcast message? YES
User is in a group (or sub-group) wherein they are a guest
Show broadcast message? NO
User is in a page not specific to any group or project (e.g. user preferences page)
Show broadcast message? NO
Is this the behavior we want to achieve here?
If we will only show broadcast messages with a target role in group/sub-group/project-specific pages, does this mean that requirement no. 3 ("URL targeting also works with this feature") will only work for URLs that contain a namespace id?
@eugielimpin I think that makes sense. Can we add a tooltip to say that. @kpaizee Would you mind adding adding some copy to specify that messages targeted by permission set can only be displayed inside of a project?
Also, while we're here, can we make the field name 'Target role'? We refer to Developer, Maintainer, etc. as roles, so we should be consistent here too.
Also, while we're here, can we make the field name 'Target role'? We refer to Developer, Maintainer, etc. as roles, so we should be consistent here too.
@jstava Just getting back to working on this again and I have some further questions:
I noticed from the docs that broadcast messages are also displayed in the terminal (e.g. when the user pushes to a repo)
screenshot from docs:
Do we want to display role-targeted broadcast messages in terminals as well? Or just project/group/sub-group pages in the web app for this iteration?
Disclaimer: I don't know how broadcast messages work in terminals yet so not sure if we can scope role-targeted broadcast messages there like we can in the web app.
Should this be available in gitlab.com AND self-managed?