Live-Chat capabilities

Hey folks :smiling_face:
I hope you’re doing well.

I’ve been using Cockpit for quite some time now, and it’s being used live for various pages. I really enjoy Cockpit for it’s simplicity and the ability to expand it’s capabilities according to what you need.

However, there’s one feature which gets more and more common on modern company pages. And that’s a live support chat window.

Note
I think this is something that could be developed by the community in the form of an addon for Cockpit. I’d do just that, but PHP just isn’t my thing.
But if my idea is something that will eventually be developed, I’d immediatly develop a frontend component, Vue based or vanilla JS, for you to use.

Live-Chat in Cockpit

UI

/ (Dashboard)


/chat/pending/

/chat/handled/

/chat/view/

Opens at click of the second column (text content) of either a pending or a handled request.

Endpoints

Method Endpoint Params / Headers Description
POST /api/chat/sendMessage Authorization, MessageBody, RequestID (optional) Allows the user to send a message. If it’s the first message in the conversation, a new Request gets generated. The used receives the Request ID in the API response so he can send more messages and get answers to that specific chat.
GET /api/chat/getMessages Authorization, RequestID User receives Array of Objects. Each object is a chat message and contains params such as sender and timestamp.

:warning: The RequestID Parameter has to be a non-guessable string (high length, random chars, not countable, …) because if the Request ID is guessable, other random users could hijack the chat.

Possible frontend implementation

Example: Adobe

TL;DR

  • I think this feature would be really nice to have, especially for using it on company websites
  • I’d absolutely be down to code a MIT licensed frontend component for it

Have a nice day everyone! 🚀
- Jamo

Hey Jano,

I get the idea, but wouldn’t it make sense to make a collection called “chats”, in combination with a collection called messages? Combine those with the power of Cockpit (API out of the box) and you have everything to make a live chat. You would only have to make two views which show the not handled and handled chats. Maybe that is already possible? (not THAT familiar with Cockpit yet)

Mostly adding this because I think a plugin would be overkill, unless you have a lot of clients using it - but that would mean it would be a good idea to make the plugin yourself :slight_smile:.

Hope this helps a bit and curious what you end up with!