Design: In-product MR Survey
As part of &6141 (closed) we need to design the widget that will be used to present and collect survey responses inside the merge request.
Design considerations
- Location: The survey should not affect the layout or cover important elements. That means it will likely be shown at the bottom or bottom right corners of the screen. That said, we need to ensure it does not blend too much with the rest of the UI (e.g. the sidebar).
- Emphasis: If there’s color and/or a transition, it may help people see it, regardless of where it’s located.
- Consistency: Try to follow an existing UI pattern. The most similar is the notification broadcast message (example).
- Other dialogs: Consider behavior when there are other dialogs, like broadcast messages.
Proposal
▶ ️ Figma prototype📐 Figma specs- See explorations in the designs below
👇
Details
-
Show conditions:
- If the instance is GitLab.com (SaaS).
- If the user is logged-in.
- If Snowplow is not blocked by the browser. The browser may be using an ad-blocker or sending the “Do Not Track” signal.
- If the user has not dismissed this survey in the last 90 days.
- If no notification broadcast message (example) was visible on page load. For example, if I close a notification broadcast message, the survey would only appear on reload/when visiting another MR. This is because the proposal has a similar design and placement to notification broadcast messages.
- If 10 seconds have passed after page load. This is to avoid asking users about their satisfaction immediately after the MR page is loaded.
- If the user has only answered the first question (overall satisfaction), keep showing the second question (speed/performance) until they answer it or dismiss the survey.
-
Dismissal: When the survey is completed or the user dismisses it (clicks the
Xbutton), the survey doesn't appear again to that user for the next 90 days (that should be possible usingUserCallout). -
Animations:
- The survey moves in from the bottom of the screen (just like a toast), as seen in the prototype:
ease-in 200msThis helps make it noticeable and less jarring. - Dismissing (click the
Xbutton) or moving between steps doesn't have any animation. - The final “thanks” step fades out after 5 seconds (just like a toast).
- The survey moves in from the bottom of the screen (just like a toast), as seen in the prototype:
- Legal disclaimer: Links to https://about.gitlab.com/privacy/
-
Questions:
- Overall, how satisfied are you with merge requests?
- How satisfied are you with the speed/performance of merge requests?
-
Data automatically collected (see technical details):
- MR days: Number of days in the last 30 days that the user visited an MR page.
- This is already collected today through Snowplow.
- Paid plan: Whether the user is a member of 1+ paid group(s) or not.
- This is also already collected.
- Account age: Number of days since user's account creation.
- This is not collected today, but will be once the survey is implemented.
- MR days: Number of days in the last 30 days that the user visited an MR page.
Edited by Pedro Moreira da Silva