Корпоративный мессенджер slack: обзор «убийцы skype и внутрикорпоративной электронной почты»
Содержание:
- Slack 3.1.0
- Основные возможности мессенджера
- Widely-used open source libraries
- Events API
- Организуйте левую панель и настройте уведомления
- Basics
- Общение в Slack
- What can the Slack platform do?
- Cемь лет истории
- Authentication
- Почему Slack подходит для бизнеса
- Best Practices
- Ping and Pong
- Slack 3.0.0
- Недостатки Slack
Slack 3.1.0
March 9, 2018
What’s New
- We’re using a new font for Japanese. It’s clearer, more legible, and goes well with aubergine. (Which is the default color of your sidebar. As well as a vegetable.)
- Sometimes Slack takes too long to start up. If that happens, a) we’re sorry that it does, but b) you’ll now see a link with some helpful troubleshooting ideas.
- When a file’s done downloading, a new notification will dutifully let you know.
- If you’ve asked Slack to launch right when your computer turns on, Slack now does so much more quietly — with less extraneous loading screen action, and fewer fanfares.
- For Windows 10 users, we now offer the option to disable hardware acceleration. If you’re seeing glitchy graphics and other unpleasantness, try toggling this option to on.
Основные возможности мессенджера
Зачем нужен корпоративный мессенджер slack, уже понятно. Теперь рассмотрим его основные возможности. Приложение имеет достаточно широкий функционал, благодаря которому оно пользуется такой популярностью:
- Совершение мгновенной переписки и обмен файлами.
- Создание тематических чатов, каналов, с определенной установленной темой. Создатель может зафиксировать сообщение, оно всегда будет на глазах у собеседников.
- Интеграция с другими популярными сервисами аналитики.
- Наличие ботов – модераторов, фильтрующих ненормативную лексику.
- Совершение поиска в истории переписки.
- Просмотр видеоконтента, документов и фотографий, не осуществляя перехода на сторонние ресурсы.
- Боты для утилиты Slack значительно облегчают организацию многих процессов. Ботов существует очень много, и они постоянно обновляются. В зависимости от вида, они собирают необходимую информацию, группируют и высылают вам.
Помимо основных возможностей программа предоставляет клиентам еще кучу интересных предложений. Чтобы изучить их всех лучший способ – установить и начать переписываться.
Как зарегистрироваться в программе Slack? Для создания своей команды и регистрации в системе, требуется выполнить несколько простых действий:
- Ввести адрес своей электронной почты, на которую придет письмо с паролем подтверждения.
- Введите код в окне авторизации.
- Заполните поля с личной информацией (имя, фамилия).
- Придумайте пин – код и подтвердите его, желательно избегать простых комбинаций.
- Введите данные о своей компании, специализация.
- Придумайте название и создайте домен.
- Начните приглашать собеседников и коллег.
Widely-used open source libraries
Here are some popular libraries supporting a wide range of Slack platform functionality.
Looking for hosting? We have suggestions!
Library | Language | Features |
---|---|---|
SlackAPI
This library supports the Web and RTM APIs, but what’s really sharp is that it supports wrangling access tokens with OAuth 2.0. |
C# |
|
slack
Go ahead and code Slack bots and Web API clients with this library supporting the Web API and RTM APIs. |
Go |
|
slack-client
HubSpot’s carefully crafted, extensible Java wrapper around the Slack Web API includes robust rate limit handling. |
Java | |
Botkit
Use this handy bot framework from Howdy to quickly build conversational bots, for your Slack workspace and others. |
JavaScript |
|
BotMan
A framework agnostic PHP library that is designed to simplify the task of developing innovative bots. |
PHP |
|
slack-php-api
This PHP interface for the Web API is powered by our OpenAPI specification. |
PHP | |
slack-app-framework
This modern PHP-based library is inspired by the Slack Bolt framework. |
PHP | |
slacker
Python enthusiasts love this popular Slack API wrapper, with support for negotiating tokens using OAuth 2.0. |
Python |
|
slack-ruby-bot
This lovingly documented framework provides the simplest way to create bot users with Ruby. |
Ruby |
|
slack-ruby-client
Write expressive Ruby code for Slack bots and APIs that’s «right on» and real time. |
Ruby |
|
slack-ruby-bot-server
Write a complete Slack bot service using Ruby, complete with the «Add to Slack» button. |
Ruby |
|
Events API
How do I re-enable event subscriptions for my app?
If your app’s subscriptions are disabled due to exceeding Events API , manually re-enable them by visiting your application’s settings. If your app is part of the directory, use your Live App Settings instead of your development app.
When should I use the Events API and when should I use Socket Mode or the RTM API?
Choose the Events API if:
- You want to precisely scope the data you receive to just what your app needs
- You prefer or must use an inbound request model due to
a) your hosting service not being able to maintain an outbound websocket connection
b) you prefer to scale your application on an inbound request model instead of maintaining multiple long-lived websocket connections - You’re converting a outgoing webhook integration into something installable as a Slack app.
- You find the reassuring for redundancy reasons
Choose Socket Mode if:
- You’re building an on-premise integration or have no ability to receive external HTTP requests
- You’re working on a distributed or mobile application without a server backend
- You just prefer working with WebSockets. That’s cool.
- You want data feed redundancy by opening additional WebSocket connections
- You want messages to be delivered to you in real time.
Finally, choose the only if:
- You need events that just aren’t supported by the Events API
- You need compatibility with today’s existing tools
- Sending events is important for your app or bot user’s sense of self and agency
- Receiving events in absolute order is important to you.
How do I make my bot appear active and present?
The answer depends on whether you’re using the Events API with or without the RTM API.
With the Events API, you must toggle your presence by managing your app’s bot user config.
With the RTM API, your bot is marked while connected to a websocket.
See for further informationo.
Организуйте левую панель и настройте уведомления
Практика показывает, что каждая мелочь имеет значение, и правильная настройка уведомлений может улучшить продуктивность рабочего процесса. Например, вы можете выключить уведомления из оффтоп-чатов, но оставить в самых важных диалогах.
Например, я часто так поступаю, если мне нужно решить серьезную задачу, которая требует 100% вовлечения в процесс.
Итак. Настраиваем.
Выбираем File — Preferences (настройки также можно вызвать сочетанием клавиш Ctrl + ,)
Как вариант, можем поставить уведомления только при упоминании вашего имени или определенных слов («копирайтер», «дизайнер», да хоть «табурет» или «тушканчик»).
Прокрутите экран ниже и укажите конкретные слова.
Также вы можете настроить режим «не беспокоить». По умолчанию он стоит с десяти вечера до восьми утра.
Теперь давайте оптимизируем наши чаты.
В том же окне, где мы работали с оповещениями, переходим на нижнюю вкладку. Проматываем до списка каналов (Channel List).
Нажав на стрелочку сбоку, вы можете скрыть каналы, в которых нет непрочитанных сообщений. Чтобы некоторые каналы не пропадали, их можно пометить звездочкой.
Кстати, не забывайте покидать старые каналы, в которых уже не ведется переписка. Зачем засорять левую панель?
Basics
The Web API is a collection of HTTP RPC-style methods, all with URLs in the form .
While it’s not a REST API, those familiar with REST should be at home with its foundations in HTTP.
Use HTTPS, SSL, and TLS v1.2 or above when calling all methods. .
Each method has a series of arguments informing the execution of your intentions.
Pass arguments as:
- GET querystring parameters
- POST parameters presented as
- or a mix of both GET and POST parameters
- allow arguments attributes.
- [] expects , which is a fancy way of asking you to send most parameters as key/value pairs but send files in their native content type.
Some methods, like and feature arguments that accept an associative JSON array. These methods can be difficult to properly construct when using a Content-type, and we strongly recommend using instead.
URL-encoded bodies
When sending URL-encoded data, set your HTTP header to and present your key/value pairs according to RFC-3986.
For example, a POST request to might look something like this:
JSON-encoded bodies
For , you may alternatively send your HTTP POST data as .
There are some ground rules:
- You must explicitly set the HTTP header to . We won’t interpret your POST body as such without it.
- You must transmit your as a bearer token in the HTTP header.
- You cannot send your token as part of the query string or as an attribute in your posted JSON.
- Do not mix arguments between query string, URL-encoded POST body, and JSON attributes. Choose one approach per request.
- Providing an explicitly value for an attribute will result in whichever default behavior is assigned to it.
For example, to send the same request above to with a JSON POST body:
Note how we present the token with the string pre-pended to it, indicating the OAuth 2.0 authentication scheme. Consult your favorite HTTP tool or library’s manual for further detail on setting HTTP headers.
Here’s a more complicated example: Posting a message with menus using .
Note how the argument is sent a straight-forward JSON array.
Here’s how to do that with cURL:
curl example
Errors specific to passing JSON
If the posted JSON is invalid, you’ll receive one of the following errors in response:
- — The JSON you’ve included in your POST body cannot be parsed. This might be because it’s actually not JSON, or perhaps you did not correctly set your HTTP header. Make sure your JSON attribute keys are strings wrapped with double-quote () characters.
- — We could understand that your code was JSON-like enough to parse it, but it’s not actually a JSON hash of attribute key/value pairs. Perhaps you sent us an array, or just a string or number.
In both cases, you’ll need to revise your JSON or how you’re transmitting your data to resolve the error condition.
Общение в Slack
Все общение в Слаке можно разделить на 2 типа:
- Групповое общение
- Личные сообщения
Для групповых коммуникаций создают отдельные каналы, куда можно приглашать участников. Каналы бывают открытые (может вступить любой участник команды) и закрытые (доступны только по приглашению).
Личные сообщения — это тет-а-тет чаты или чат на небольшое количество человек, используется для обсуждения какого-то частного вопроса, чтобы не отвлекать коллег.
Стоит отметить, что чаты в Slack устроены очень продумано и максимально удобны.
В чате вы можете:
- Оставлять обычные сообщения
- Reply to Thread — отвечать на конкретные сообщения, комментируя их (создавая тем самым ветку обсуждения конкретного сообщения)
- Add reaction — добавлять реакции на сообщения, если не хотите ничего писать, но отреагировать необходимо
- Share message — делиться сообщением
- Save — сохранять сообщение
При отправке сообщения вы можете тегнуть (упомянуть) нужно участника чата, используя @ и ник участника. Можно также уведомить всех участников канала @channel или группу пользователей, например: @design (все дизайнеры).
Звонки через Slack
Считается, что Slack — убийца Skype. Хоть мне и кажется, что Скайп сам себя убивает стагнацией, ничего принципиально не меняя за долгие годы.
Но доля правды в таком мнении все-таки есть, ведь в Slack доступны и звонки (в том числе видеосвязь). Раньше они работали из ряда вон плохо, но в последнее время никаких проблем с качеством лично я не замечал. Более того, все чаще корпоративные созвоны проходят внутри Слака.
What can the Slack platform do?
The Slack platform offers a couple of different routes to automate and enhance your Slack workspaces:
- provide a no-code solution to automate routine tasks, using predefined triggers and steps.
- use a range of APIs to access much deeper levels of customization.
You can use workflows and apps on their own, or combine them as your needs demand. Read on to learn more and decide the best route for you.
Workflows: automate routine actions, no code needed
Slack workflows are no-code solutions that automate routine tasks in Slack. Workflows are built with Workflow Builder using a limited set of triggers and steps.
Triggers initiate a workflow. They may be user-invoked actions, like selecting a shortcut or reacting with an emoji. Or they could be automatic, like scheduled dates and times, or posting to a webhook.
Steps follow the trigger’s lead. A step can perform a basic task such as post a message into a conversation or prompt a user for short-form information in a modal.
You can build custom workflows from within Slack, or start off with templates like daily stand-ups or request triaging.
If you want greater customization and extensibility, read on to learn about apps and the surfaces in which they appear.
Slack apps: go beyond automation using APIs
Apps have access to the full scope of the platform, paving the way for more enhanced, custom, and powerful experiences in Slack.
To make this magic happen, every Slack app has access to a bag of tricks — a range of APIs that provide access to read, write, and update all kinds of data in Slack.
Some of these features mirror what users can do in Slack clients:
Send messages to all kinds of using Web APIs and webhooks.
Create, archive, and manage conversations using conversation-specific Web APIs.
Receive notifications about mentions, app home opens, and other various goings-on via Events APIs.
Create and update to give users a persistent space to interact and stay informed.
Empower users to invoke interaction at any time with shortcuts.
Open to collect info and provide a space for displaying dynamic details.
Publish interactive components in , , and to enable action and reaction.
Automate the management of users, apps, and workspaces using various enterprise-focused APIs.
They say a magician never reveals their secrets. But we’re bound to a different kind of code, so here are some revelatory guides to explore:
Learn the process of choosing features for your app with guides on planning your Slack app.
Explore how to define the look and feel of your app with guides on designing Slack app experiences.
Develop a toolset to construct your Slack apps with guides on building Slack apps.
Cемь лет истории
Slack был запущен Стюартом Баттерфилдом в августе 2013 г., а само его название – это сокращение от «Searchable Log of All Conversation and Knowledge», что переводится как «Журнал бесед и данных с функцией поиска». Slack обладает всеми возможностями современных мессенджеров, в том числе позволяет участникам команды общаться в каналах, приватных группах и непосредственно друг с другом, а также проводить поиск по содержимому бесед.
Slack умеет интегрироваться с сервисами Google Drive, Trello, Dropbox, Box, Heroku, IBM Bluemix, Crashlytics, GitHub, Runscope и Zendesk. В марте 2016 г. в мессенджер были добавлены функции голосовых и видеозвонков.
Как перевести четверть клиентов на самообслуживание? Опыт банка «Открытие»
ИТ в банках
По итогам II квартала финансового 2021 года, завершившегося для Slack 31 июля 2020 г., выручка компании выросла на 49% год к году и достигла $215,9 млн при одновременном сокращении убытков с $359,6 млн за аналогичный период прошлого финансового года до $73 млн. Компания также сообщила о 30-процентном росте количества платных клиентов год к году – из стало 130 тыс.
Authentication
How do I authenticate my requests to Slack?
By token
When working with Slack apps or Web API, you’ll often need to send access tokens, also known as bearer tokens, along with inbound requests using the query parameter.
Some of the tokens you’ll be given while going through the integration creation process. Other tokens you obtain by sending users through the OAuth 2.0 authentication flow.
When you’re working with Slack apps, you’ll be awarded access tokens after a user approves your application.
You can also obtain workspace-specific test tokens for use with the Web API using our token generator, but they should not be shared with the public or other workspaces.
By private URL
Your incoming webhooks URLs are unique for your integration or application and do not require token-based authentication. also already encode your integration or application’s identity.
Webhook URLs generated by also encode the information you need to connect, though requesting itself requires a as described above.
How do I authenticate requests from Slack to me?
Use the signing secret to compute a signature, and verify that the signature on the request matches.
Note: This process is strongly preferred over the use of deprecated verification tokens.
You can also use . Mutual TLS verifies the identity of Slack in a TLS-terminating server, before a request reaches your application code.
How does Slack authenticate its requests to my servers?
When you configure Outgoing webhooks, Slash commands and Message buttons, you specify a URL for Slack to send requests when qualifying conditions are met. Slack also provides you a token related to that integration.
Slack sends that URL a JSON payload containing a field. Compare that field to values you’ve received from Slack. See for more information.
Authorization codes must be exchanged for an access token within 10 minutes by calling oauth.access as part of the authorization flow. Otherwise, the authorization code will expire and you will need to ask the user to go through OAuth again.
How do I revoke a token?
For workspace apps, use the method to uninstall an app completely, revoking all tokens.
If you want to dispose of a single OAuth access token, use . It works with tokens from Sign in with Slack as well as from Add to Slack.
For classic Slack apps, revoking the last token associated between your application and a workspace effectively uninstalls the app for that workspace.
Members and administrators can remove your app through their workspace administration interface.
Though it’s somewhat of a nuclear option, you also have the ability to revoke all tokens from your developer dashboard by selecting your application and using the Revoke all tokens button found there.
How do I reset my client secret?
To reset your client secret, go to your developer dashboard, select the application you are concerned about, use the Change secret button found there.
Don’t forget to use your new secret when exchanging authorization codes for access tokens while authorizing users and workspaces with OAuth 2.0.
Token strings could potentially be as long as 255 characters. Historically and typically, they’ve been shorter. Learn more.
Почему Slack подходит для бизнеса
Скажу то, что думаю. Лично я однозначно буду пользоваться быстрыми командами и горячими клавишами. Плюс, планирую настроить синхронизацию с Dropbox и активнее пользоваться возможностью Slack как файлообменника.
Мне кажется, что Slack — хорошее приложение для бизнеса.
К его основным преимуществам я могу отнести:
- Простой интерфейс.
- Качественное приложение для смартфонов и таблетов.
- Настройка уведомлений.
- Чатом можно пользоваться бесплатно.
На закуску
Пока мы готовили этот материал, мы еще больше расширили свои возможности в Slack. Вот несколько новых возможностей, которыми мы начали пользоваться:
1. Интеграция с getresponse.com
Интеграция с GetResponse позволяет отслеживать ключевые действия базы. Мне не нужно специально заходить на ресурс, чтобы следить за ситуацией — все в закрытом потоке в Slack. Это удобно и экономит мое время. Особенно если у вас образовательный проекткак у меня и каждый подписчик для вас, это радость неимоверная
2. Wunderlist
Также я настроил Wunderlist, благодаря чему все мои текущие задачи транслируются в рабочий канал чата.
3. Мессенджер мессенджеров
Все это я засунул в мессенджер, который собирает другие мессенджеры: http://meetfranz.com/
Это позволяет мне быстро переключаться между основными каналами коммуникации, не отвлекаясь на посторонние дела.
Сейчас настроено 3 вкладки, почту я отключил (для меня это слишком).
Напоследок хочется дать несколько простых рекомендаций предпринимателям, которые хотят интегрировать Slack в свою рабочую среду:
- Создавайте тематические чаты — не ведите все процессы скопом.
- Настройте уведомления и оставьте в левой панели только то, что Вам нужно.
- Пользуйтесь Slack как файлообменником, чтобы не терять рабочие материалы.
- Освойте горячие клавиши и быстрые команды для экономии времени и оптимизации бизнес-процессов.
- Интегрируйте сервисы, которые сделают вашу работу более эффективной.
- Пользуйтесь поиском внутри чата: ищите материалы, реплики, людей.
- Оптимизируйте коммуникацию с помощью цитат, реакций и форматирования.
- Обеспечьте безопасность своего аккаунта.
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Best Practices
- If you’re not ready to respond to an incoming command but still want to acknowledge the user’s action by having their slash command displayed within the channel, respond to your URL’s invocation with a simplified JSON response containing only the field set to : .
- If your command doesn’t need to post anything back (either privately or publicly), respond with an empty HTTP 200 response. You should use this only if the nature of your command makes it obvious that no response is necessary or desired. Even a simple «Got it!» ephemeral response is better than nothing.
- Help your users understand how to use your command. Provide a help action that explains your command’s usage. If your slash command was , you should provide a response to that lists the other actions available.
- Keep track of the validation token Slack gives you when the command is created. Always validate the field in an incoming slash command request has been issued to you by Slack.
- Turn on by flipping the toggle in your slash command’s configuration dialog. Always work with user IDs and channel IDs.
- to avoid conflicts with other apps.
- Using multiple commands with multiple apps or development environments? Look for to differentiate which app is intended for the slash command invocation.
Ping and Pong
Clients should try to quickly detect disconnections, even in idle periods, so
that users can easily tell the difference between being disconnected and
everyone being quiet. Not all web browsers support the WebSocket ping spec, so
the RTM protocol also supports ping/pong messages. When there is no other
activity clients should send a ping every few seconds. To send a ping, send
the following JSON:
You can supply any number of extra «flat» arguments (that is: only scalar
values, no arrays or objects). These will be included in the pong message that
is sent back. For example, a client could include a local timestamp in the
ping message so it can calculate round-trip latency:
This will be included in the reply from the server:
Slack 3.0.0
December 8, 2017
What’s New
- When you’re in a lot of workspaces, the app now uses much less memory, and starting up is faster, to boot.
- And flipping between those workspaces is now faster. Not super-sonic, but certainly somewhere between a jiffy and lickety-split.
- We shunted the sign-in page out of the app — it’s now rerouted to a new window, for reasons of reliability.
- A new-fangled lock badge subtly lets you know which workspaces you’re currently signed out of. Or of which you’re currently signed out. Either way.
- Our start up screen, spruced-up and slimmed-down, is worth a gander — as is the helpful way that dates now stick to the top of a channel while scrolling through messages. Though if you don’t notice them, but quietly feel a little bit happier for reasons you can’t put your finger on, that’s cool too.
Недостатки Slack
Если вам необходима безлимитная интеграция с внешними сервисами (более 10) или неограниченный объем хранения сообщений (более 10000), Slack с точки зрения размера абонентской платы ($6,67 за пользователя или $8 в месяц) значительно уступает своим конкурентам. Однако бесплатная версия Slack предусматривает неограниченное число пользователей приложения.
Если вам требуется только безлимитный объем хранилища сообщений, вы можете аплоад сообщения в сервис хранилищ https://8d9.ru/link/mzh для последующего поиска всей своей истории переписки, при этом пользоваться бесплатной версией Slack. Поэтому при комбинации приложений Slack+Slarck этот недостаток не имеет особого значения;
Отсутствует возможность использовать собственный хостинг
Если вас беспокоит вопрос доступа третьих лиц к вашим данным, вам следует рассмотреть возможность собственного хостинга, который позволит вам контролировать место хранения ваших сообщений и доступ к хранилищу третьих лиц. Кроме того, собственный хостинг позволит вам избежать проблем, связанных со сторонними провайдерами хостинга;
Проприетарное приложение (не свободное для распространения);
Скрытая информация о максимальных лимитах числа пользователей в расчете на канал
По данным Slack, бесплатные аккаунты приложения поддерживают неограниченное число пользователей, что соответствует действительности. В то же время, Slack не сообщает, что максимальное число пользователей в расчете на канал ограничено (8462). Большим комьюнити открытого кода необходимо помнить об этом ограничении;
- Клиенты Linux чрезвычайно интенсивно используют оперативную память;
- «Нативные» программы десктопа являются веб-приложениями
Хотя Slack и предлагает приложения, доступные для установки на Windows, macOS и Linux, эти приложения являются веб-приложениями, которые упакованы в оболочку Electron и соответственно не имеют интерфейс пользователя нативного приложения;
API в целом очень беден
Не может в полной мере работать с интеграциями;
API не предоставляет возможность кастомизации виджетов в чате;
медленная работа, иногда с лагом
пока отсутствует встроенный видео-чат
Хотя Slack и не имеет такой встроенной функции, но интеграция приложения с Hangouts позволяет проводить видео-чаты. Кроме того, Slack недавно приобрел Screenhero, что позволяет предположить о скорой разработке встроенной функции поддержки аудио- и видео конференций;
Отсутствует функция подсветки синтаксиса
вам необходимо где-либо создать сниппет и вставить ссылку;
Крайне низкая производительность и постоянные сбои на установках Хромиум
Система будет постоянно подвисать и сбоить при существенном «поедании» оперативной памяти.