RocketChat / Rocket.Chat

The communications platform that puts data protection first.
https://rocket.chat/
Other
39.1k stars 10k forks source link

Threads #1112

Closed pnewell closed 5 years ago

pnewell commented 8 years ago

Is there a thread package available that works like Flowdock has that allows people to reply to certain messages and group them?

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

geekgonecrazy commented 8 years ago

@pnewell currently there aren't threads. By nature chat is going to be with out threads. This could be tricky to implement. And do we really want to convert real time chat into a forum style?

gmsecrieru commented 8 years ago

+1 for @geekgonecrazy

pnewell commented 8 years ago

If you make a demo at Flowdock, you can see how they implemented it. It is really smart. It doesn't make it a forum per say, it is just a way to group conversations within conversations.

For our case, we work in support, and there is a constant flow of questions coming in to confirm our products features among reps. So sometimes we have questions and answers coming in at the same time, and it becomes hard to keep track of what answer is related to what question.

Flowdock allows you to reply directly to another message, so the flow of the chat looks the same as rocketchat, but messages that are related show different colored dots next to them so people can track which chat is replying to which chat.

image

pnewell commented 8 years ago

Of course in this example, I am having a conversation with myself lol

geekgonecrazy commented 8 years ago

@pnewell Interesting.. So it doesn't actually group them inline. Just indicates which post its in reply to?

pnewell commented 8 years ago

So if you click on the little colored icon, it takes you to a page with just the messages in that thread. That part of it is not as important to us, but not bad to have either.

image

jots commented 8 years ago

I like this idea. what is the UI for choosing if you are starting a new thread or replying to an existing? hopefully there is a way to do it via keyboard, i.e. hit ctrl-R before entering text and it pops up a list of recent threads to choose from, otherwise it is a new thread?

pnewell commented 8 years ago

You can sign up for a free account here: https://www.flowdock.com/

No credit card needed and you can play around with it. To answer your question, every message has an icon that appears when you mouse over next to it that you can click to directly reply to it.

image

If you don't click this when making a new message, it will start a new "thread"

timokorkalainen commented 8 years ago

Indeed threads are the reason why I very much prefer Flowdock over any other chat platform. They really, really make any longer discussions much easier to grasp: properly used threads allow users to be aware of the context of any message without the use of hashtags or other explanations. This is also why they suit organisational discussions so well, where looking back at the discussions later on is much more common than in everyday chit chat.

Perhaps a simple way to at least test out the threading feature could be to just add a field to the message model that contains the id of the message that started the thread. Then all the messages in a thread could be displayed by selecting messages with the same "thread field" value and order them with time stamp.

Somantiq commented 8 years ago

Zulip does it right imo. Look at this screenshot https://blog.okturtles.com/wp-content/uploads/2015/10/zulip-screenshot-preview.jpg taken from here https://blog.okturtles.com/2015/11/five-open-source-slack-alternatives/

It is still the simple chat I love but you can easily see which context (e.g. "thread") each message is posted in, and see it grouped where it makes sense. Especially for integrations with other apps I think this is a killer feature. We use Slack at work currently (I tried to push RocketChat ;-) but lost) and I can tell you it gets messy fast.

Also I believe the archived messages will one day be a treasure trove once we have a usable AI, and the threads give each message a semantic context - priceless.

ProdigyMaster commented 8 years ago

@Somantiq @pnewell +1

honnel commented 8 years ago

@Somantiq @pnewell +1

mateuszszulc commented 8 years ago

+1 from our perspective this is really a killer feature which every web-based communication tool must have.

bb010g commented 8 years ago

Telegram's take on replies is pretty good. It doesn't stick threads in separate sections, but sticks a preview of the message above the reply that you can click on and go back to, along with overlaying a button to return. It keeps the linear ordering but allows for easy following of concurrent conversations.

ywecur commented 8 years ago

Anybody got any ideas about how to implement this? I'd love to help but I don't know where to start.

ulope commented 8 years ago

Zulip's "topics" (I believe thats what they call them) and their Dashboard stream are the features I miss very much after switching to Rocket. They make it very easy to have lightweight grouping of messages within a channel without adding much noise or overhead

jmatsushita commented 8 years ago

+1 for threads!

Charuru commented 8 years ago

Mattermost has this implemented well too.

vikaskedia commented 8 years ago

+1 for threads

+1 for mattermost implmentation

I would be happy to write code to implement this,

rchikballapur commented 8 years ago

+1 for threads too!

geekgonecrazy commented 8 years ago

@vikaskedia we take pull requests :smile: feel free to take a crack at it! :+1:

hwinkel commented 8 years ago

:+1:

chihoko commented 8 years ago

This really is a core feature that is enticing our users towards Mattermost, their implementation is excellent.

DreadKnight commented 8 years ago

There's another free open source chat that I kinda like which does it like Flowdock from what I can tell (never used Flowdock myself, but checked the previous comments), hopefully it will help a bit: http://scrollback.io

hvma commented 8 years ago

+1 for threads. implement and you will get higherED institutions on board - hurry before they give in to Slack or Mattermost :)

peterdalydickson commented 8 years ago

Just wondering... is this under active development? Can we help? We are long term users of Flowdock, though as an open source company I always prefer to use open source tools where appropriate. Rocket Chat appears to tick all the boxes, though threaded conversations is the #1 reason we've never moved to another chat system.

geekgonecrazy commented 8 years ago

@peterdalydickson This isn't currently being worked on. We're still trying to determine how to best implement it. If you have ideas, please share. We're looking to get as complete of a picture as we can before implementing this.

peterdalydickson commented 8 years ago

Not sure I can add any more to @pnewell's initial post and follow up clarification, and without in-depth knowledge of the rocket.chat codebase I'm not sure I can contribute any worthwhile ideas of how to implement!

Perhaps you could distinguish between 'primary' messages in a channel, and 'follow up' or 'reply' messages?

Every 'follow up' message contains both it's own id and the id of the primary message it relates to.

This way, I can either see all the real time communication happening in the channel, or effectively filter to see just the real time communication that's in relation to the primary message.

Does that make sense?!

peterdalydickson commented 8 years ago

This jing video might bring it to life a bit more...

http://screencast.com/t/4slXgL6mu

hoshposh commented 7 years ago

Worth noting that while threads are ideal we have found that in Slack we have a limited thread implementation via attachments (files, snippets and posts), and being able to apply comments (threaded conversation) to those attachments.

Jluisito commented 7 years ago

+1 for threads. Mattermost has a good implementation of this feature, and Slack is on it.

bjoseph1 commented 7 years ago

+1 for threads

mciverza commented 7 years ago

+1 for threads

bb010g commented 7 years ago

@mciverza GitHub added the :+1: reaction for a reason. Just press it on the main post instead.

KptnKMan commented 7 years ago

+1 for threads! I've used Flowdock significantly and recently moved to RocketChat. Threads are the single thing I miss most.

Please bring this, it would be amazing!

ElNovi commented 7 years ago

Mattermost have best solution for threads

Xqua commented 7 years ago

This is just a rough idea on how to make it happen

on the json object of a message, add a "parentID:messageID" which is the message ID of the parent and a "isChild:Boolean" to avoid n+1 level of discussions (though this is a UX debate, should there be 1 level 2 level n level ?) Finally maybe a "hasChild:Bollean" to make icons appear only if the parent has childs, which is redondant with the fact that you could find if it does, but would clearly speed up rendering.

On the main channel, check for the above properties and modify the display accordingly

for each message {
  if (msg.isChild == true) {
    //display icon or something
  }
  if (msg.hasChild == true) {
    // display arrow icon, or see messages ?
  }
}

function onParentClick (parentmsg) {
  result = [];
  for each msg in room {
    if (msg.isChild == true) {
      if (msg.parentID == parentmsg._id) {
        result.push(msg);
      }
    }
  }
}

Something along those lines ?

Though, I don't know enough about the architecture of RC, and this is maybe obviously wrong ?

martinpengellyphillips commented 7 years ago

Used Flowdock at a previous company and the thread implementation is definitely something I miss now I'm in RocketChat.

I prefered Flowdock's approach over Mattermost's as it maintains the flow of messages whilst allowing you to narrow focus to a particular topic quickly. The main issue encountered with Flowdock's approach was that it was easy to accidentally start a new thread rather than replying to the one you meant to and at the time there was no way to correct that quickly.

asthomasdk commented 7 years ago

Also +1 for threaded messages!

We often have several conversations going on in the same channel - and very often individual conversations will drown as new messages are posted and new topics are raised. This can also make it very difficult for anyone who has not actively been keeping up with the flow of messages in a channel to both keep up and stay engaged in a topic.

I know this does not help much on the tech side ;-) But thought it would be useful input.

litewhatever commented 7 years ago

+1 for threaded messages :)

mikkojarvenpaa commented 7 years ago

+1 for threads. I'm speaking for an entire company in saying that threads are what has kept us solidly with Flowdock, despite trying to move over to Slack multiple times because it's supposed to be better/hype/out-of-the-box integrations. Assuming that synchronous messaging shouldn't have threads is like assuming there's only one conversation going on in a physical office space at any one time.

heejit commented 7 years ago

We want to use rocket chat as our internal communication tool but we need threaded communication as we have lot of support request which need to follow up and we want user to comment and once done we can close it in chat system we are not able to follow up properly currenly we have mixed of chat + forum

Rocket chat is perfect for us if threaded communication feature added to it

Appreciate rocket chat team for very use full open source software

vpetersson commented 7 years ago

+1

engelgabriel commented 7 years ago

https://slackhq.com/threaded-messaging-comes-to-slack-417ffba054bd#.jseyendl4

image

lukerohde commented 7 years ago

Please don't implement threads. Slack's threads suck. I'm pretty sure the obsession with threads is a false consciousness. And however you implement threads, half of the people who want them will hate your implementation.

Dracozny commented 7 years ago

If it were implemented I think it should be done as an optional component. Not every group needs this but it's a nice to have for development groups. I might suggest this down to a channel level option, not just an administrator level one.

KptnKMan commented 7 years ago

@lukerohde Really if you have nothing useful to contribute, just stay out. This is clearly a thread promoting implementing thread functionality.

@everyone-else, please don't feed trolls.

lukerohde commented 7 years ago

Yep I was trolling. Sorry. We want to move off slack on to Rocket.Chat so we can roll out chat more broadly. The only thing holding us up are a few of us who think we need threads. I don't agree as we've found slacks threads really interrupt conversation and make things hard to follow. It's frustrating.

The consensus amongst the thread lovers is flowdock's approach is the way to go. But this is basically just coloured tags. Message tags would have other utility and could serve a similar purpose. I hope this contribution is more constructive. And sorry again for being a jerk.

brylie commented 7 years ago

@KptnKMan it is perfectly reasonable to offer a dissenting viewpoint in a community discussion. Please treat people who might not share the same viewpoint with the respect they deserve.

KptnKMan commented 7 years ago

@brylie I was perfectly respectful of his opinion, and I honestly think you should read back over his first input. He had nothing useful to add, and and I was being directly honest about that.

There is nothing wrong with what I said. This is a feature request thread.

Update: Just wanted to add, I really agree with the followup explanation from @lukerohde I have also recently switched from Flowdock to Slack, and the implementation of Flowdock's thread is much much better, simpler and less distracting. 👍