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

Grouping of Chats #2448

Open
szaimen opened this issue Nov 10, 2019 · 14 comments
Open

Grouping of Chats #2448

szaimen opened this issue Nov 10, 2019 · 14 comments
Labels
1. to develop enhancement feature: api 🛠️ OCS API for conversations, chats and participants
Milestone

Comments

@szaimen
Copy link
Contributor

szaimen commented Nov 10, 2019

Please notice: I hope you are with Nextcloud Talk not heading into the direction of Microsoft Teams/Slack because I think my proposal has advantages over what Microsoft Teams and Slack are doing.

Is your feature request related to a problem? Please describe.
When trying to use Nextcloud Talk for work, currently you are ending in a lot of chats for every topic, that are put together in one list with private messages etc, which is something you probably don't want.

Describe the solution you'd like
Grouping of Chats. So that you are able to create a "Superchat", where you can invite people or usergroups to. When clicking on that "Superchat" you then see a list of topics in a second level.
(also in an "chatlist" but you should always show just one level, so you would need a "Go Back" arrow in the top left to show, that you are in a second level; placed next to or directly on the back-arrow, you could probably also show a notification dot or count how many new messages have arrived in the chatlist level on top)

Every People and usergroup that you have invited to the "Superchat" should then see automatically every topic from the "Superchat", but you should be able to blacklist or whitelist people or usergroups for each topic alone (or for more than one topic at the same time through a bulk selection).

e.g. If you create a new topic, all people and usergroups, that are invited into the "Superchat" automatically join all topics. Only if you blacklist them during the creation of a new topic or afterwards, they don't have accessrights and don't join the topic.

One advantage would be, that topics with new messages would arrive at the top of the chatlist inside the "Superchat" and you have always automatically the same people inside each topic, when not manually changed. So it is just really easy to create a new topic with the same people for each new case. (Archiving should also be possible...)

The private chats would then be at the first chatlist level, normal group chats and the "Superchat" too. Topics of a "Superchat" would be on the second level. New messages inside a "Superchat" would then be grouped together in a notification counter for the Whole "Superchat" on the first level. When you are on the second chatlist level with the topics of a "Superchat", all new messages in other Superchats or private chats or normal groups are then grouped together in a notification counter next to the "go back" arrow.

BTW: If you ask because why not adding another 3rd chatlist level: I think everything is already possible with 2 Levels. Since if you have another group of people you then create just another "Superchat" with these people. A 3rd Level would make everything more complicated and much harder to use.

Describe alternatives you've considered
I think this second chatlist level is needed to really make Nextcloud Talk userfriendly and useful for work and not that cluttered.

Additional context
If you haven't understand my proposal or wonder how this could work, please feel free to ask!
I have thought that through.

@szaimen
Copy link
Contributor Author

szaimen commented Nov 11, 2019

BTW: File or folder conversations could also benefit from this, since they are currently also spamming your chatlist if you are having many conversations on different files:
I think they should also get grouped together into a "Superchat" but probably without the possibility to invite people or usergroups to this "Superchat" directly.

The same would in theorie apply to private chats or group chats but I think it makes more sense to let them stay on the first chatlist level.

@nickvergessen nickvergessen added this to the 💔 Backlog milestone Nov 13, 2019
@sunjam
Copy link

sunjam commented Nov 13, 2019

Perhaps some part this kind of proposed chat grouping could be handled via Projects functionality as it continues to evolve. See this discussion for a Project Manager.

@phileastv
Copy link

phileastv commented Mar 9, 2020

This is definitely an interesting idea but I'm not sure to understand it at 100%. Are you able to create multiples "Superchats" to discuss different topics ? If yes, this is pretty similar to what Twist - a slack competitor - offers.

This is what Twist organisation looks like

Level 1 : You create multiples Channels for each topic with their own permissions options.
Looks this is what you call a "Superchat", from what I understood.

Level 2 : In thoses Channels you create Theads.
Threads can be seen to all people who are added in the corresponding channel. Like when you described Topics.

Level 3 : In each topic you send classic chat messages, like an actual Talk conversation.

What I didn't understood in you first idea, was if you can send "classic" chat messages in Level 2 and 3. In Twist, Level 2 are in fact threads.

But, is this even a good idea ?

The Twist-like organisation looks awesome to me (I never actually used it, but it definitely make every subject easily findable). But I think it requires a bit of work to actually find the best way of how to split different subjects in different levels. It is not a straightforward solution, especially for users who just want to chat freely of random things, since you have to create a thread every time you want to discuss a new subject.

When I read issues like #2450 and #1469 , it seems like talk developers do not want Talk to implement "Threads-like" conversations (which I think is a shame). So that level of message splitting is maybe a bit too much for now.

This is what Twist UI looks like :

image

@szaimen
Copy link
Contributor Author

szaimen commented Mar 18, 2020

Hm yes, it is actually a bit comparable.

This is a mockup how it could look like:

Either this way (should be easier to implement)

First level: (Normal Chat)
image

Second level: (if you click on the Superchat)
image

Or this way (which would probably much more work and harder to get right on mobile)

First level: (Normal Chat)
image

Second level: (if you click on the Superchat)
image

IMHO my first way is the cleaner solution but doesn't use the available space that efficient.
But the second way would bring a lot of problems with it. So I think I would go with the first one.

@szaimen
Copy link
Contributor Author

szaimen commented Mar 19, 2020

@phileastv I think the biggest difference between my idea and Twist is that I wouldn't seperate "Threads" or how I call it "Superchats" from Messages/Normal Chats, so that you have just one list for Normal Chats and Superchats how I showed it in the Mockups.

@biva
Copy link

biva commented Jul 21, 2021

I think that what Mattermost proposes is a very nice idea to group threads within what they call collapsed thread: https://mattermost.com/blog/collapsed-reply-threads-beta/

@szaimen
Copy link
Contributor Author

szaimen commented Dec 13, 2022

Telegram introduced recently a very comparable feature like the by me proposed one which is named Telegram Topics:

https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups

https://telegram.org/blog/ultimate-privacy-topics-2-0#topics-2-0

@Murazaki
Copy link

I think that what Mattermost proposes is a very nice idea to group threads within what they call collapsed thread: https://mattermost.com/blog/collapsed-reply-threads-beta/

AS mush as thread helps having conversation in the same place, they don't fix the per subject + privacy issues of a multi topic work group. It seems important to find a way to compartimentalize conversation per type for teams, even inside the same team in a company.

@nickvergessen
Copy link
Member

@Murazaki
Copy link

Murazaki commented Dec 6, 2024

I'm afraid the solutions offered lately from #13403 and #13947 look a lot like email folders and filtering : local manual labeling of chats, user search based differenciation.
What coworkers need though is a shared ecosystem of channels, so that coworkers can redirect each other to the right ones without having to search the whole server (and personal chats).

@eldelacajita
Copy link

eldelacajita commented Dec 6, 2024

I think this approach of superchats > sub-chats (as in @szaimen mockup) or chats > threads (like in Twist) is onto something.

I see a great opportunity here to address both "grouping" of chats and the general demand for "threads" that is being proposed elsewhere. And also the document-related chats like @nickvergessen suggested. The main and shared goals would be to:

  1. avoid having too many disordered chats in a huge, unwieldy list
  2. avoid having conversations around the same topics scattered across each chat's timeline

I think a certain type of "threads as sub-chats" could provide an even cleaner, better experience than "threads as linked replies inside a chat" (Slack style). For that to happen, I would introduce some nuances into @phileastv and @szaimen ideas:

  • The sub-chats would be called "conversations" or something similar that implies that those are not meant to be fixed spaces like channels, but can be created, closed or just left behind at any point. And that you can have as many as you want without that complicating the general experience. More like email threads than like chat rooms.
  • When entering a new message or reply in a channel, the UI would nudge you towards either opening a new sub-chat, or replying to an existing one. See below how Zulip and Discord solve this. This is important because it's what helps keeping the communications clean and ordered.

Two additional references for this:

Zulip

Zulip is very interesting it how it handles "threads as sub-chats". It's very opinionated: it doesn't want you to post anything unless you frame it inside an existing or new conversation or topic. This (only apparent) limitation is actually its main strength.

Image

Some highlights:

  • Channels appear on the left sidebar.
  • Sub-chats are inside channels, and are called "conversations".
  • Unread "sub-chats" appear on the sidebar, grouped under each channel. The rest are shown when you enter the channel itself.
  • When you enter a channel, it shows the contents of all sub-chats (conversations) in a central, chat-like timeline. It's very easy to reply to one of those or entering it for a focused view.
  • When you enter a message, there's a field on top of it that shows/asks you where that message is going. It's at the same time a search field for existing conversations (sub-chats) and a field for entering a new conversation.
    • Image
  • If a message turns off-topic, it's very easy to move it to an existing or new conversation. This is key.

Discord

Discord has normal chats with Slack-style "threads as linked replies", but also has a more opinionated type of chats that are entirely based on "threads as sub-chats".

Image

Some highlights:

  • Channels are on the left sidebar.
  • Sub-chats are inside channels, and are called "publications".
  • Inside a channel, there's no regular timeline-based chat, there's just a list of "publications", which are like threads or sub-chats.
  • At the top of that list, there's a search field where you search for an existing topic, or just create it on the fly if there's none.

So, learning from those examples, posting a message would be done by:

  1. Entering a channel.
  2. Writing the topic in the reply field (or a similar field).
  3. Finding existing sub-chats (conversations) to reply to, or creating a new one.
  4. Writing the actual reply.

But, if Talk took this approach... what about those cases where you just want to mindlessly reply in a chat without bothering about keeping conversations separate? (I guess there's a use case for being loose and chaotic, too).

  • it could be done in a "general" sub-chat inside the channel (doesn't require additional implementation)
  • there could be an option in each chat for turning it from a normal chat into a channel with sub-chats (more complex to implement)

What about file-related chats?

  • Those could just be automatically treated as sub-chats or conversations in a system-created "document" or "shares" channel.

@nickvergessen
Copy link
Member

@nickvergessen
Copy link
Member

It is mostly about creating a "parent"/category level similar to Teams, Google Chat and the others.
Best graphic is:

And basically we should have a default category for calendar-event rooms, file rooms and one-to-one rooms

@eldelacajita
Copy link

eldelacajita commented Dec 6, 2024

"Threads" refers to different concepts, depending on the software.

If by "threads" you mean "Slack-like in-chat threaded replies" then yes, I understand they are not part of this discussion. I was only mentioning them because I think that, by implementing the kind of sub-chats discussed above, the need for "Slack-like threads" would be also solved (just in a different way).

But if it adds confusion, I'll edit out any mention to the "threads" concept.

It is mostly about creating a "parent"/category level similar to Teams, Google Chat and the others.
And basically we should have a default category for calendar-event rooms, file rooms and one-to-one rooms

If I understand correctly, you are saying that this topic is only about adding some section headers in the sidebar to group chats underneath them. That would be a great improvement by itself (and combined with Slack-like threads, solve some of the needs addressed by the proposals discussed here), but it doesn't seem to be what @szaimen and others were suggesting here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop enhancement feature: api 🛠️ OCS API for conversations, chats and participants
Projects
None yet
Development

No branches or pull requests

7 participants