Previously, we used Google talk service for communication in our company. It allowed us to exchange only private messages. But we needed to communicate within teams of the projects. Therefore we also used Skype with Google talk because it was possible to create group chats there. It was quite inconvenient to use 2 services for communication at once.
Once we found an amazing service Slack which decided many of our problems.
It's more than just a chat.
Slack is a platform for communication in a company and project teams.
There are three ways of exchanging messages between team members.
It is a place where some people can communicate. Each team member can connect to public channels, see message history and write messages. These channels are available to any member of your team.
It is a very easy way for messaging. We have «general» channel for information exchange and discussions within the company, «dev-help» channel where each developer can ask colleagues a question, «sport» channel for planning sports events and many other channels. Any team member can create a new public channel and any member can join it.
These are personal messages. You can exchange messages with any member of your team.
It's almost the same as public channels. But it has one main difference: you cannot join the group unless you are invited. Nobody but the members of the group can read your messages. This is very handy when you have many projects or many tasks as you can create a separate private group for each project/task and communicate with the project team there.
When communicating we often share files, images, and snippets and it can be difficult to find them in the future. In Slack, it is implemented very simple and user-friendly. You can view the history of sent files. Also, you can easily find files using search. This is very useful because usually we accumulate a large number of files and it’s hard to find the file you need. You can see your files and files of all users which were sent to you.
When developing we sometimes need to share code. Not so long ago it was impossible to do it in the chat because inserting php / js / html / css code in Google talk or Skype does not save formatting, and there was no code highlighting. As a result, it was impossible to read the code. Almost no chats support this function and we had to use services like pastebin.com and share links which are not handy at all. In Slack, you can easily share code using snippets. A large number of languages is supported, syntax highlighting, code formatting is preserved.
When you send an image or link via Slack, it loads the preview of the image and shows it in the chat. It is very comfortable because there’s no need to switch to another program to see the image.
You can always stay connected using various devices. Slack has applications for different platforms: Mac, IOS, Android, and Chrome extension for Windows and Linux.
The main feature of Slack that differs it from other chats is an ability to integrate with the third-party services. Usually, this means that when certain events take place you receive messages from “Slack bot”. For example, if you create integration with git, then when new commits appear, you'll receive a notification of a new commit. It is very comfortable. The number of integrations with various services is more than 40 and this number grows every week.
In our team, we use integration with Git, Jenkins, and IFTTT.
If desired integration is not available in Slack, you can write your own one using Incoming Webhooks. Thus we send messages to the chat when any member of our team uses certain commands from phing to Slack channels.
Also, we use one more Slack integration. It is the Slash commands integration. Using it we can do deploys to the server stage of our projects directly from Slack. It is simply delicious.
Slack in Drupal
We were so pleased with Slack that we decided to write a module integrating Slack with Drupal. It allows you to send messages using Slack Rules or API module. For example, you can be aware of errors on the site or of new articles or new purchases and more.
Using the module
After downloading and installing the module you must configure the module here /admin/config/services/slack/config. It is enough to enter Webhook URL and you can send messages to Slack.
Also, you can fill the following fields:
- A default channel is a place where messages are sent if no other settings are specified in the Rules or when calling API functions. If you do not select any module settings or Rules, then the settings that you specified during setup in Incoming WebHooks Slack are used.
- The default username is the name of the person who receives messages in Slack.
After configuring the module you can check if it works here: /admin/config/services/slack/test by sending a text message. If the message is sent, then the module has been configured correctly.
Using Rules you can send a message to Slack. Use the "Slack send a message" action when adding new Rules.