The-Commit-Company / raven

Simple, open source team messaging platform
https://www.ravenchat.ai/
GNU Affero General Public License v3.0
319 stars 132 forks source link

Remove the need to create Raven User #506

Closed ajiragroup closed 1 year ago

ajiragroup commented 1 year ago

I don't think explicitly creating raven user is necessary.

Raven should pull all users (system users) from erpnext and use them as raven users. Admin could be given access to disable raven for some users (via permissions) but still this might not be needed.

Raven is for communication. Everyone in my office using the erpnext needs to communicate with another one. Permissions to enter/view private messages is already controlled by raven so, denying someone access to a communication tool doesnot make sense.

Also, raven is not like accounting module where only specific staff is given access.

So, why create raven user for some one and not for others ?

nikkothari22 commented 1 year ago

@ajiragroup Earlier we didn't have the Raven User Doctype, but we noticed a few issues:

  1. The user details were being fetched from the User Doctype - and not everyone had access to that. So we had to create a role.
  2. Going forward, there will be integrations etc wherein we'll need to enforce user permissions.
  3. You also need to look beyond ERPNext to see the utility. We plan on allowing anyone to join Raven - even website users. You could potentially have a channel with your external consultants, suppliers, LMS students and so on. You don't want these to have access to the Desk, but you might want them on Raven.

Having said that, in Frappe v15, there's a new role for "Desk User". In our v15 patch, we'll automatically add any Desk user as a Raven User. We still need to improve the onboarding experience here.

ajiragroup commented 1 year ago

I believe any external party (say a supplier) would feel uncomfortable joining any other company's chat box. To get updates, they need to install their app / login to their system. Unless they fall in a ecosystem, that won't be practical. We've tried to onboard our suppliers to login to our system and create Purchase invoices for the received items so that we can process payment. We could not hold them doing so for long. We then modified our system to send email to supplier when PO is issued, where if they replied, we'd know that the items had been dispatched. This method again failed because of their non participation.

Take the example of github for ex. It sends me email when you had responded to my issues. Then I login to github and reply here. I do this because it was my issue, or I am interested in it, or it is my job or etc etc.

Why would a supplier (for ex.) bother to get updates from Raven by either installing an additional app or by logging in to my erp system ? Imagine, if the same supplier had to install multiple apps for different parties they supply to or login to multiple erp(s) from their different clients. This approach would be beneficial if the supplier could have a centralized Raven console which would get messages in different threads from multiple organizations using raven. It would then be just like whatsapp. :D

Just a thought !

nikkothari22 commented 1 year ago

Maybe a Supplier is a bad example, but what about students in an LMS system? Or if someone is trying to run a community on Raven.

Regardless of that, we still need the Doctype to control user permissions and settings and to fetch other user's details. An example would be a user wants to set their notification preferences for Raven - they would need a doctype to do that as well.

nikkothari22 commented 1 year ago

Tasks that we need to do to improve the onboarding experience:

  1. Include a setting "Add system users/desk as Raven Users" automatically - and have this checked by default. So any new users would get added to Raven automatically.
  2. Add an onboarding card on the Raven workspace.
  3. Allow users to be added from Raven itself
  4. Add a bulk Raven user addition button in Frappe so that one can add users in bulk.

I'll split this issue into these sub-issues. We definitely need Raven User though - we tried it without earlier and ran into issues with permissions.

nikkothari22 commented 11 months ago

@ajiragroup We have added a new setting that would automatically add users as Raven Users if they have access to Desk. This is configurable under "Raven Settings". Also, there's no need to create "Raven" users anymore - simply adding the Raven User role to any user will work.