Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cooldown period between consecutive notifications #10019

Open
1 task
jimmymadon opened this issue Jan 14, 2025 · 2 comments
Open
1 task

Add cooldown period between consecutive notifications #10019

jimmymadon opened this issue Jan 14, 2025 · 2 comments
Assignees
Labels
P1 Medium priority Team S Issues for Squad 1 Type: Enhancement Improvement of an existing feature

Comments

@jimmymadon
Copy link
Collaborator

jimmymadon commented Jan 14, 2025

Feature Description

Since the introduction of multiple recent features and modules, their new setup CTAs were all rendered simultaneously if their necessary feature flags and other conditions are met. This issue was fixed by refactoring each of these Setup CTAs into using the new Notifications "queue" infrastructure. However, like ordinary notifications, when a Setup CTA is actioned, the next in line Setup CTA will show immediately. This could cause "banner fatigue" with fewer users wanting to action banners that appear later on in the queue. (Internal Slack Discussion Thread)


Do not alter or remove anything below. The following sections will be managed by moderators only.

Acceptance criteria

  • All notifications (exceptions below), when viewed or actioned, should trigger a "cooldown period" of 15 minutes. During the cooldown period, no other notification (exceptions below) should be shown.
  • The cooldown period will be triggered only after the rendering of all Warnings, Informative notices and Setup CTA Banners. The notification type column in the Banners Spreadsheet shows the types.
  • Error notifications (e.g. auth error, internal server error) and "setup success subtle notifications" (e.g. when a feature or module is setup successfully) should behave the way they do now.
    • Errors should always be shown when they appear. These notifications will "block" other notifications that appear "behind" them.
    • Setup success subtle notifications are only ever shown once when the conditions of a successful setup are met. On any subsequent page reloads, these are never shown again. They should not trigger a cooldown period either.
  • Once Issue Rotate notifications if not actioned #10106 has been merged along with this issue, the resultant effect will be as follows:
    • Example A: If there is only one notification in the queue and it has been viewed, it will not show again for 15 minutes. If it was actioned and dismissed, it's normal dismissal expiry time will apply.
    • Example B: If there are three notifications in the queue and the first one has been viewed, it will not be shown on page reload. The second notification will appear after 15 minutes (page reload will be required). Once viewed, no notification will be shown for 15 minutes. Then the third notification will appear. Once viewed, no notification will be shown for 15 minutes. Finally, the first notification will be shown again and the cycle repeats.

Implementation Brief

Test Coverage

QA Brief

Changelog entry

@jimmymadon jimmymadon self-assigned this Jan 14, 2025
@jimmymadon jimmymadon added P1 Medium priority Type: Enhancement Improvement of an existing feature Team S Issues for Squad 1 labels Jan 14, 2025
@jimmymadon jimmymadon changed the title Schedule Setup CTAs to mitigate immediate stacking for new users of the plugin Add cooldown period between consecutive notifications Jan 29, 2025
@aaemnnosttv
Copy link
Collaborator

@jimmymadon did we decide to make this issue dependent on #10106?

@jimmymadon
Copy link
Collaborator Author

@aaemnnosttv Yes sorry - just added that dependency now!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 Medium priority Team S Issues for Squad 1 Type: Enhancement Improvement of an existing feature
Projects
None yet
Development

No branches or pull requests

3 participants