Implement a Site Chat feature
Site-Chat: Add features that enable mattermost to be used by webmasters/developers to power live chat conversations in floating windows on their web sites.
This would significantly increase proliferation and adoption of Mattermost.
Ask any adopters to link back to Mattermost via a small logo/link.
Features needed would be:
1) Automate creation of a new user in Mattermost via APIs (or support SSO, as the users would already be authenticated on the 3rd party site)
2) Create a renderer to bring up the Private Message channel in Mattermost between the 2 or more users that the 3rd party site chooses, probably triggered by a user or site action e.g. a JS function on the web page of each user to join a chat given a unique session code/name. The chat should be displayed on web page in an iframe only when the chat creation is triggered.
3) Since you'd use the default Private Message channel it would be only the two or more users who communicate
4) Any chat user should be able to close his chat window and re-open it, as long as the chat session is still open.
5) Should be able to CLOSE the chat session at which point the chat is terminated, cannot be re-used, however its contents can still be viewed
6) Chat should be archived and be retrievable by the system to display on a web page to a user and to send by email to the users.
You could change the email notification logic to send a link back to the archive after the conversation.
Ticket for this feature can be followed here: https://mattermost.atlassian.net/browse/MM-10184
Enable live chat from external website. Basically a popup window that loads a certain channel, with usernames being specified like guestXXXX. That way it get's around the user registration.
Michael Mulligan commented
Keep in mind: particularities, like how you configure multiple chat web components and their behaviors, is beyond the scope of the Mattermore development team. Unless, of course, they want to develop it from the ground up.
It is much more advantageous if they build the functionality needed to do such a thing, and someone else makes the specific plugin.
Michael Mulligan commented
I kind of dig this, and could see it generalized a little bit to allow for more flexability. Instead of specifically webchat, what kind of things would Mattermost be able to do that would be general enough, but in the same vein...
The general idea is two parts, a website component that the user uses to hit Mattermost, a Mattermost plugin that handles the special functionality on it's end.
Ignoring the website component, what does the Mattermost component do?
It receives a chat initiation and establishes a Chat Session ID and associates a name with that (we will need to track the name somehow and inherently link the two). It sends the Mattermore chat to the user.
What does Mattermore need to do this?
1) Plugin Support
2) Incoming Webhook that can hit the plugin.
3) Bot Support (the external user will be represented by a bot, you can close the chat, but the chat will be archived, and can be picked up later on if the same user with the same chat session id pings you again).
4) Action Links for messages (when you configure the plugin you can tell it to automatically create a private group with a user, OR have it post to a channel. If it posts to a channel, a action link could be available like "I'll Take It" which triggers the bot to then invite you to the private group).
So, to summarize, the 4 features required for a 3rd party to make a Chat Web Component would be:
4) Action Links
Of these I think Bots are the only thing yet-to-be implemented. Someone correct me.