RocketChat / Rocket.Chat

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

Livechat future features #1824

Open sampaiodiego opened 8 years ago

sampaiodiego commented 8 years ago

I'll use this issue to track the progress of the upcoming features of livechat:

Main features

Any feature request can be posted here.

Sing-Li commented 8 years ago

A few features for your consideration from @infinitnet 's analysis of tawk.to on #1797:

Thanks - @infinitnet , for your valuable input.

sampaiodiego commented 8 years ago

thanks @Sing-Li I forgot that ones.

infinitnet commented 8 years ago

Another one:

sampaiodiego commented 8 years ago

hmm.. it's a good feature.. but it generates some extra traffic. if I do it I'll make it disabled by default, so admins can enable it ;)

Sing-Li commented 8 years ago

Thanks @sampaiodiego :smiley:

Three more for your consideration from the call centers management world ...

sampaiodiego commented 8 years ago

@Sing-Li I think we need different queue types.. the actual queue only grabs the agent with less chats all the time.. I can see different use cases:

IQ2022 commented 8 years ago

LOVE THIS.. AMAZING WORK honestly.. sky is the limits for the live chat and Rocket.Chat.. think of scheduling and booking a call/meeting - and maybe premium (payments, stripe, paypal, tokens etc.)

does this also allow video/voice calling?

sampaiodiego commented 8 years ago

no video/voice calling at the moment @IQ2022 .. but could done if somebody has a real use case.

IQ2022 commented 8 years ago

+1 i guess given where everything is going with social media, live/video & voice is needed.. i guess this will be like GOOGLE chat/hangout.. Bravo..

cmcardle75 commented 8 years ago

We would love to see external routing capability. Our cloud based call centre software already knows all about agents and skills and can route phone calls, Salesforce cases etc. to appropriate agents. We would love to be able to intercept incoming LiveChat requests and route to an appropriately skilled agent, blended with all the other interactions they could be answering. This requires us to be informed of incoming chat requests (with any information available about them that could be useful for routing, such as their browser language, requested URL etc). In return, when we find a free agent, we'd tell the system which agent to route to. We'd also need to know when the chat has finished so we can keep the agent's current workload synced and know when they can take more work.

Such a feature would be useful for anyone wanting to extend the routing model for their own requirements beyond the simple round robin model already implemented.

sampaiodiego commented 8 years ago

@cmcardle75 thanks for the inputs. about the external routing capability, I think we should provide an external API, so you can code at your website to intercept incoming requests via this API, do whatever you want and using the API tell the livechat to use a specific agent. some other services have this kind of API, I think it is natural we have it too. I'll describe some of it on this issue. About telling that external app has ended, maybe we can do something with our outgoing webhooks.

cmcardle75 commented 8 years ago

That would be great! If you can get APIs for routing, and setting/getting agent state, you might end up hitting it big in the call centre business.

Most offerings out there are proprietary, don't publish their APIs and want to do the routing themselves, but they can't have the information to do this effectively as they don't know about all the incoming phone calls, cases to be answered, outbound calls to be made and the myraid other bits of associated agent state. It is also good if the agent skills can be based in a single unified place. So someone who speaks French can have the French skill once, which entitles them to answer French phone calls, French chats and reply to French emails, without having to sync everything up manually across multiple systems.

If you decide to do this (I really hope you do!) I'm sure I can help with what the ideal generic routing APIs would look like to enable easy integration into any call centre product.

sampaiodiego commented 8 years ago

@cmcardle75 I just added some description of the APIs and additionally created a new issue (#1842) to discuss it. also, please join our demo server at https://demo.rocket.chat to interact with our team.

tuudik commented 8 years ago

I didn't find an option, where agent can be anonymous for guest. Is it/will it be possible? Also, when guest is registering to use chat, why in the chat he has "guest-*" as nickname, in guest chat and for agent?

tuudik commented 8 years ago

Is it possible to have LiveChat users separately managed. I think it would be better, if they can be managed separately from Rocket.Chat users. Related to: https://github.com/RocketChat/Rocket.Chat/issues/1864

infinitnet commented 8 years ago

I second what @tuudik suggested. I was a bit surprised to see every chat triggering a registration of a new user. Should be separate. Also these guest users don't have permissions to view public channels, right?

paulhibbitts commented 8 years ago

I am loving everything that I see about Rocket.Chat so far! So much potential for educational uses too.

Can't find this issue yet, but I would hope to see some sort of change re: widget title and message box default message in the Livechat Web widget when no one (i.e. Agent) is available to chat. This is the one issue that is preventing me from including a demo of LiveChat Beta in my open source course companion built with Grav CMS to help introduce other instructors to Rocket.Chat.

Thanks for considering this issue. Paul

nonsintetic commented 8 years ago

There should also be a way to override the visual settings for the widget through the javascript code you use to embed it. That way you can use the same RC server on multiple websites (by changing the color and title for example) or different parts of the website (maybe you want a black background one one page but red on the rest).

woakes070048 commented 8 years ago

@sampaiodiego just wondering if the is ready to be used at all?

sampaiodiego commented 8 years ago

hi @woakes070048

we know a few people using the live chat feature.

we are using on our website btw (https://rocket.chat)

shtefcs commented 8 years ago

I am using it as well on http://vanila.io and I can tell you guys, it increased my communication with potential customers to the next level.

What I am currently missing is https://github.com/RocketChat/Rocket.Chat/pull/1818#issuecomment-213667025.

Also, I noticed an bug, when live chat visitor, try to register on real chat. It's cause some mixing with his profile, username, avatar etc.

frenchsquared commented 8 years ago

The current routing of sending new chat to agent with lowest count is not usable in a business environment.

Agent A and Agent B both answer 20 chats on Monday. Agent B takes off Tuesday so Agent A answers 40 chats. On Tuesday Agent B will get the first 40 chats while Agent A does nothing

Agent A starts work at 10 am and works for 1 hour taking 25 chats. Agent B starts at 11 am. Agent B will get the next 25 chats while Agent A does nothing. Will happen again at Lunch and again at any break. Picture 25 agents working different hours.

Yes someone can reset the counts, but looking at the examples above you can see how much of a waste of time that would be. I can give you another 50 examples in any given day of messes it will create.

frenchsquared commented 8 years ago

What happens when an agent leaves a room and the customer comes back?

As of now... a customer returns to the chat weeks later and they are in the same room. The agent left this room weeks ago. Agents have to leave rooms. They cannot have hundreds of rooms listed in there navigation. Now.. the customer is sitting in the room alone asking for help and no one will ever know. That will cause very unhappy customers and refunds. Need to make the tokens expire and new rooms created when no agent is in the current one. Or send the room back to rotation so a new agent can join.

AlecTroemel commented 8 years ago

For the problem concerning the routing of new chats to agents brought up by frenchsquared, a possible solution could be when a new client creates a chat, it enters a waiting pool. The chat would be visible to all online and available agents who would then "pick up" the chat. During this time the client would could be notified that are "currently trying to connect to an agent", or something along those lines. Thoughts?

frenchsquared commented 8 years ago

I like that solution

AlecTroemel commented 8 years ago

Alright, I have the basics of that solution working. Would it be best to allow an admin to choose the chat routing algorithm from multiple options (current solution, mine, others)?

sampaiodiego commented 8 years ago

yes @AlecTroemel .. that would be the best.

isapir commented 8 years ago

A couple of ideas that I think would be useful for LiveChat:

1) An ability to ban or blacklist a user based on his IP address and/or Cookie, even temporarily. Every messaging platform should have the ability to block abusers of the platform. It looks like this is possible in the chat rooms by deactivating a user account, but is missing in the LiveChat where the users are anonymous.

2) Allow to "broadcast" an incoming chat request to all available agents. In small businesses where employees wear many "hats", someone who is usually not an "agent" might want to act as one in case of high volume of requests. Think of it like waiting in line at the bank -- you have 3 tellers helping customers -- and their supervisor "doing" something in the background, but if the waiting line becomes too long, the supervisor might open a new window and become a teller herself.

Also, some agents might be in charge of chat, therefore want to handle many requests, while others might only jump in in case of high volume, so a "fair" round-robin is not always the best method of distribution.

3) Show the guests' name on the guest side instead of guest-1, guest-2, etc.

paulhibbitts commented 8 years ago

+1 on being able to block a user based on IP, and as well showing guest's name.

drallgood commented 8 years ago

What would be great is the ability to switch departments. Or maybe even department specific chats.

Once a user has selected one (upon registration) he has no way of switching to another one (i.e. to ask a fronted related question first, then a backend one)

jhovad commented 8 years ago

@nonsintetic Yes, ability to use the same RC server on multiple websites ... please!! đź‘Ť (We have multiple different online stores and each store has multiple languages...and it would be great to be able to manage them from one place.)

leonardoterrao commented 8 years ago

@TwentyOneSolutions I have implemented the item 3 that you said (the name inside guest-N). I will do pull request.

dezzzus commented 8 years ago

Hi Guys

A few days ago, I made new feature to live chat of rocket.chat in my project.

Shall I upload it? I hope it help rocket chat project. thanks

kwikiel commented 8 years ago

I would like to add multiple triggers option for livechat. Where to start? This would be my first PR to rocketchat

leonardoterrao commented 8 years ago

Hi @kwikiel! I did it

My changes are in https://github.com/leonardoterrao/Rocket.Chat Compare with the changes: https://github.com/RocketChat/Rocket.Chat/compare/develop...leonardoterrao:develop

I didn't do pull request with the changes because there are lots of changes in livechat feature. A solved all the conflicts from the new changes. I need more time to finish the implementation.

viktor-zhuromskyy commented 7 years ago

Custom CSS styling would be nice to have IMHO....

skruppy commented 7 years ago

An other feature that would be nice to see would be "agent by default".

For example, every user is an agent by default ("Default department" drop down when there is no department: "None, Agent" / "Default department" drop down when there are departments: "None, Dep 1, Dep 2, ...").

This could be extended by a role permission: "default-livechat-departement". Now, every user having a role (e.g. "user") with this permission enabled is part of the "Default department". This would prevent guests (if enabled) to be an agent :)

This feature would be useful if the user Databse is an LDAP backend. So everyone allowed by LDAP to login can instantly start working and does not have to find an manager/admin to add her to the agens list.

liebana commented 7 years ago

New in the project, sorry to bother as I don't know if this is the right place to ask... but is there any roadmap on future features? I've just get here, issue more than 1 year old... and only one of the tasks done or updated. I'm specially interested on the CRM integration.

drallgood commented 7 years ago

@all I'm working on allowing visitors to switch departments after the initial registration. Just not sure, where to put it or how the workflow would look like from a user's perspective. Any suggestions?

Right now I have integrated it into the options menu, but I'm not sure this is the right approach

See also #5998

dezzzus commented 7 years ago

you can set department on live chat.

drallgood commented 7 years ago

@alexdorn87 ? Pretty sure a visitor is not able to do that. He can pick it upon registration but there is no way to change that afterwards

9joshua commented 7 years ago

I noticed adding multiple trigger conditions on the To Do List above. We have multiple websites and need each window trigger to say something different depending on the website. There should also be a delay for the trigger. Currently, only one condition can be configured for the trigger, either a delay or a URL. Therefore it would be great to have the ability to have two conditions for the trigger like so... image I suppose there should be an 'Add Condition' button beside the first condition field that disappears after a second condition is added and an 'X' to delete the second condition if desired.

dezzzus commented 7 years ago

hi @mixrat

If you tell me more details, I can help you and make contribution. Could you let me know your skype ID, please?

designgurudotorg commented 7 years ago

+1 for multiple conditions on triggers! @alexdorn87 msg me if you need more of a functional spec.

leonardothizon commented 7 years ago

I'd like to send parameter like username, e-mail and custom filelds via URL for opening Livechat straight to conversation. I think this is related to "send pre-register form" that were said.

Is it already possible to do?

Thanks in advance!

9joshua commented 7 years ago

I'd like to send parameter like username, e-mail and custom filelds via URL for opening Livechat straight to conversation.

Definitely useful for me as well. For customers logged in to our site it would save the agent from having to ask their name and verify their identity.

woakes070048 commented 7 years ago

Agreed

On May 9, 2017 3:50 PM, "mixrat" notifications@github.com wrote:

I'd like to send parameter like username, e-mail and custom filelds via URL for opening Livechat straight to conversation.

Definitely useful for me as well. For logged in customers it would save the agent from having to ask their name and verify their identity.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RocketChat/Rocket.Chat/issues/1824#issuecomment-300281453, or mute the thread https://github.com/notifications/unsubscribe-auth/AFG2BC62krbp6VVU9dOsuahzBehRT6iaks5r4MN6gaJpZM4HAWLv .

hanselke commented 7 years ago

@leonardoterrao is your code usable?

WillGoldstein commented 7 years ago

@alexdorn87 is your feature of being able to see what a user is typing before they click send available yet?

dezzzus commented 7 years ago

@Farbed yes, of course