Page MenuHomePhabricator

Flow: Personal feed v1 (design)
Open, HighPublic

Description

This is the first step down the road of using tags and filters to create a personalized view of your discussions.

We don't have tags or filters right now, and Flow isn't deployed on enough article pages or namespaces for those to be useful yet.

One useful thing that we could build now is a special page that shows you a feed of conversations that you're currently subscribed to, from any Flow board on the wiki. It can work just like a regular Flow board, with a table of contents and sorting options.

This would only be visible to the user, in the same way that Special:Watchlist works.

I'm not sure about what to call it. Related examples are Special:Watchlist and Special:Contributions.
Brainstorming -- Special:Topics, Special:Discussions.

It would be good to have a spec & mockups to show at Wikimania.


See also
T107207: Cross-wiki personal feed
T101930: I want to watchlist the intersection between two pages
T94798: Flow: Ability to aggregate topics on more than one board based on some criteria
T90069: Tags for topics
and possibly
T88107: Ensure RSS feeds of SMW queries against Flow topics embed and link something meaningful (translatewiki.net)

Event Timeline

DannyH raised the priority of this task from to Medium.
DannyH updated the task description. (Show Details)

Some of the scenarios and possible idas to support them:

  • Quickly track what is new on the different boards the user is interested.
    • Navigation structures to quickly focus on a different board.
    • Highlight of new activity.
    • Summarised views to highlight the recent info with enough context.
  • Reply all pending topics.
    • Provide the usual actions (reply, resolve, summarise, etc.) right away for the different topics.
    • Allow to focus on topics of a specific kind (allow the usual search and filtering options).
  • Subscribe/unsubscribe to interesting board/topics.
    • Allow to add new subscriptions and remove them.

I have illustrated some of the ideas in an early mockup:

interest-feed.png (1×1 px, 235 KB)

The idea is to allow users to add their topics of interest to get a view of the updates (the flow discussions in this case, but it can be extended in the future to other kinds of content like content updates or notifications related to the content). We need to take into account other possibilities and considerations, but the above can be useful for discussion purposes.

Comments from this morning's product pitch meeting

  • The way in which the list is sorted is presented ambiguously (seems like it could be alphabetical, more likely to be by recency)
  • Not reasonable for headers to take up so much height if there are many topics
  • Is “interests” a good word here?
  • Could also show updates to content in a reader-friendly way. “What’s new on this page?”
  • Should we use an inbox interface/concept? As in, I see X new things, and dismiss some but want to leave others in the inbox to remind me later
    • RSS reader?
  • what about “subscribing” to a stream of notifications?
  • All Interests tab could get very messy with more than ~10 items
  • How will this integrate into current systems like Echo?
  • What about emphasizing interactions between people, group activities, and not just an emphasis on interactions between a user and pages that interest them. A way to direct questions to a user that goes beyond simply mentioning them in discussion.
Quiddity set Security to None.

Thinking some more about this spec:

Cronopio is subscribed to conversations on a lot of different boards.

This includes:
3 article talk pages, where he's watching the whole board (Talk:Easter Island, Lions, List of lists of frogs)
His own user talk page (User talk:Cronopio), where he's automatically subscribed to all threads
Individual threads on Village pump/Proposals (not following the whole page)
Individual threads on several user talk pages, where he's not following the whole page: (User talk:BanjoDog, User talk:Spookykarrot, User talk:Bobbangel, User talk:Leon Waits)

The personal feed (Special:Flowfeed) has all of the conversations that Cronopio is subscribed to, arranged in order of most recently active.

When Cronopio visits the page, what he's looking for are the latest conversations -- what's happened since he's been away?

In recently active order, threads from different boards are all mixed up -- #1 from Talk:Easter Island, #2 from User talk:Cronopio, #3 from Talk:Lion, #4 from User talk:Spookykarrot, #5 from Talk:Easter Island, and so on. He needs an indication on the thread that helps him remember where this thread comes from.

His activity pattern: He visits his feed. There are five new threads, as listed above. He scrolls down and glances through all of them. He responds to #2 and 3. He knows that he'll want to respond on #1 and 4 later, but they're long and he doesn't have time to read them now.

He wants to use his feed as a to-do list, or a queue of conversations that he'll catch up with and respond to (if necessary) when he has time. He's dealt with #2 and 3, so he wants to "dismiss" them from the feed. This will hide those threads, so he can focus on #1, 4 and 5 the next time he comes back. If there are more posts on #2 or 3, then he'll want that thread to show up on the feed again -- but if not, then he'd rather clear them out and just see the threads he still needs to read and/or respond to.

Searching and filtering: He wants to be able to search for a previous conversation with a keyword. He also wants to be able to just see the most recent conversations from Talk:Easter Island.

He wants to be able to scroll down and check old conversations quickly -- being able to collapse and uncollapse long conversations is important.

So, questions for @Pginer-WMF about the current mockup:
Showing a mix of recently active threads, the "Today: Easter Island" heading doesn't really work. Is there another way to show which board the conversation comes from?
How does the list on the left work if you've got a mix of talk, user talk and village pump conversations? Is it just showing pages with new messages?
Is there a way Cronopio can dismiss/hide threads he doesn't want to see right now?

DannyH raised the priority of this task from Medium to High.Jun 19 2015, 11:11 PM

Showing a mix of recently active threads, the "Today: Easter Island" heading doesn't really work. Is there another way to show which board the conversation comes from?

The "Today" label was supposed to be more general, not attached to "Easter island" (at the bottom you have the "yesterday" section). The main idea was to illustrate the default view to be an aggregation of conversations sorted chronologically (showing newest on top). In addition, the topics were used to add context to each conversation (but only once if several conversations were shown next to each other).
We can explore some options on how to present information more clearly.

How does the list on the left work if you've got a mix of talk, user talk and village pump conversations? Is it just showing pages with new messages?

The search, filtering and browse actions are available through the search bar as usual (at the top of the board). The sidebar on the left is intended for quick filtering. I would expect that after an overview of the recent conversations, the user may want to focus on a specific topic (e.g., village pump conversations) to avoid too much context switch or to prevent it from getting lost in the middle of other less urgent topics.

There are many decisions yet to be made on how to sort and organise them:

  • Influence of activity. We can sort topics by activity (showing the topic with most pending messages/replies on top), keep active topics always above inactive but respect alphabetical order in each black, or just sort them alphabetically or any other criteria (by date added, custom user order, or a combination of the former the user can switch).
  • Type of topic. Users may perceive differently discussions about articles than discussions on user talk pages, so it may make sense to present those grouped together.

I think that these decisions should be better based on the actual patterns users follow when exploring new activity. So it would be great to collect some information in that regard.

Is there a way Cronopio can dismiss/hide threads he doesn't want to see right now?

No, but there several options we may consider depending on the intended usage patterns.
I think it is important to have a simple model on how to go through the information. Allowing to hide, highlight and expand pieces of information may lead to a situation where it is not clear what is being displayed.

Some possible models (more to be explored):

  • Favorites. All items are visible. Users can mark items as favourite in order to act on them later (quick filters show the favourites on each group). Quick filters have easy access to filter topics the user has replied and not replied to.
  • Mark as read. The default view shows unread topics. As they are marked as read (or the user participates in) they are removed from the default view. A secondary "read" view allows to find the topics that are not visible.
  • Labels. Users can add custom labels to topics and posts. By default, common options are available ("later", "important", etc.) but users can create their own. The labels used apear as part of the quick filters for users to view the items of a given kind.

You're right, there's a lot of different ways to group and filter the conversations. We'll need to collect some more information about what active users need.

I think this connects to the kinds of questions that we need to ask about notifications and watchlists. We want to learn more from active contributors about how they stay organized, how they create lists of to-dos, how they decide what to pay attention to, and any problems/frustrations with the current tools.

Let's talk to Abbey and Jonathan about doing some work on this, after we do the current workflows sessions. This could be something that we talk to people about at Wikimania.

I'm trying to think of what the absolute MVP would be for this, if we created a feed that was really just "create a container for topics from different boards". I guess the one challenge (design and technical) is how we you indicate what board the topic came from. We'll keep talking about it.

I have been exploring some ideas in this prototype.

I'm experimenting with a model for read/unread where items become read automatically initially, but the users can mark specific items as unread.

  • On regular use, users just keep reading without having to act on every single item.
  • Advanced users that want to use the different pieces of information as action items have the opportunity to highlight actionable items.
  • Information is not hidden by default. At the bottom of the left column you have filters to view only new items which will hide the read ones, and we can provide a keyboard shortcut to move to the next unread item (and to change status or read/unread). This will avoid issues on what is shown and what is not.
  • Although new items become read as the user views them, those are still distinguishable from the ones the user read in past sessions to avoid losing track of items becoming read without the user noticing.
  • At the moment I'm more interested on the model (e.g., compared to an explicit to-do list where you have to act on each item). I'm less concerned about the visual elements to communicate the status (although feedback on that is also useful)

read-status.png (145×686 px, 27 KB)

The prototype also includes the ideas of showing conversations from different namespaces and how to filter them as well as making the chronology more prominent and the board each topic belongs to less prominent.

I like some of these ideas, but right now I really do need an MVP version 1 for this. I want to show this at Wikimania as a feature that will be out very soon. It's a good example of the kind of benefit that Flow can offer *right now*.

Pau, can you do a mockup for this:

  • A page called Special:FlowFeed.
  • Looks like a current Flow board, with a couple exceptions noted below.
  • Same line for Browse topics/Recently active topics.
  • No "start a new conversation" entry field.
  • Current version of the side rail, with x to close. Instead of the current "About this discussion" and "Edit description", it should say: "Welome to your personal feed! This Flow board shows all of the topics that you're currently subscribed to." That's all for now in the side rail, it doesn't need any special bells and whistles.
  • Nothing surprising on the left side.
  • Several topics on the board, with a green star on each (because this feed only shows topics you're subscribed to).
  • The topic header should look the same as they currently do, plus an indication of what board the topic comes from. The name of the board is a link to that board.
  • No pictures as icons. This is something that we can add later, but right now there are no Flow boards on article talk pages. This needs to look good and make sense, without moai.
  • No special features around read/unread. We'll definitely have to figure this out, but it's probably going to require a whole new model for how we treat read and unread, and we're not going to do that right now.
  • Nothing that encourages you to subscribe to more pages. This is a reading experience that helps a user keep up to date with the topics s/he is currently subscribed to.

It's important for us to think pragmatically about this right now -- it's something that I'd like to start building in the next sprint or two. Thanks!

I like some of these ideas, but right now I really do need an MVP version 1 for this

I agree we need to start with a simpler version and improve it step by step. However, for that it is useful to figure out which is the way we plan to support the user needs in the longer term (and which ones to support). Otherwise it is a bit hard to understand whether that initial step is made in the right direction.

I moved the longer-term ideas to T103083, which may be a better place to consider them (apologies if it created some confusion here), and discuss which ideas seem to work and are worth validating with users (please, feel free to add details in that ticket about what we intend to achieve in the end).

Pau, can you do a mockup for this:

Yes, but first I need to understand better some details about which user needs we are trying to solve with this initial version (and which one we do not), which is a bit hard to extract from some of the specifics you listed.

From what I understand, in this initial step our goal is to "make it possible for users to view all conversations they are involved in".
We are not considering making such view (a) easy to consume or (b) easier to process as a set of action items.

I have some more specific questions below:

A page called Special:FlowFeed.

Should we explore entry points where users can find this (e.g., announce it when users subscribe to a topic)? or relying on users to know and type the URL seems ok for now?

Same line for Browse topics/Recently active topics.

I'm not sure I understand this. In regular flow boards, "browse topics" (Table of Contents) and "Recently active topics" (sorting options) are in the same group. Do you mean just keeping them as they are in regular flow boards?

Another related question I have: Which is the basic content unit here? If there is a reply to topic A, are we expecting to show the reply (with some context around it) or the whole topic? If we show the whole topic, what happens when replies to a couple of topics form a sequence in time (e.g, reply to A - reply to B - reply to A - reply to B)? Do we expect the topics to be repeated in the Feed or we expect them to just move upwards (e.g, topic A moves from yesterday to today as soon as a new reply is there)? Are we considering highlighting which part of the topic are the new ones (like when you reach it from a notification) or do we expect the user to figure out which are the new replies on each topic?

Nothing surprising on the left side.

The purpose of the left column was to provide an overview of the activity organised by topic. So that a user can easily identify that there is a reply on the very important subject A without it getting buried by 20 new topics on the less important topic B. From your comment it is not clear whether (a) you don't consider that usecase worth solving, (b) you consider it worth solving but in a different way which meets other criteria (in which case, knowing which would be helpful), or (c) you don't consider it a priority for this version for reason X.

Several topics on the board, with a green star on each (because this feed only shows topics you're subscribed to).

Regarding the green star, is the idea to allow users to quickly unsubscribe? In that case we should think on the possible paths to re-subscribe: (a) just let topics disappear as the user unsubscribe and find them manually if you want to re-subscribe, (b) keep topic you unsubscribed on the feed to let people change their mind until they leave the page, (c) replace the topic with an indication of unsubscription and "undo" option, (d) allow users to subscribe to boards from the feed itself.

No pictures as icons. This is something that we can add later, but right now there are no Flow boards on article talk pages. This needs to look good and make sense, without moai.

Having a visual cue representing the board is intended to facilitate an overview by scanning the page, and it can also help to discriminate between namespaces (e.g., using page or people icon for main-talk and user-talk namespaces). The lack of pictures does not mean we cannot support the idea: having a generic icon wking sure that it has a consistent color for the same board and a different one for a different board can help to navigate the big feed view. Tools such as Gmail or Google Docs use a similar approach when users lack a picture.
Again, do we think that facilitating the user to get an overview of the feed is worth supporting? do we think the proposed one is a good approach? do we think it is part of the basic needs to be considered for version 1? From the above comment ("This needs to look good and make sense, without moai") it is not clear to me which is the case.

No special features around read/unread. We'll definitely have to figure this out, but it's probably going to require a whole new model for how we treat read and unread, and we're not going to do that right now.

The problem is that there are many ways to approach this. So it would be good to know which direction seems more promising before we invest efforts in the solution. The purpose of the prototype in that regard was to be able to try one approach before jumping into developing it. I'm not sure which is the general plan to figure out this part.

Nothing that encourages you to subscribe to more pages. This is a reading experience that helps a user keep up to date with the topics s/he is currently subscribed to.

As a central place where you can access what you are subscribed, I think it makes sense to allow users to manage their subscriptions (not only removing but adding too) and that one of our goals could be to encourage users to get involved in more boards to increase the collaboration. Even on heavily reading-focused experiences such as ebook readers, you may find options to add new books to read.
Having said that, I totally agree that this does not sound as a must-have for version 1, but it is not clear whether your comment is more general than that.

Personal feed v1 is primarily a marketing tool. We are going to use this feature to show people that Flow offers advantages that the wiki talk pages don't.

One of the exciting things about the Flow model is that the page is just a container, and conversations can be surfaced on multiple pages. Currently, the only feature that takes advantage of that is the sorting tool, which has been around for a year and has not set the world on fire.

As we talked about today, we're going to show lots of things at Wikimania to demonstrate what the future roadmap looks like. It would be really helpful if one of those pieces is actually live on a website. I'm going to put the Personal Feed v1 in the sprint that starts tomorrow, so we can have something for people to click on at Wikimania. I need a mockup for that ticket.

I agree with your points about how stunted and unsatisfying this v1 will be from a deep-dive useability standpoint. I am aware of that and I am entirely comfortable with it. In this case, a v1 that exists is 1,000 times more valuable than a v1 that does not exist.

So, the thing that I need: a simple design for topic headers that says what board the topic comes from. That's it. Please help me make the thing that I need.

DannyH renamed this task from Flow: Personal feed v1 to Flow: Personal feed v1 (design).Jun 29 2015, 11:37 PM

multiple pages. Currently, the only feature that takes advantage of that is the sorting tool, which has been around for a year and has not set the world on fire.

[off-topic] Which "sorting tool"?

[off-topic] Which "sorting tool"?

The option to sort the topics of the board according their creation time or the recent activity (shown on the top-right toolbar as illustrated in the screenshot below).

Screen Shot 2015-06-30 at 14.26.53.png (172×804 px, 24 KB)

Regular talk pages form a whole document where content is displayed as it is stored. Representing specific concepts such as conversations and replies, allows to change their representation and manipulate them according to user needs in ways it is no possible with a single document (e.g., filtering, sorting, etc.).

So, the thing that I need: a simple design for topic headers that says what board the topic comes from. That's it. Please help me make the thing that I need.

Given the predefined solution you proposed, I was trying to understand the problem behind it and the constraints in which to support these needs. I'm sorry if my information requests caused any inconvenience or delay, but I think there are still pending details to figure out even for the scope of v1. For example, it is still not clear to me if new topics from a board you subscribed should appear also in the board which would contradict your requirement of "Several topics on the board, with a green star on each (because this feed only shows topics you're subscribed to)." but would make it consistent with the behaviour of notifications where you get notified of new topics of boards you subscribed to.

I created mockups for both cases to avoid further delays:

  • Last topic being a new topic on a board you subscribed to (it shows the star in grey for the user to subscribe to the new topic if it seems relevant):

non-interest-feed.png (1×1 px, 288 KB)

  • All topics being regular topics you just subscribed to (even if the user subscribed to board X, new topics do not appear in the feed):

non-interest-feed-literal.png (1×1 px, 289 KB)

[off-topic] Which "sorting tool"?

The option to sort the topics of the board...

I added some feedback about it on Flow's talk page to avoid more off-topic comments here...

As a user watching 40,000+ pages on Wikidata, Ricordisamoa can't use Flow & Echo together.

His activity pattern: He visits his feed. There are five new threads, as listed above. He scrolls down and glances through all of them. He responds to #2 and 3. He knows that he'll want to respond on #1 and 4 later, but they're long and he doesn't have time to read them now.

He wants to use his feed as a to-do list, or a queue of conversations that he'll catch up with and respond to (if necessary) when he has time. He's dealt with #2 and 3, so he wants to "dismiss" them from the feed. This will hide those threads, so he can focus on #1, 4 and 5 the next time he comes back. If there are more posts on #2 or 3, then he'll want that thread to show up on the feed again -- but if not, then he'd rather clear them out and just see the threads he still needs to read and/or respond to.

I'm with Cronopio here! T93109#1156473

Regarding the green star, is the idea to allow users to quickly unsubscribe? In that case we should think on the possible paths to re-subscribe: (a) just let topics disappear as the user unsubscribe and find them manually if you want to re-subscribe, (b) keep topic you unsubscribed on the feed to let people change their mind until they leave the page, (c) replace the topic with an indication of unsubscription and "undo" option, (d) allow users to subscribe to boards from the feed itself.

c

ClemFlip subscribed.

Hi Friends,
We (@Pyro853 and I) are going to Mediawiki hackathon this year. We'll work on this project during the hackathon. Fell free to join us!
See you tomorrow :)

ClemFlip added a subscriber: Pyro853.