All Projects → mattermost → mattermost-plugin-welcomebot

mattermost / mattermost-plugin-welcomebot

Licence: Apache-2.0 License
No description or website provided.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to mattermost-plugin-welcomebot

mattermost-rtl
Adds RTL support to Mattermost
Stars: ✭ 52 (+18.18%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-antivirus
Antivirus plugin for scanning files uploaded to Mattermost
Stars: ✭ 30 (-31.82%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-zoom
Zoom plugin for Mattermost 🔌
Stars: ✭ 93 (+111.36%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-autotranslate
No description or website provided.
Stars: ✭ 34 (-22.73%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-wrangler
Manage Mattermost Messages Masterfully!
Stars: ✭ 33 (-25%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-skype4business
No description or website provided.
Stars: ✭ 15 (-65.91%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-walltime
Timezone Message Convert for Mattermost 🕛 🕒 🕕 🕘
Stars: ✭ 25 (-43.18%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-jenkins
A Mattermost plugin to interact with Jenkins
Stars: ✭ 25 (-43.18%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-google-calendar
Mattermost Google Calendar Plugin
Stars: ✭ 22 (-50%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-voice
Mattermost plugin for voice messaging. 🎤 🔉
Stars: ✭ 64 (+45.45%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-agenda
Mattermost plugin to handle meeting agendas
Stars: ✭ 20 (-54.55%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-demo
A demo of what Mattermost plugins can do.
Stars: ✭ 52 (+18.18%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-autolink
Automatically rewrite text matching a regular expression into a markdown link.
Stars: ✭ 100 (+127.27%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-alertmanager
AlertManager Bot for Mattermost
Stars: ✭ 48 (+9.09%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-custom-attributes
Mattermost plugin for adding custom attributes to users!
Stars: ✭ 26 (-40.91%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-memes
Add culture to your Mattermost with memes 🔌
Stars: ✭ 59 (+34.09%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-starter-template
Build scripts and templates for writing Mattermost plugins.
Stars: ✭ 74 (+68.18%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-github
GitHub plugin for Mattermost
Stars: ✭ 112 (+154.55%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-apps
Powers the Mattermost App Framework
Stars: ✭ 29 (-34.09%)
Mutual labels:  mattermost, mattermost-plugin
mattermost-plugin-todo
Mattermost plugin for tracking to do items
Stars: ✭ 45 (+2.27%)
Mutual labels:  mattermost, mattermost-plugin

Welcome Bot Plugin

Build Status Code Coverage Release HW

Maintainer: @jfrerich Co-Maintainer: @iomodo

Use this plugin to improve onboarding and HR processes. It adds a Welcome Bot that helps welcome users to teams and/or channels as well as easily join channels based on selections.

image

Welcome a new team member to Mattermost Contributors team. Then add the user to a set of channels based on their selection.

image

Configuration

  1. Go to System Console > Plugins > Management and click Enable to enable the Welcome Bot plugin.

  2. Modify your config.json file to include your Welcome Bot's messages and actions, under the PluginSettings. See below for an example of what this should look like.

Usage

To configure the Welcome Bot, edit your config.json file with a message you want to send to a user in the following format:

        "Plugins": {
            "com.mattermost.welcomebot": {
                "WelcomeMessages": [
                    {
                        "TeamName": "your-team-name, your-second-team-name",
                        "DelayInSeconds": 3,
                        "Message": [
                            "Your welcome message here. Each list item specifies one line in the message text."
                        ],
                        "AttachmentMessage": [
                            "Attachment message containing user actions"
                        ],
                        "Actions" : [
                            {
                                "ActionType": "button",
                                "ActionDisplayName": "User Action",
                                "ActionName": "action-name",
                                "ActionSuccessfulMessage": [
                                    "Message posted after the user takes this action and joins channels specified by 'ChannelsAddedTo'."
                                ],
                                "ChannelsAddedTo": ["channel-1", "channel-2"]
                            },
                            {
                                "ActionType": "automatic",
                                "ChannelsAddedTo": ["channel-3", "channel-4"]
                            }
                        ]
                    }
                ]
            }
        },

where

  • TeamName: The teams for which the Welcome Bot sends a message. Must be the team handle used in the URL, in lowercase. For example, in the following URL, the TeamName value is my-team: https://example.com/my-team/channels/my-channel . In the case of multiple teams, use comma separated fields. For example "my-team, my-team-2" to display the same messages for both my-team and my-team-2
  • DelayInSeconds: The number of seconds after joining a team that the user receives a welcome message.
  • Message: The message posted to the user.
  • (Optional) IncludeGuests: Whether or not to include guest users.
  • (Optional) AttachmentMessage: Message text in attachment containing user action buttons.
  • (Optional) Actions: Use this to add new team members to channels automatically or based on which action button they pressed.
    • ActionType: One of button or automatic. When button: enables uses to select which types of channels they want to join. When automatic: the user is automatically added to the specified channels.
    • ActionDisplayName: Sets the display name for the user action buttons.
    • ActionName: Sets the action name used by the plugin to identify which action is taken by a user.
    • ActionSuccessfulMessage: Message posted after the user takes this action and joins the specified channels.
    • ChannelsAddedTo: List of channel names the user is added to. Must be the channel handle used in the URL, in lowercase. For example, in the following URL the channel name value is my-channel: https://example.com/my-team/channels/my-channel

The preview of the configured messages, as well as the creation of a channel welcome message, can be done via bot commands:

  • /welcomebot help - Displays usage information.
  • /welcomebot list - Lists the teams for which greetings were defined.
  • /welcomebot preview [team-name] - Sends ephemeral messages to the user calling the command, with the preview of the welcome message[s] for the given team name and the user that requested the preview.
  • /welcomebot set_channel_welcome [welcome-message] - Sets the given text as current's channel welcome message.
  • /welcomebot get_channel_welcome - Gets the current channel's welcome message.
  • /welcomebot delete_channel_welcome - Deletes the current channel's welcome message.

Example

Suppose you have two teams: one for Staff (with team handle staff) which all staff members join, and another for DevSecOps (team handle devsecops), which only security engineers join.

Those who join the Staff team should be added to a set of channels based on their role:

  • Developers added to Bugs, Jira Tasks, and Sprint Planning channels
  • Account Managers added to Leads, Sales Discussion, and Win-Loss Analysis channels
  • Support added to Bugs, Customer Support and Leads channels

Moreover, those who join the DevSecOps team should automatically be added to Escalation Process and Incidents channels.

To accomplish the above, you can specify the following configuration in your config.json file.

        "Plugins": {
            "com.mattermost.welcomebot": {
                "WelcomeMessages": [
                    {
                        "TeamName": "staff, management",
                        "DelayInSeconds": 5,
                        "Message": [
                            "### Welcome {{.UserDisplayName}} to the Staff {{.Team.DisplayName}} team!",
                            "",
                            "If you have any questions about your account, please message your @system-admin.",
                            "",
                            "For feedback about the Mattermost app, please share in the ~mattermost channel."
                        ]
                    },
                    {
                        "TeamName": "staff",
                        "DelayInSeconds": 10,
                        "AttachmentMessage": [
                            "Let's get started by adding you to key channels! What's your role in the company?"
                        ],
                        "Actions" : [
                            {
                                "ActionType": "button",
                                "ActionDisplayName": "Developer",
                                "ActionName": "developer-action",
                                "ChannelsAddedTo": ["bugs", "jira-tasks", "sprint-planning"],
                                "ActionSuccessfulMessage": [
                                    "### Awesome! I've added you to the following developer channels:",
                                    "~bugs - To help investigate or report bugs",
                                    "~jira-tasks - To stay updated on Jira tasks",
                                    "~sprint-planning - To plan and manage your team's Jira sprint"
                                ]
                            },
                            {
                                "ActionType": "button",
                                "ActionDisplayName": "Customer Engineer",
                                "ActionName": "customer-engineer-action",
                                "ChannelsAddedTo": ["leads", "sales-discussion", "win-loss-analysis"],
                                "ActionSuccessfulMessage": [
                                    "### Awesome! I've added you to the following developer channels:",
                                    "~leads - To stay updated on incoming leads",
                                    "~sales-discussion - To collaborate with your fellow Customer Engineers,
                                    "~win-loss-analysis - To conduct win-loss analysis of closed deals"
                                ]
                            },
                            {
                                "ActionType": "button",
                                "ActionDisplayName": "Support",
                                "ActionName": "support-action",
                                "ChannelsAddedTo": ["bugs", "customer-support", "leads"],
                                "ActionSuccessfulMessage": [
                                    "### Awesome! I've added you to the following developer channels:",
                                    "~bugs - To help investigate or report bugs",
                                    "~customer-support - To troubleshoot and resolve customer issues",
                                    "~leads - To discuss potential accounts with other Customer Engineers"
                                ]
                            }
                        ]
                    },
                    {
                        "TeamName": "devsecops",
                        "DelayInSeconds": 5,
                        "Message": [
                            "### Welcome {{.UserDisplayName}} to the {{.Team.DisplayName}} team!",
                            "",
                            "**If you're not a member of the Security Meta Team and ended up on this team by accident, please report this issue and leave the team!**",
                            "",
                            "##### I've added you to a few channels to get you started:",
                            "",
                            "~escalation-process - To review the DevSecOps escalation process",
                            "~incidents - To collaborate on and resolve security incidents"
                        ],
                        "Actions" : [
                            {
                                "ActionType": "automatic",
                                "ChannelsAddedTo": ["escalation-process", "incidents"]
                            }
                        ]
                    }
                ]
            }
        },
        "PluginStates": {
            "com.mattermost.welcomebot": {
                "Enable": true
            }
        }

We've used {{.UserDisplayName}} and {{.Team.DisplayName}} in the example config.json. You can insert any variable from the MessageTemplate struct, which has the following fields:

type MessageTemplate struct {
    WelcomeBot      *model.User
    User            *model.User
    Team            *model.Team
    Townsquare      *model.Channel
    DirectMessage   *model.Channel
    UserDisplayName string
}

Development

This plugin contains a server and webapp portion.

Use make dist to build distributions of the plugin that you can upload to a Mattermost server. Use make check-style to check the style. Use make deploy to deploy the plugin to your local server.

For additional information on developing plugins, refer to our plugin developer documentation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].