New: Comment Thread

Hello! I'm very excited to announce the revamped Comment Thread component, a widget to host your conversations among app users.

Features
With Comment Thread, you can start new threads, or add new comments onto existing ones:

Every registered Retool app users would have their name and avatars available in the comment thread:

For those of you not using earlier Comments v1, one of my favorite use case is to link the Thread ID to a dynamic Retool value like {{ table1.selectedRow.id }}. Instead of copying the link or ID, switching the to your other favorite chat app and pasting it there, starting a thread right on Retool is so much faster!

With updated APIs and Event Handlers, you can send and handle submission programmatically. One of my favorite use case is to set Submit Handler to a Retool email query, and send a email notification for everyone on the thread for every new message:

Example app JSON:
comment thread submit handler example.json (13.0 KB)
Not too bad, huh?

How do I start using this
Comment Thread is available for cloud and on-prem 3.80 and above. You should be able to find it in the component library.

For those of you using the Comment v1 component, you could one-click upgrade to the new Comment Thread, and all of your existing conversations will still be available.

12 Likes

This is a great addition on long awaited comment component revamp.

I could see this being super beneficial but lacks certain features:

  • Exposing the control where to store threads and thread_comments, guessing this is somewhat doable on on-prem but on cloud lacks support

  • Ability to hide or limit certain actions (you'd want comments to be sticky after 5 minutes instead of being able to delete them at any time in point)

  • Sounds (if table was exposed you could trigger a sound for every new notification and display it in header)

  • Read only comments where sending component doesn't render

With the above two and few little TLC tweaks I could even see this replace chats in some orgs.

5 Likes

Is there a plan to add @ mentions and/or # hashtags to comment threads?

5 Likes

The mentions is very much in consideration! But no specific timeline on that yet. In the mean time, could some combination of submit handler + email work for yall? Happy to chat more on depth about how that could work!

1 Like

Very appreciate these points about making it more fully-featured! I'm also interested in how you might use this within retool app, how it'd work with other retool components as well.

Could you go into this a bit more?

Happy to do this live as well and talk through ideas.

Overall let's say there is an Incident and we wanna track progress/notes, once Incident is closed we want the comments to be read-only and completely hide input (though we could potentially do this with CSS).

2 Likes

Another absolutely massive feature it is missing is nesting, like Reddit comments. For certain use cases, this is absolutely crucial.

1 Like

Can Thread ID be a text string instead of a number?

1 Like

Hi! Nice component!
is it possible to store comments in an external database?

5 Likes

Yes, it could be a string!

Not for now. We are keeping track of feedbacks though and it's a feature request that keeps coming up!

4 Likes

Nice component, but there're two extremely important issues:

  • there should be a way to store comments data in the DB. this is the whole point of retool apps
  • files attachments (and also files should be stored in external storage)

And hashtags/mentions are also nice to have:) But the first two things are vital.

4 Likes

Tried to use a timestamp casted to string, comment gets posted - it says - but it doesn't show up in the thread. It seems a bug to me: ThreadID must somehow be truncated before saving -> no way to fetch using the "raw" id. If cannot be fixed (e.g. fixed schema), the limitation should be made public i.e. max length - or better, an error

1 Like

This is a game changer! I am really looking forward to this update!!

1 Like

I'm curious what are you trying to put in Thread ID that makes it not work?

1 Like