Beta Features/Echo notifications

''Note: In a recent meeting with WMF team members, we explored an alternative to this Echo notification proposal: New Feature Popup Guider. This popup solution seems more practical to the team, because it doesn't require integration with a more complex code base, and doesn't start a big community discussion about who can use Echo send announcements like these (which could require a long time to resolve). ''

Overview
Beta Features will trigger Echo notifications at different times. The goal is to increase visibility and get additional feedback, so the product teams can invite feedback and improve features before they are release, as well as let users know when a feature has been released.

Here are the notifications we propose to implement first: We have five desired notification types for Beta Features:
 * 1) New Feature Available: Sent to all logged-in Echo users when a new feature is available for testing.
 * 2) New Feature Update - New user: This feature you aren't using has been vastly updated just now.
 * 3) New Feature Update - Current user: This feature you are using has been vastly updated just now
 * 4) New Feature Release - New user: This feature you aren't using is about to be released to everyone.
 * 5) New Feature Release - Current user: This feature you are using is about to be released to everyone.

At this time, we are prioritizing Type 1 above (already in development), as well as Types 4 and 5, which Media Viewer would like to use.

To make these notifications work, these tasks will be needed:
 * Echo Extension Update: We need to create a new Echo category and icon, and update the FAQ and documentation.
 * Beta Features Update: We want to add anchor links and section highlights to the BetaFeatures extension (card #432)

Each task above is specified below. Corresponding design tickets are posted here on Trello. Corresponding multimedia tickets on Mingle include: (this wiki page will be the primary specification for development purposes)
 * #425 New Features Notifications
 * #432 BetaFeatures Extension Update

Update: Developer Kunal Mehta [legoktm] has started development on a first version of the "new feature available" notification, which is being reviewed on this Gerrit patch. It is roughly based on this original proposal for Echo notifications on BetaFeatures. However, more work is needed to test and debug this first version, as well as to create the second notification "New Feature Release", and the Echo and Beta Features extension updates. James Forrester is product manager for BetaFeatures and will lead this effort with the design team, with the multimedia team contributing as a customer and reviewer. James, Fabrice and Mark recommend that we work to get type 1 out the door ASAP and then work on other types, prioritizing 4 and 5 (as there are issues that impact a type 1 notification a week before switching it on by default).

New Feature Available
As a user, I want to know if a new feature is ready for testing, so I can try it out before it is released.

For this Type 1 Notification, we want to notify users when a new feature is ready for testing, so more of them get a chance to see it before it is released.
 * Acceptance Criteria
 * Show this notification content:

'Check out this new feature: < Media Viewer >. Try it in beta and share your feedback!'

​ Here are proposed attributes for this notification:
 * Check to see if the user has enabled the feature already as a BetaFeature
 * If they haven't enabled it yet, link to that feature section in Beta Features preferences (with anchor link and highlight)
 * If they have enabled it, link to the feature overview page where they can discuss it. (e.g. 'About Media Viewer')
 * This notification is triggered manually with a maintenance script, on a per-wiki basis (so product teams can control the timing and reach of each notification)
 * Attributes


 * Trigger: Manual (triggered by product team for each wiki, using maintenance script)
 * Main Link: Beta Features preference page (if user has not yet enabled this feature)
 * Secondary Link: Feature overview page (if user has already enabled this feature)
 * Payload: Feature name (e.g. Media Viewer)
 * Frequency: Medium
 * Priority: High
 * Category: New Feature


 * Flyout Summary: [icon] 'Check out this new feature: < Media Viewer >. Try it in beta and share your feedback!'
 * All-notifications Summary: [icon] 'Check out this new feature: < Media Viewer >. Try it in beta and !' (2nd link to feature discussion)
 * Email Subject: 'Try out this new feature on Wikipedia: Media Viewer'
 * Email Summary: 'Check out this new feature on Wikipedia: Try it in beta and share your feedback! .' (or 'Leave feedback' if already enabled)


 * Web preference default: Enabled for all users
 * Email preference default: Disabled for all users
 * Web bundling: Disabled
 * Email bundling: Disabled
 * Metrics type: "new-feature"


 * Notes:
 * This will also require changes to the Echo extension (e.g.: new category label and icons, default enabling, FAQ, docs, metrics), as specified below
 * This will also require changes to the Beta Features extension (e.g.: anchors and highlights for direct link to the BetaFeature), as specified below

New Feature Release
As a user, I want to know if know if a new feature has been released, so I am not surprised by this new change and can learn more about it.

For this Type 4 and 5 Notification, we want to notify users when a new feature is released, to reduce stress and provide more information.
 * Acceptance Criteria
 * Show this notification content to new users that did not enable this as a beta feature:

'This new feature has just launched: < Media Viewer >. Learn more.'


 * Show this notification content to current beta users that already enabled this feature:

'This new feature has just launched: < Media Viewer >. Thanks for helping test it. Learn more.'

​ Here are proposed attributes for this notification:
 * If they click on the feature name, link to the feature overview page where they can discuss it. (e.g. 'About Media Viewer')
 * This notification is triggered manually with a maintenance script, on a per-wiki basis (so product teams can control the timing and reach of each notification)
 * Attributes


 * Trigger: Manual (triggered by product team for each wiki, using maintenance script)
 * Main Link: Feature overview page
 * Secondary Link: N/A
 * Payload: Feature name (e.g. Media Viewer)
 * Frequency: Medium
 * Priority: High
 * Category: New Feature


 * Flyout Summary: [icon] 'This new feature has just launched: < Media Viewer >. Learn more.'
 * All-notifications Summary: [icon] 'This new feature has just launched: < Media Viewer >. Learn more.'
 * Email Subject: 'This new feature has launched on [ sitename ]: Media Viewer'
 * Email Summary: 'This new feature has just launched on [ sitename ]: < Media Viewer >. .'


 * Web preference default: Enabled for all users
 * Email preference default: Disabled for all users
 * Web bundling: Disabled
 * Email bundling: Disabled
 * Metrics type: "new-feature"

Echo Extension Update

 * Create a new notification category label for 'New Feature'
 * Create new category icons for that notification (design team task)
 * Enable that category by default for web notifications to all registered users (keep email notifications optional).
 * Update the FAQ and documentation, as well as the tooltips and links in Echo preference settings
 * Update the metrics schema and tracking on these dashboards (proposed schema tag: "new-feature")

BetaFeatures Extension Update
More changes may be needed, once we have a final design. For more information, see this BetaFeatures extension (card #432).
 * Add anchor links to BetaFeatures preferences page
 * Show yellow highlights to indicate which BetaFeature is selected
 * Upgrade framework for supporting notifications, as needed
 * Upgrade maintenance script for sending notifications, as needed