Page MenuHomePhabricator

[notifications] edge and error cases, user education
Open, MediumPublic

Description

Why are we doing this?

We want to ensure that we have proper messaging and user education for the Notifications feature on iOS. We believe that creating list of instances where we will need to communicate with users (alerts, empty states, user education models, etc) will help us to ensure that we utilize a consistent voice and tone and that we are able to intercept the user with helpful information when needed, without overwhelming the experience. Copy docs can help with organizing and clarifying copy

Examples of previous copy audits

https://phabricator.wikimedia.org/T187403
https://phabricator.wikimedia.org/T177559
https://phabricator.wikimedia.org/T187404

Copy doc

IMPORTANT: The mocks below are for illustration purposes only please see the iOS Notifications Figma file for the most up-to-date designs. Designs supplied in the tables below may not be updated past initial designs.
In-App Notification Center
DescriptionMockMessagingTypeNotes
Notifications Center - logged out stateNoneNoneNoneIt is not possible to load the notifications center when logged out
Notifications Center - empty state (truly no notifications)
image.png (812×375 px, 23 KB)
You have no unread messagesEmpty stateIt's unlikely that a user will see this empty state as they should receive a welcome message when they create an account
Notifications Center - empty state (no web subscriptions)
image.png (812×375 px, 30 KB)
You are not currently subscribed to any Wikipedia Notifications / Go to Settings on Wikipedia.org to edit your alert subscriptionsEmpty stateShown when all subscriptions are off on web
Notifications Center - empty state (caused by filters like read/unread)
image.png (812×375 px, 27 KB)
You have no unread messages / Remove [x] filters to see more messagesEmpty state
Notifications Center - no connection
image.png (812×375 px, 53 KB)
No internet connectionToastIf the new design cannot be adopted, please use the current toast design
Notifications Center - bulk importing notifications in progress (triggered on first load, after changing languages, after changing types)
image.png (812×375 px, 53 KB)
Checking for notifications...Bottom toolbar message
Notifications Center - push permissions not enabled (maybe not needed if we don't intend to mention their push settings in the center)
image.png (812×375 px, 51 KB)
Turn on push notifications? / Wikipedia is a collaborative project and turning on push notifications can make it easier to keep up-to-date with messages, alerts and ‘thanks’ from fellow editors. / Turn on push notifications / No thanksModalONLY to be shown on FIRST load of in-app notifications center. Tapping on the 'Allow' option should show the standard push notifications system request
Notifications Center - push permissions denied (maybe not needed if we don't intend to mention their push settings in the center)NoneNoneNone
Notifications Center - push permissions enabled, but device subscription failed (maybe not needed if we don't intend to mention their push settings in the center)
image.png (812×375 px, 56 KB)
Device subscription for push failedToastTapping on toast should bring the user to the settings screen related to push subscriptions. Toast should only appear upon load of the In-app Notifications Center and should dismiss after the same interval of time as other toasts.
Notifications Center Bell Icon - explore feed is turned off and user is logged out
image.png (812×375 px, 35 KB)
NonePresentation state
Notifications Center Bell Icon - explore feed is turned on and user is logged out
image.png (1×750 px, 176 KB)
NonePresentation state

Settings
DescriptionMockMessagingTypeNotes
App Settings Root Screen - logged out state. anything different? still show cell to go to notifications type screen?
image.png (812×375 px, 38 KB)
NonePresentation stateDo not show Notifications settings when the user is logged out. We will need to add this setting back in if we bring back non-communications focused notifications.
Notification Settings Types Screen - logged out stateNoneNoneNoneDo not show Notifications settings when the user is logged out. We will need to add this setting back in if we bring back non-communications focused notifications.
Notification Settings Types Screen - logged in state, but user hasn't granted push permissions yet
image.png (812×375 px, 23 KB)
Be alerted to activity related to your account, such as messages from fellow contributors, alerts and notices. All provided with respect to privacy and up to the minute data.Presentation state
Notification Settings Types Screen - logged in state, but user is in a DENIED permissions state, need a callout to push to iOS settings to enable in order for them to receive push.
image.png (812×375 px, 22 KB)
Be alerted to activity related to your account, such as messages from fellow contributors, alerts and notices. All provided with respect to privacy and up to the minute data.Presentation stateSimilar to the screen above, but the toggle is replaced with a chevron, tapping will push the user to system settings
Notification Settings Types Screen - logged in, has enabled push permissions, but something has failed with device token generation or echo subscription. need an error state something went wrong with setup for push notifications, and to try again later.
image.png (812×375 px, 38 KB)
Unable to Check for Echo Notification subscriptions / An error occurred while checking for notification subscriptions related to your account / Cancel or Try againAlert
Notification Settings Types Screen - connection error when trying to update toggle preference states to server
image.png (812×375 px, 78 KB)
Unable to Check for Echo Notification subscriptions / An error occurred while checking for notification subscriptions related to your account / Cancel or Try againAlert

Push Notification Content
  • Push Notification Content (service extension) - user receives a push notification, but we determine there is no new unread notification to display (perhaps user already saw it on desktop and marked as read during the push delay, or maybe they changed their notification types preferences to filter it out before the push went out)
  • Push Notification Content (service extension) - user receives a push notification, but there was an API fetch failure to populate its content (service is down) or it timed out due to poor or no connection
  • Push Notification Content (service extension) - user receives a push notification, but there was an API fetch failure to populate its content because user is logged out (not sure if this is possible)
  • Push Notification Content (service extension) - user receives a push notification, but it's an unrecognized type, need to show default information that we are certain will be available from the notification object
  • Push Notification Content (service extension) - user receives a push notification, but we detect there are multiple new notifications to coalesce. Also these notifications are the same type. (all thanks, for example)
  • Push Notification Content (service extension) - user receives a push notification, but we detect there are multiple new notifications to coalesce. Also these notifications are different types. (one thanks, two talk page messages, one milestone, for example)
  • Push Notification Content (service extension) - user receives a push notification, but instead of "checkEchoV1" in the payload it sends us "checkEchoV2". How do we react? (suggestion: don't try to fetch content from API, show default "New activity on Wikipedia" text).

For all of the above (in this section) I propose that we utilize the general 'New activity on Wikipedia' push notification.

image.png (812×375 px, 486 KB)

Related

https://phabricator.wikimedia.org/T288668
https://phabricator.wikimedia.org/T288870
https://phabricator.wikimedia.org/T288873
https://phabricator.wikimedia.org/T287766
https://phabricator.wikimedia.org/T288874
https://phabricator.wikimedia.org/T287768
https://phabricator.wikimedia.org/T288652
https://phabricator.wikimedia.org/T288688
https://phabricator.wikimedia.org/T287310

Related Objects

Event Timeline

LGoto renamed this task from edge and error cases, user education to [notifications] edge and error cases, user education.Aug 16 2021, 6:34 PM
LGoto triaged this task as Medium priority.

@cmadeo Updated with an initial list of edge and error cases. We'll may add more if we think of others as we go along. Many of these already have a ticket going elsewhere, I only mention them here for completion's sake.

Awesome, this is super helpful, thanks @Tsevener

cmadeo updated the task description. (Show Details)
cmadeo updated the task description. (Show Details)

@cmadeo can you update the mocks here to remove tabs?

A row might need to be removed after a decision is made on https://phabricator.wikimedia.org/T288688#7344985. Moving into Needs Design to represent this.

@Tsevener do we still need the following alerts?

DescriptionMockMessagingTypeNotes
Notification Settings Types Screen - logged in, has enabled push permissions, but something has failed with device token generation or echo subscription. need an error state something went wrong with setup for push notifications, and to try again later.
image.png (812×375 px, 38 KB)
Unable to Check for Echo Notification subscriptions / An error occurred while checking for notification subscriptions related to your account / Cancel or Try againAlert
Notification Settings Types Screen - connection error when trying to retrieve initial preferences toggle states from server
image.png (812×375 px, 54 KB)
Unable to Check for Echo Notification subscriptions / An error occurred while checking for notification subscriptions related to your account / Cancel or Try againAlert
Notification Settings Types Screen - connection error when trying to update toggle preference states to server
image.png (812×375 px, 83 KB)
Unable to Check for Echo Notification subscriptions / An error occurred while checking for notification subscriptions related to your account / Cancel or Try againAlert

@cmadeo thanks, yep we do need those 3, BUT we need these 2nd and 3rd ones to have the "Push notifications" dimmed view underneath (with the push notifications info text "Be alerted to..."), not "Subscriptions". The "Subscriptions" screen is going away (I think, we should confirm with Josh).

Screen Shot 2021-09-13 at 12.23.35 PM.png (827×393 px, 72 KB)

Screen Shot 2021-09-13 at 12.23.41 PM.png (249×117 px, 30 KB)

@Tsevener sounds good, do you have an intuition on where these alerts should show instead? Perhaps on the inbox itself?

Alternatively, might we be able to do this refresh silently without requiring the user to tap on 'try again' @Tsevener ?

do you have an intuition on where these alerts should show instead? Perhaps on the inbox itself?

@cmadeo I think if any prompt to enable push notifications (like in notification center) sends the user to the Push Notifications Settings screen, then this "Unable to check for Echo notification subscriptions" alert only needs to live there, on the Push Notification Settings screen.

And if we decide to keep the Logged in - Settings > Subscriptions screen that you have already designed, it sounds like it will now only act as a local filter behind the scenes with no server component, so we will no longer need any error state on that screen.

Sounds good, I'll make updates after our decision tomorrow :)

@Tsevener I believe I addressed the changes outlined in your comments but if I forgot something would you mind flagging what I missed and passing this ticket back to me? Thanks!

"Push Notification Content" section of this work is done in https://github.com/wikimedia/wikipedia-ios/pull/4046. Move this back into Ready for Dev once that is merged.