Recent changes to the Slack platform
We improve the Slack platform every day by releasing new features, squashing bugs, and delivering fresh documentation. Here's an account of what's recently happened. This is our #changelog
.
We tweet about most of these updates from @slackapi, but we also offer this wonderfully antiquated RSS feed. Slack, the service and product, has its own changelog too.
Use the slash command: /feed subscribe https://api.slack.com/changelog.rss
to receive these updates in a Slack channel of your choosing.
Recent important updates:
- Apps New Slack apps, with subtler permissions and more intuitive behavior, are now the default when you create an app. Get started by building or migrating.
- APIs Apps created after February 24, 2021 will no longer be able to send
token
as a query parameter. All existing apps require no changes. Learn more. - APIs Apps will now be able to unfurl links anywhere in Slack. Learn more.
- Apps Alongside upcoming changes to the Events API, you'll find numerous new features: a new
authorizations
field delivered with events, a new method for listing installations, a new scope—even a new token type for working across an entire organization. - Apps Starting February 24, 2021, event payloads will no longer contain full lists of
authed_users
orauthed_teams
. Instead, you can call a separate method if you need a full list of parties an event is visible to. Read up on the upcoming changes here. - APIs We are deprecating all
channels.*
,groups.*
,im.*
, andmpim.*
Web API methods in favor of their Conversations API replacements. Migrate toconversations.*
as soon as possible, as these deprecated methods will retire on February 24, 2021. Read on. - APIs Beginning June 10th, 2020, all newly created Slack apps will be unable to use the deprecated methods in
channels.*
,im.*
,mpim.*
, andgroups.*
. Existing apps have until February 24th, 2021 to migrate to the Conversations API. Learn more. - Apps Reach a whole new world of workspaces: build an app that can be deployed across an entire Enterprise org.
Consult scheduled changes for additional future-looking changes.
Here are the 296 changelog entries logged since November 2015.
January 2021
- Apps Socket Mode supplies your app with events and interactive feature payloads over a dynamic WebSocket URL. Read more on the new way to skip static, public HTTP endpoints—now supported by all SDKs.
December 2020
- Apps Submissions to the App Directory now require Security & Compliance information. Read more in our submission guidelines.
- Apps Reach a whole new world of workspaces: build an app that can be deployed across an entire Enterprise org.
November 2020
- APIs Apps created after February 24, 2021 will no longer be able to send
token
as a query parameter. All existing apps require no changes. Learn more. - APIs Apps will now be able to unfurl links anywhere in Slack. Learn more.
October 2020
- APIs The admin.analytics.getFile method returns compressed JSON files with workspace member analytics for the day of your choice—now available for Enterprise.
- APIs App modals can now be 'popped out' by users, giving them their own resizable, movable window. No app changes are needed, we just wanted to pop in with an update.
- APIs To simplify time input for users, we added a new time picker element to Block Kit.
- APIs Block Kit checkboxes and radio buttons are now available to use in messages. Quickly and conversationally collect information from users by including them inline.
- APIs Gather data from users directly from your App Home—input blocks can now be added to Home tabs. Additionally, input blocks can now dispatch
block_actions
payloads when someone interacts with them. Read about the newdispatch_actions
flag. - Apps We refreshed the look of your app's listing in the App Directory. Among the changes: a Features tab shows your app's entry points—like shortcuts and slash commands.
September 2020
- Apps We updated our developer policy and API terms of service to clarify language around export controls and international data transfers. Here are the changes.
- Apps Alongside upcoming changes to the Events API, you'll find numerous new features: a new
authorizations
field delivered with events, a new method for listing installations, a new scope—even a new token type for working across an entire organization. - Apps Starting February 24, 2021, event payloads will no longer contain full lists of
authed_users
orauthed_teams
. Instead, you can call a separate method if you need a full list of parties an event is visible to. Read up on the upcoming changes here. - APIs On September 29, 2020,
view_submission
andblock_actions
payloads will begin including fullstate
for messages, modal, and App Home views. Learn more. - APIs On September 15, 2020, you'll no longer need to worry about different global and local IDs for Enterprise users. Users will have a single, global ID across an Enterprise org, which may begin with either
U
orW
. Read more. - APIs In responses from the
search.messages
method, four fields—next
,next_2
,previous
, andprevious_2
—that sometimes appeared are now deprecated and will no longer appear in responses, beginning December 3, 2020. Let us know of your questions or concerns. - APIs Get a handle on creating channels, setting preferences, and connecting new workspaces—all with a single app. Use the APIs for channel management, available to Enterprise Grid organizations.
- Apps We slightly changed your App Home's appearance by refreshing the default text style and how hint text is displayed. We hope you'll enjoy it.
August 2020
- Apps Users may now mute and unmute their conversations with apps like they can with other channel types. When a user mutes a conversation with your app, the messages you send are still delivered and a colorful badge will continue to surface in their channel list. However, users will not receive a direct operating system or browser notification on delivery.
- Apps Slash command invocations will now include an
api_app_id
parameter with your Slack app's ID. This parameter will better assist you in handling commands from multiple applications or environments.
July 2020
- Apps New header blocks let you provide stronger delineation between groups of content in your app surfaces. Stay ahead of the game by learning how they work.
- Apps Expand Workflow Builder's capabilities by creating reusable, custom steps that any builder can add to their workflows. Workflow steps from apps is now in open beta. What’s your app’s next step?
- Apps Previously, when a user mentioned an app that wasn't party to the conversation, the user could
Invite
the app to the conversation,Let Them Know
, orDo Nothing
. TheLet Them Know
button didn't work. We've fixed that mistake by removing the button, and updated our documentation on theapp_mention
event as well. - APIs Mark messages unread for users with
conversations.mark
. Bespoke clients and personal utilities should use this method sparingly. - Tools The URL where users manage existing installations of Slack apps is changing to
https://app.slack.com/apps-manage/
. You might not even notice the difference, but we’re letting you know just in case.
June 2020
- Apps You can now present your app's pricing information in your listing in the App Directory.
- Apps With Slack Connect, channels connect multiple workspaces and organizations with ease. Here's an overview of how to develop apps for channels between organizations.
- APIs A change to
user_change
events: we've fixed a bug where these events dispatched to subscriptions from all workspaces in externally-shared channels. Now,user_change
events are dispatched only to the home workspace of an externally-shared channel. - APIs If you create a new Slack app and use deprecated methods like
channels.info
,im.list
,mpim.history
, orgroups.archive
, you'll now receive amethod_deprecated
error. Existing apps will receive warnings but still have until February 24th, 2021 to migrate to the Conversations API. Learn more. - APIs Maintain a membership allowlist for private channels using
admin.conversations.restrictAccess.addGroup
,admin.conversations.restrictAccess.removeGroup
, &admin.conversations.restrictAccess.listGroups
methods, now available for Enterprise organizations. Update: These methods were renamed but the old names will continue to work. Black lives matter. - Tools We recently updated Block Kit Builder with additional preview options and more convenient ways to copy, paste, and dispatch payloads. There's more beauty to it too.
May 2020
- APIs The deadline for all Slack apps to use the Conversations API—instead of its antecedents—has moved from November 2020 to February 24th, 2021. Newly created Slack apps won't be able to use
channels.*
,im.*
,mpim.*
, orgroups.*
methods beginning June 10th, 2020. Warnings will soon be included as part of deprecated responses. Learn more. - APIs Use the Calls API to hook your calls natively into Slack. Catch up on Calls.
- APIs Legacy tester tokens may no longer be created. Existing tokens may continue to be used, regenerated, or revoked. Tokens left unused for three months or more will be regularly revoked. Learn more from our February 2020 announcement.
- APIs Complete your IDP groups with custom default channels, courtesy of the
admin.usergroups.*
API methods. - APIs Starting July 1st, 2020, rate limits will apply to all SCIM methods. Please make sure any apps using the SCIM APIs remain within these limits and humbly handle HTTP 429 responses.
April 2020
- APIs A more direct route to messaging in response to modals: the new
default_to_current_conversation
field allows yourconversation_select
andmulti_conversation_select
menus to be pre-populate the currently open conversation. - APIs The shortcuts button is now available for all Slack workspaces, so we're taking global shortcuts out of beta.
- APIs Previously, OAuth Redirect URLs could contain anchors (
#
). We've fixed that mistake, and anchors are no longer allowed. - APIs Beginning June 10th, 2020, all newly created Slack apps will be unable to use the deprecated methods in
channels.*
,im.*
,mpim.*
, andgroups.*
. Existing apps have until February 24th, 2021 to migrate to the Conversations API. Learn more. - Apps Visually highlight destructive actions by using the new
style
parameter in confirmation objects. - Apps Give app installers good reason to trust your app: submit security and compliance information to the App Directory today.
- APIs SCIM API endpoints now have clear, explicit rate limits. Read all about them here.
March 2020
- APIs Tune out the noise—you can now use filters with conversation lists in select and multi-select menus. Learn more and start filtering.
- APIs Give users clear entry points to your Slack app with Shortcuts. App Actions are now called message shortcuts. They're joined by new global shortcuts that allow users to initiate interactivity from anywhere in Slack. Learn more here.
- APIs The IDs returned by our APIs have grown longer. They are now up to 11 characters long, and could grow longer in future. Please audit your Slack apps, and verify any assumptions about the length of IDs for users, channels, and other objects.
- APIs We didn't turn off the
replies
array field found in threaded parent messages on October 18th, 2019 like we said we would. The new date is March 31st, 2020. Please use thereply_users
,reply_users_count
, andlatest_reply
fields instead. - Apps Fair is fair: radio buttons now support
mrkdwn
formatting, just like checkboxes.
February 2020
- Apps New guidelines for App Directory submissions have arrived to help ready your app for the world.
- Apps Using two new scopes, your Slack app can adjust its message authorship and post in any public channel.
- APIs The creation of legacy test tokens is now deprecated and will permanently retire on May 5th, 2020. Learn more about using Slack apps to build firmly scoped integrations.
- APIs Starting February 18, 2020, unexpected results using the SCIM API when rapidly updating data on the same user or group will become a thing of the past.
- Apps It's a win for webhooks: you can skip the small stuff and trigger a workflow with a web request.
- Apps Check another item off your Block Kit wishlist - we've added a checkbox group element to modals and Home tabs for your multiple choice input needs.
- Apps You can submit information to the App Directory on your app's privacy policy, data retention, security tests, and compliance with major laws. Read our blog post on the new Security & Compliance feature, now in open beta.
January 2020
- APIs Our new emoji APIs allow Enterprise Grid Admins and Owners to add, remove, list, rename, and alias custom emoji across the entire Grid organization. :tada:!
- Apps New Slack apps, with subtler permissions and more intuitive behavior, are now the default when you create an app. Get started by building or migrating.
- Apps Your app's new Home tab is out of beta. Design a comfortable place for users to get work done using Block Kit Builder and publish them for users using
views.publish
. Get started by diving into the Home tab docs. - Apps Give users a key to directly open your Home tab. Read our updated deep-linking guide to see how you can create links to specific tabs in your App Home.
- APIs We are deprecating all
channels.*
,groups.*
,im.*
, andmpim.*
Web API methods in favor of their Conversations API replacements. Migrate toconversations.*
as soon as possible, as these deprecated methods will retire on February 24, 2021. Read on.
December 2019
- Docs We didn't set out to produce almost 700 pages of documentation but you can search it all now on api.slack.com/search.
- Apps New Slack apps may now be submitted to the App Directory. Check out our guide to migrating your existing app to use new, granular permissions.
- Apps Place useful limits on multi-select menus using the new
max_selected_items
parameter.
November 2019
- Apps Your App home is going mobile — you can now interact with an app's Home tab from iOS and Android clients. We recently published a new App home tutorial to help you build, or you can read the Home tab docs.
- Apps Help users make informed decisions when considering your app by listing the languages it's fluent in and any pricing model that applies to it. You can provide this info as part of the Slack app directory submission process.
- APIs You can now use Block Kit radio buttons in modals, in addition to Home tabs.
- APIs We're removing the misleading and undocumented
guest_channels
field from user profile objects belonging to guest users. Theusers.conversations
method is an accurate way to query the channels a guest user belongs to. - APIs Slack has but one REST API, the SCIM API, and it's now fully standards-compliant with SCIM 1.1 when using the HTTP PATCH method to update user records.
October 2019
- Apps Your apps have always needed a better home, right in Slack. Now apps with bot users can use Block Kit with a new surface called the Home tab. Learn how to use this new space to provide users with a persistent place for dynamic experiences.
- APIs Radio is alive and well in Block Kit. Obtain a simple, singular choice from users using our new radio button elements.
- APIs Craft a workspace faster than a cup of coffee and fill it with users, admins, and owners. Check out the APIs for creating workspaces and managing users, now available for Enterprise Grid organizations.
- Apps New Slack apps can act independently of a user token. Build a bot user powered by only the specific permissions it needs. Check out our open beta for newly created Slack apps.
September 2019
- APIs Announcing new pastures for Block Kit beyond messaging: trigger dynamic modal interfaces to provide linked user experiences invoked from messages, actions, or slash commands.
- APIs Embrace procrastination — allow users choose from multiple options in interactive workflows. Use new multi-select menus in all your Block Kit surfaces.
- APIs This autumn or soon thereafter, users will begin editing messages using a WYSIWYG (what you see is what you get) interface. When they do, their posted messages will appear slightly different throughout our APIs. Learn more.
August 2019
- APIs Two new events,
channel_shared
andchannel_unshared
, now notify your app when a channel is shared or unshared. - APIs A single admin app can now approve or restrict other app installs across an entire Enterprise Grid org. Get a little meta, and a lot more time-efficient, with the APIs for app management.
- APIs As previously announced,
pins.add
will stop accepting file and file comment IDs beginning August 22, 2019. Similarily,reactions.add
will no longer allow file and file comment parameters. Nowadays, apps and users pin & react to messages about files instead. - Apps On March 4, 2020, we'll require all apps, custom integrations, bots, and users communicating with Slack to use TLS version
1.2
or higher. There will be a 24 hour test deprecation on February 19th, 2020. Read more details on why and how to upgrade. - APIs Channel names have grown up: instead of a maximum length of 21 characters, channel names may now feature a full 80 character label.
July 2019
- APIs Host files wherever you please, while you add, update, remove, share, and unfurl them in Slack. Read up on the new Remote Files API.
- APIs Enterprise Grid admins may now use the
admin.users.session.reset
method to wipe a user session, logging out a user whose device may have been stolen or compromised. Learn more about the new method, as well as the new scope required to use it.
June 2019
- APIs Your app may now encounter channels shared between workspaces on Enterprise Grid. As a result, it's even more important to use the Conversations API methods to safely handle channels both shared and unshared.
- APIs Using the SCIM API's GET /Users or /Groups methods? Their
count
parameters will no longer accept values above1000
beginning August 30, 2019. Learn how to prepare. - APIs As announced on March 25, the
dnd.teamInfo
method now requires theusers
parameter. An explicit list ofusers
helps you, and us, avoid slow API calls.
May 2019
- APIs As previously announced, the
files.comments.add
andfiles.comments.edit
methods are retiring today. Also, files may no longer be pinned to channels. Thepins.add
method will no longer accept files or file comments beginning August 22, 2019. - Tools Better built-ins. Nifty type hints. Easier RTM event handling. Build for the future with the new Python SDK V2.0.0, lovingly crafted with Python 3.
- Tools Want to build a Slack app with JavaScript? Use the Bolt framework. Effortlessly bolt listeners onto events. Minimize boilerplate to post messages, forming a beautiful bolt of conversational cloth. Leverage TypeScript to autocomplete code faster than a lighting bolt. Go ahead, bolt toward Bolt.
April 2019
- APIs Parent messages in a thread will no longer explicitly list their replies. Instead of a large
replies
array containing threaded message replies, we'll provide a lighter-weight list ofreply_users
, plus areply_users_count
and thelatest_reply
message. These new fields are already available. We'll remove thereplies
array onOctober 18, 2019March 31st, 2020. Read up on threaded messages here. - APIs Make your app a better listener with the
app_home_opened
event. When a user enters a conversation with your app, you can trigger a friendly onboarding flow, a whimsical welcome message, or a deep-dive into dialog. Read more. - APIs Retrieve all active incidents, rather than just the most recent one, using version 2.0.0 of the Slack Status API. Read more.
- Apps Buttons in message blocks have gained some color. Use the new
style
field to visually compel and alert users. - APIs We're returning a more descriptive
limit_required
error when you callusers.list
orchannels.list
for teams containing tens of thousands of responses. To avoid the peril of errors entirely, use pagination.
March 2019
- Tools Taking a novel approach to pagination, the v5 release of our Slack SDK for Node.js supports Node v8 LTS and above. It also splits the client into three separately installable packages optimized for speed and bundle size. Work with other languages or frameworks? Browse other tools built for you.
- APIs When querying
dnd.teamInfo
, theusers
argument is required beginning June 3, 2019. Future-proof your app by explicitly listing whichusers
you wish to see Do Not Disturb settings for. - APIs Harness a hint of time travel for your app. Schedule messages for delivery at the time of your choosing.
- APIs We're starting to enforce (more firmly) the 5GB file upload limit for workspaces on a Free plan. Some API endpoints will yield tombstoned files with the content redacted. Read more.
February 2019
- APIs We're retiring the
files.comments.add
andfiles.comments.edit
methods on May 22nd, 2019. Learn more. - APIs We're loosening up limits on dialogs. You can use five extra elements (ten total) and lovingly label them with longer lengths of letters.
- APIs When your exacting maths require the precise number of members party to a particular conversation, use the new
include_num_members
parameter withconversations.info
. - Apps Build better messages with Block Kit, a set of building blocks for simple messages and vast, interactive workflows. And, build messages better with Block Kit Builder.
- APIs We're limiting legacy tester tokens by revoking them when they're left unused for several months. As a pleasant counterpoint, our method testers let you bring your own token now.
January 2019
- Apps Apps endure, even when their installing user leaves the team—as long as the app doesn't perform actions on behalf of the installing user. Read up on the new behavior, which rolls out to free, paid, and Enterprise Grid teams over the next week.
- APIs Conversation objects associated with shared channels now feature a
conversation_host_id
field, indicating the workspace or enterprise grid organization that "hosts" the shared channel. - APIs We're erasing the
shares
attribute from "shared channel" conversation objects. In methods likeconversations.history
and the Events and RTM APIs, enjoy a lighter-weight list of theshared_team_ids
representing the teams across which the conversation is shared.
December 2018
- APIs Post replies in a thread with incoming webhooks: the
thread_ts
parameter now puts your webhook reply in its proper place. - APIs The data structure of messages received from our APIs will change with the launch of Block Kit early next year. In return you'll be able to add newer, clearer visual components to make your app's messages magnificent. Even if you aren't using it, your apps may be affected by the additions. Learn more.
October 2018
- APIs Apps may now restrict Web API requests to as many as 10 IP address ranges. Learn more about IP whitelisting for internal integrations.
- Preview The developer preview for workspace apps has ended. We're taking the components of workspace apps and breaking them apart: applying them in phases to existing as well as new apps. Read more about the motivation behind ending the preview.
September 2018
- APIs As public channels become private, they now retain their original channel ID. Legacy methods like
groups.list
andchannels.list
don't support these transitional channel types and Conversations API methods must be used instead. Learn more. - Preview Whatever flavor of workspace token you're using, you can now expect the same
invalid_auth
error code when the token is invalid. You'll receive this error whether the token is expired, revoked, or just plain wrong. Use our OAuth 2.0-based token refresh system to refresh expired tokens safely.
August 2018
- Preview Workspace apps may now continuously rotate shorter-lived tokens without downtime. Our OAuth 2.0-based token refresh system is strongly recommended for all workspace apps. Expiring and rotating tokens is required for all distributed workspace apps. Already manage a distributed workspace app?
Please implement token rotation by January 15, 2019. Learn more. - APIs Clear clever custom statuses like clockwork. Learn how apps can add expiration dates when setting custom statuses for people.
- APIs We're postponing planned changes around scope requirements for app and bot access to email addresses. The new date is in autumn, on October 16th, 2018. If you haven't already prepared, read on.
- Tools Dialogs now follow a separation of callback and state. Read more about the new
state
parameter and how it differs fromcallback_id
. - Tools Verifying requests from Slack just got easier: our Node Interactive Messages SDK, Node Events API SDK, and Python Events API SDK now verify request signatures automatically. Learn more.
- APIs "40k ought to be enough characters for any message." - Slack Platform Gatekeepers. Messages are now limited to 40,000 characters. Learn more about these planned changes.
- APIs Your workspace app can use the new
apps.uninstall
method to uninstall itself from a single workspace, revoking all tokens associated with it. To revoke a workspace token without uninstalling the app, useauth.revoke
. - Preview It's official: workspace apps can reach out to and converse with anyone using the new
conversations.app_home:create
scope. No more fumbling with conversation IDs or different methods: just plug the user's ID intochat.postMessage
and go. - Preview If your workspace app posts ghostly messages with
chat.postEphemeral
, you may have noticed ano_permission
error thrown instead ofchannel_not_found
when your app isn't a member of the target conversation. Turns out we actually could find the channel after all. - Apps We updated our Slack App Developer Policy and API Terms of Service to provide more detailed guidance, but we have not made material changes. The new policy is effective August 31, 2018. Together, we keep Slack a safe, private and secure platform for work. Learn more.
July 2018
- APIs Pagination rules the nation and the Slack API. These methods newly support cursors:
files.info
,groups.list
,im.list
,mpim.list
,reactions.list
, andstars.list
. For apps created after August 7, 2018, results will be returned in perfect, piecemeal pages by default. Learn more about pagination. - Tools With Slack Developer Tools you can now quickly look up documentation, investigate the structure of messages, and more, all inside of Slack.
- APIs Commenting on files is now just like replying to a message. All developers working with file objects, events, or comments should read on to learn more, much more, about file threads.
- APIs HTTP requests originating from Slack now support Mutual TLS. Use Mutual TLS to attain the highest level of confidence that requests from Slack are, in fact, authentic. Read more.
- Preview Get ready to lend users a hand and start working on their behalf. Now workspace apps can ask for permission to read & write personalized settings like reminders, custom status, and profile data. Learn more about working for users.
- Apps Our recently launched message actions are now available for use in all Enterprise Grid workspaces and any Shared Channels within them.
June 2018
- APIs Confidently verify a request originates from Slack by validating our new request signatures. The signing process replaces the use of verification tokens, now deprecated. Learn more.
- APIs We expect file threads to arrive after July 19, 2018. Do you manage a Slack app relying heavily on files or file comments? Join our pilot program and prepare your app for file threads ahead of the transition. Learn more about what's changing.
- APIs Learn when private channels are deleted with the new
group_deleted
event, now available for the Events and RTM APIs. - Preview The Conversations API now supports workspace apps, using three simplified scopes:
conversations:history
,conversations:read
, andconversations:write
. We recommend upgrading your apps in developer preview to the Conversations API as soon as possible. Learn more.
May 2018
- APIs Beginning October 16, 2018 the
users:read.email
scope is required to retrieve theemail
field from user profiles while using user or workspace tokens. Consult our previous announcements on this topic from 2016 and 2017 for migration tips and some historical perspective. - Apps Adding contextual actions lets users send specific messages to your app at will. Here are some amazing things our partners do with actions. This blueprint demonstrates the ineffable synergy of using actions and dialogs together.
- APIs We're compiling a humble library of JSON schema about the Events API into a kind of open specification called AsyncAPI.
- APIs Newly-issued bot user token strings are a little longer than before. Building for the ages? Plan for token strings containing up to 255 characters.
- Preview Apps participating in our developer preview using the Events API will need to subscribe to
message.app_home
events for a focused feed of messages between your app and the people who interface with them through the app home. These messages aren't delivered tomessage.im
subscriptions now. Learn more. - APIs File threads, a replacement for file comments, is on the way! Learn about the changes ahead, some of them may break apps relying on file comments behavior and some apps may need to request additional scopes when working with files.
April 2018
- APIs Measure drop off and send helpful follow ups when users cancel dialogs with these opt-in cancellation notifications.
- APIs Have a bot user token you don't need or want to use anymore? Now you can use
xoxb-
tokens withauth.revoke
. - APIs We're still tidying up the character limits on the
text
field of posted messages and gradually lowering its maximum. On April 25th, we began truncating messages greater than 500,000 characters. As of July 12, the maximum is 100,000. We'll begin truncating messages greater than 40,000 characters in August 2018. Learn more. - Preview Your workspace token-based apps in developer preview must now request the
files:write
scope to upload & manage files instead offiles:write:user
. Existing access grants are backfilled. Know your read & write rights. - Preview Working with workspace token-based apps as part of our preview? Please start using
oauth.access
instead ofoauth.token
during installation. Read on to learn why and about new features. - APIs Some bots are users too. Now you can find a bot user's
user_id
withbots.info
. - APIs Enhance your dialogs with dynamic form elements "borrowed" from message menus. Learn more.
- APIs Rediscover the conversations you're party to with
users.conversations
.
March 2018
- APIs We corrected and clarified the behavior of
users.profile.set
to only allow admins of paid teams to update email address profile fields. - APIs We added a
type
field to the requests dispatched to your Options Load URL, used in message menus and— well, it doesn't work anywhere else yet but we'll have a dialog about that one day... - Tools This significant upgrade to the Slack SDK for Node.js modernizes one of the most widely-used Javascript libraries on our platform with strong typing, more intuitive method signatures, and comfortingly predictable release cycles. It also sheds its aging DataStore, which has not evolved in tandem with the realities of building apps for today's workspaces. Learn more about upgrading in our announcement.
- APIs We are continuing to decrease the maximum number of results returned by
members
arrays returned inchannels.*
andrtm.start
, with the limit currently set to 500 results.conversations.members
provides paginated access instead. Read this October 2017 announcement for detail. - APIs Web API methods will be enhanced with tiered rate limiting beginning March 7, 2018, with most methods gaining greater limits than ever before. Learn more about this week's incremental rollout of rate limit tiers.
- APIs Now you can follow up after users submit your dialogs. Use the new
response_url
attached to anydialog_submission
to send messages after submission.
February 2018
- APIs Now users can respond to dialog textarea elements with up to 3,000 riveting, carefully-chosen characters.
- APIs Events API rate limiting has matured, now allowing apps up to 30,000 event deliveries per workspace per hour. Having trouble keeping up? Event deliveries will only be disabled when apps drop below a 5% successful response rate. Learn more.
- APIs The
users.setActive
method was recently rendered irrelevant by our efforts to modernize our message servers. Useusers.setPresence
and/or connect via RTM to proclaim a user's presence instead. We'll remove this no-op method entirely on May 8, 2018.
January 2018
- APIs Catch up on recent changes to presence in the RTM and Web APIs and changes to come, including the deprecation of
users.list
'spresence
parameter. Read on. - APIs Having trouble connecting to the RTM API lately? WebSocket URIs may contain querystring parameters & some libraries don't like that. Find out more.
- Preview Workspace token apps in developer preview now must request the
chat:write
scope to post messages. Existing access grants are backfilled. Read on, developer previewers! - APIs Active listening made easier: Subscribe to
app_mention
events to exclusively receive messages mentioning your app or bot. - APIs Now shared channels can be made private and the implications are well worth considering, especially if assuming channel IDs beginning with C are public. Read on.
December 2017
- APIs For those moments when your app knows a user's email address but hasn't met them on Slack yet: now apps with
users:read.email
can useusers.lookupByEmail
and skip wading throughusers.list
. - APIs Turn your links into buttons by adding link buttons to your messages.
- Tools Storyboard, mock, and play make believe with these useful design templates starring your favorite platform features.
November 2017
- APIs Use
chat.getPermalink
to easily exchange a messagets
for a permalink URL. - APIs Why couldn't bot users use
bots.info
? We don't know but now they can too. - APIs Help people get back to work by deep linking to your Slack app or directly to a channel.
- APIs When a workspace migrates to Enterprise Grid, existing users are given a second global user ID. Now you can bulk convert those with
migration.exchange
and turn off your app's translation layer, living the dream of one user ID per user. - APIs Do what you like with this OpenAPI 2.0 specification of our Web API. Relatedly, most methods now contain more helpful response examples. More specs and coverage on the way. Read on about our API spec.
October 2017
- APIs Send JSON when posting to Web API write methods. Gone are the days of perfunctory errors when sending lovingly crafted JSON to
chat.postMessage
and other methods. Read on. - APIs We broadened support for presenting your tokens as a "bearer token" in
Authorization
HTTP headers with the Web API. Learn more. - APIs We removed the
latest
,unread_count
, andunread_count_display
fields from limited contexts of the new Conversations API. They weren't really supposed to be there. You won't find them spuriously lurking in the shadows again. We don't anticipate any issues but let us know if you find any. - APIs The
members
array found in many Web API methods likechannels.list
andrtm.start
is now truncated. We continue to lower the maximum results returned. Please Useconversations.members
to manage memberships instead. Read on to learn more. - Docs Scheduled changes and feature retirements to the Slack platform are now easier to find in our forward-looking calendar of upcoming changes.
- APIs The RTM API's
presence_change
event requirespresence_sub
subscriptions beginning November 15, 2017. Read on.
September 2017
- Apps Ask users for more structured form-based information with Dialogs.
- APIs Now you can customize your app's experience by the locale and language preferred by users, channels, and other conversational constructs. Start practicing your Klingon. 🖖 Learn how.
- Apps Shared Channels let Slack apps collaborate with users across different organizations.
- Apps The Conversations API is a collection of more than 15 Web API methods normalizing the way apps deal with channels, direct messages, and more. Never rely on the first character of a channel ID again.
- APIs The role of
@username
is changing on the platform but we're making the transition as backwards-compatible as possible. Read on for important updates. - Docs We are clarifying two terms encountered throughout Slack, "team" (the people you talk to in Slack) and "workspace" (the place you do work). You'll find many team references updated to workspace across Slack and API documentation. With artifacts like the
team
object, field, and parameters scattered through the platform, you'll often still encounterteam
while reading and programming. - APIs No more sad panda 🐼 because we fixed it — Now the outgoing webhook response payload includes a
thread_ts
attribute so you know if the message is triggered in a thread!
August 2017
- Apps Batten down the hatches! Further secure your internal integrations by restricting token use of Web API methods to specific IP addresses you trust: IP whitelisting is here.
- APIs Improve your custom unfurling flows with these enhancements to authenticated unfurls and
chat.unfurl
. - APIs No longer the sole domain of slash commands and interactive messages, now apps can emit their own ghostly ephemeral messages with
chat.postEphemeral
. - APIs Temporary rollback: We've reinstated access to the
email
attribute for bot and user tokens. On August 1, 2017 we proceeded with limiting email access to user tokens withusers:read.email
, originally announced in November 2016 and again, with a revised plan in April 2017. - Preview Our developer preview for a new kind of Slack app based on workspace tokens is open. Learn how to work with workspace tokens and about our new Permissions API. Our announcement covers the story behind the token.
- Docs With so many token types decorating our platform, this guide to token types has become a necessity.
- Docs Now we allow you to learn more about OAuth permission scopes and methods, events, and token types each supports with this helpful OAuth scope library.
July 2017
- APIs Shuttle Slack app installers to the installation flow more swiftly from the app directory with a Direct Install URL.
- Tools Our little changelog has its own RSS feed now. Learn how to subscribe to updates in your Slack workspace.
- APIs Buried somewhere in this RTM announcement, we told you about the
latest
field departing from channel objects returned in the longrtm.start
preamble. Those fields are gone. Turns out we also removedunread_count_display
andunread_count
too. If you're suffering from a sense of loss over these unread count fields, please drop us a line. You can still find them inchannels.info
. - Apps Your app has a home in Slack. Read all about it!
- Apps Teams now have the option to limit Slack app installation only to apps listed in the Slack app directory.
- APIs We're introducing a unified cursor-based pagination model to many of our Web API methods beginning with but one: now you can drink from
users.list
one delicious sip at a time.
June 2017
- APIs Get an event when more members join your User Group or when — uh-oh, it loses members with
subteam_members_changed
. - APIs Do you work with
presence_change
events in the RTM API? Learn about new ways to subscribe and consolidate presence events here. - Tools We've compiled a collection of Best Practices around building fantastic Slack app user experiences. Your users will be stoked!
- Tools We've turned a light on for you and your development team: App Blueprints are like recipes for building the internal integrations your team needs to succeed.
- APIs We've corrected a long-standing bug where user or
@channel
-type mentions in back-tick fenced code blocks would trigger notifications. They won't now. - Apps We've made very minor improvements to our OAuth-based installation process. You may notice a shifted pixel here and there but no app-facing functionality has changed.
- APIs Just like subscribing to your app's own newsletter: App Events tell the story of your app's lifecycle. Learn when your app is uninstalled with
app_uninstalled
, or when user and bot tokens are revoked withtokens_revoked
. Pause and resume activity when teams migrate to Enterprise Grid withgrid_migration_started
andgrid_migration_finished
.
May 2017
- APIs We undocumented the mysterious
user_id_mapping_old_to_new
field described in the Enterprise Grid documentation. It doesn't actually exist and never has, oops! - Apps Slackbot wants to help spread the word about your cool Slack app. Add a little HTML to your site and we'll suggest your app when your links are mentioned. Learn how to make your app discoverable.
- APIs You'll soon see fewer
message.channel_join
andmessage.channel_leave
message subtype events in the Events API and RTM API. Instead, you'll find these new refreshingly direct and informative events:member_joined_channel
andmember_left_channel
. Here's the whole scoop.
April 2017
- APIs That old
channels.list
API method has a new parameter:exclude_members
. Some teams are so big and some channels have so many members that listing them all in a single API response along with every other channel is just outright impractical. Cull unneeded data easily accessed withchannels.info
by excludingmembers
fields. - APIs We'd like you to stop using
rtm.start
and start usingrtm.connect
instead.rtm.connect
boots quickly and works well with the most gigantic teams and enterprises of the galaxy. - APIs It's spring cleaning time for email. We're winding down the grandfathering introduced for apps using
users:read
created before January 4th, 2017. AfterAugust 1st, 2017your apps must requestusers:read.email
to gain that access. See this post for more detail. This retirement has been delayed with no date yet rescheduled. - APIs Observe the custom status of team members with
users.profile.get
. Update a user's custom status withusers.profile.set
. Learn how to sync status with calendars, cubicles, conference calls, and bathroom stalls. - Apps More ways to make messages interactive than before: introducing message menus. Define your options statically, dynamically, even personally — or use our handy conversation, channel, and user pickers. Don't forget your field guide.
March 2017
- APIs As with the humans operating them, user objects change over time. With the new
updated
field, decisively learn last time a user object transformed. Look for it in methods including (but not limited to)users.list
andusers.info
. It's an integer value depicting seconds since the epoch. - Apps We're introducing new, multimedia ways for bots and apps to express themselves in the app directory. Follow our new guidelines to make a great impression with potential installers.
- Apps Provide users posting links with all the context and interactivity they need, right in Slack. Introducing Slack app unfurling. Here's the announcement!
- APIs Beginning March 9, 2017, events transmitted via the Events API will include
event_id
andevent_time
fields.event_id
is globally unique across all teams while theevent_time
is when the event dispatched, in integer-based epoch time. Use these fields as you like, but there's nothing you need to do to prepare for this eventuality. - Apps We made it easier to create and manage your Slack apps. And if you're building internal integrations for your own team, there's a better way to install your app without worrying about the OAuths. Check it out.
- APIs Looking for custom integrations? They're documented as legacy now. They still work like you're used to but we'd prefer you built your internal integrations as part of a Slack app instead.
February 2017
- APIs Minor field changes coming to
channels.history
file messages andskype
user profile fields. Read all about it.
January 2017
- APIs You have the tools and the talent — now you have the opportunity: Learn how to develop for Slack Enterprise Grid. Here's the announcement for the suits.
- APIs Now your app can read, write, and party with message threads. Rolling out to teams over the next few days, message threads are a perfect place to tuck your wonderful workflows. Here's our announcement.
- APIs This new year's resolution is a minor slash command revolution: a backwards-compatible, familiar, and decisive means to resolve user IDs, channel IDs, and links from references in slash command invocations. Learn how to turn on this helpful, long-requested feature.
December 2016
- APIs Now everyone's bot is present and accounted for. Events API-only bots can toggle online presence by visiting their app management command center. Details worth catching up on: bot user presence.
- Apps We made it so Slack apps have a profile within Slack like humans do — Here's an announcement tweet.
November 2016
- Apps Let's extend a warm welcome to new
app_id
fields now appearing in our APIs.app_id
is now found inrtm.start
&bots.info
. You'll also findapp_id
in thebot_added
&bot_changed
events. What's anapp_id
? It's the alphanumeric string found in the URL bar while managing your Slack apps. - APIs We've added a new OAuth permission scope called
users:read.email
. Apps created after January 4th, 2017 will need to request this additional scope to gain access to team memberemail
fields when usingusers.list
andusers.info
. Existing Slack apps withusers:read
are automatically grandfathered to include these fields. Here's even more detail on that. - Docs Now you'll find links to practical tutorials and thoughtful articles displayed beside relevant documentation found here on api.slack.com. Discover new articles or browse them by topic in our new Tutorials hub. Written something great? Tell us about it!
- Tools Our developer relations team has renewed Slack's adoption of key open source tooling: Slack Developer Kits. Discover our Python & node.js SDKs in their new home on our community index.
October 2016
- Apps Your elaborate Slack apps are no longer shackled to but just one team member. Now you can invite other team members to be App Collaborators to share in the fun and responsibility. Here's what our web log has to say about it: Build together with App Collaborators
September 2016
- APIs We will soon add an additional
response_metadata
node to our JSON responses; we'll put warnings there first and other useful stuff later. More details are available. - APIs Newly issued OAuth token strings are longer than they were before, as we informed you about last month. Let us know if this vexes you.
- APIs Now you can use the
users.profile:write
OAuth permission scope to reset and upload profile images usingusers.deletePhoto
andusers.setPhoto
. - Apps We've dramatically improved the process of submitting a Slack App for inclusion in our Slack App Directory. You'll find a helpful, interactive checklist when first submitting your app. When you're ready to iterate further, you can simply create a secondary beta application. If a core piece of your app's functionality changes (like requesting new OAuth permission scopes), we'll happily review your app again. Read all about it on the platform blog.
August 2016
- Apps Ever needed to send a user to Slack directly from your app? Here's how to deep link and make native Slack clients part of your app's workflow: Open key teams, channels, and conversations. Or, defer to search results using the slack:// URI scheme.
- APIs The character length of token strings is getting longer. Find out how long they'll get and how to future-proof yourself for changes in the future.
- APIs You may encounter an occasional user ID beginning with the letter
W
. We've released a new version of node-slack-sdk to correct a related bug. Read more about these changes. - APIs Introducing the Events API, a new way for Slack apps to receive event types previously available only to the real time messaging API. Subscribe to the events your app needs and have them delivered right to your server as they happen. Build a bot or event-driven app without worrying about websockets, and scale it like a web app. Read more about the Events API in our blog post, Subscribe to the Events API.
July 2016
- APIs Until now, it's been easy to accidentally send messages flush with hundreds of message attachments. We've begun limiting the number of message attachments per message to 100. For approaches like
chat.postMessage
, incoming webhooks, andchat.update
, andresponse_urls
you will receive atoo_many_attachments
error. Unfortunately, we are unable to serve you an error when sending messages as part of a slash command or message buttons invocation response. - Apps If you're interested in listing your Slack App in our directory, you'll want to review our new Slack App Directory Agreement and consider our Security Review Process. Find these and other policies in our new Slack App developer policy hub.
- APIs We've corrected a bug where incoming webhooks could post messages in "#general" even 1) if that channel restricts posts and 2) the user owning the webhook was not allowed to post there. This new behavior will only prevent recently created webhooks from posting to restricted "#general" channels, so if your old webhooks are relying on this quirk, they'll be fine for now.
June 2016
- APIs Now your applications can read and write defined team profile fields for individual team members. The
users.profile:write
scope allows you to edit fields withusers.profile.set
. Theusers.profile:read
scope empowers you to discover available fields withteam.profile.get
and retrieve user profiles withusers.profile.get
. - Apps Slack apps can now add action-invoking interactive buttons to messages, allowing you to simplify workflows and encourage users to take decisive action from within Slack.
- Tools For better readability, syntax highlighting has been added to code blocks throughout our documentation.
- APIs We've corrected the behavior of
stars.list
so that it only returns stars belonging to the owner of the presented token. Theuser
parameter may still be used if the provided user ID belongs to the user utilizing the token. - APIs Team administrators may now use tokens with the
admin
scope to request information about the billable status of team members using the team.billableInfo API method. - APIs Now that
bot_id
appears in the real-time messaging API and Web API, you need a better way to look up bot users. Use the newbots.info
method to query bot/application information by ID. It requires theusers:read
scope.
May 2016
- APIs Additional real time messaging API events will begin including the
event_ts
timestamp field later this June. Find out what to expect. - APIs Now you can put down a footer on your message attachments. Use the
footer
,footer_icon
, andts
fields to tie content across time and space. - APIs For the few of you out there using outdated tokens, we've made some changes to authorship behavior when using
chat.postMessage
. - APIs Error conditions in incoming webhooks are due for an improvement. Read all about how blanket HTTP 500s will become more fine-grained, purposeful error conditions. Shipped on June 16, 2016.
- APIs Recently introduced bugs in our iOS & Android apps cause message attachment fields marked as "short" to wrongly render long anyway. Our fixes may take a couple weeks to reach each platform.
- Apps Sign team members into your website, service, or application with Sign in with Slack, based on the same OAuth 2.0 flow used by the Add to Slack button. Read more about it in this announcement.
- APIs We've added two new API methods:
users.identity
works with Sign in with Slack andauth.revoke
revokes hallway privileges for access tokens. Actually, it revokes the whole token. - Tools For those who don't know why they should build on Slack: https://slack.com/developers
April 2016
- APIs Bot user tokens may now use
files.info
to look up information about files they have access to by virtue of their channel memberships. Also, very helpful for adapting to upcoming file events changes. - Tools Manage your Slack apps joyously with our updated app edit pages.
- APIs File events are changing in the real time messaging API beginning May 16th. Here are details on everything that will change, and the upcoming ability for
files.info
to be used by bot users. - APIs As previously announced, we've added a
bot_id
field to relevant API responses. Let us know if you run into any issues. - APIs We released a family of API methods to create and manage reminders. Meet reminders.list, reminders.info, reminders.add, reminders.delete, and of course reminders.complete.
- Apps We fixed an unfortunate bug where a team member could inadvertently uninstall a whole Slack App from their team by removing a single incoming webhook associated with that instance of the app.
- Tools Find out what we're building! Announcing our Platform Roadmap.
- Tools Need ideas for building on Slack? Try the Ideaboard.
- Tools Another way to keep up with the Slack Platform: Install the API News App to receive occasional, important notifications about the platform.
- APIs Your bot users author their own messages, now they can edit them too. Bot user tokens may now use
chat.update
, like humans do.
March 2016
- APIs Now
chat.postMessage
will better intuit your intent when you don't explicitly specify theas_user
parameter. Let us know if we're guessing wrong! - APIs One day soon our Web API will warn you when something is only slightly wrong with your requests. Read all about API warnings.
- Docs Be welcoming. Be kind. Look out for each other. This is the Code of Conduct for the Slack Developer community.
- APIs Now bot users can use methods requiring the
dnd:read
scope, likednd.info
anddnd.teamInfo
. Your bots'll be more polite than a protocol droid! - Docs Home in on hosting for your app or integration with this collection of hosting providers.
- Tools Craft your fancy messages in real time with the new Message Builder!
- Apps Users can now rename Bot Users they've installed as Slack Apps. More naming, more claiming. No more terrible twos.
- Docs We finally updated the slackhq/slack-api-docs repository, reflecting recently introduced and quite ancient documentation updates and new features.
February 2016
- APIs
reaction_added
&reaction_removed
events now include anitem_user
field indicating the user that created the original content everyone's raving about. - Docs Published this changelog you're reading right now. So that you can know about all this stuff. Tell your friends.
- APIs New Web API methods: share files publicly with
files.sharedPublicURL
or make them private again withfiles.revokePublicURL
. - APIs
files.comments.add
,files.comments.edit
, andfiles.comments.delete
are now available to bot users. - Tools Quickly find the right tools for your project with our new listing of often-used open source libraries.
- Tools The handy test token generator previously found in the Web API documentation now stands proud with its very own page.
- Docs Need help? We have some tips for you.
- Docs api.slack.com's sidebar is now better organized by topic.
January 2016
- APIs As of January 4th, 2016, authorization headers are now required for most Web API requests involving file URLs. See this doc and blog post for more information.
- APIs
url
andurl_download
are no longer part of file objects - Docs Enjoy our evolving collection of Frequently Asked Questions (and answers!)
- APIs Responses to Incoming Webhook requests now include
channel_id
- Apps Make sure you're ready before submitting your Slack App for review by following this Slack App Checklist.
- Docs Incoming Webhooks documentation updated to better bait best practices and discourage fishy formatting behavior.
- Docs The file object documentation now includes a list of possible file types.
December 2015
- Tools Now you can upgrade your Slack App's OAuth Scopes by managing your apps. This article explains it all.
- APIs Don't press snooze until you've dreamed about our new Do Not Disturb Web API methods.
- Apps You can now package Bot Users within Slack Apps, making your creations easier to distribute to teams.
- Apps We launched the Slack Application Directory, where teams can discover apps like yours.
- Apps We announced the Slack Fund to "give developers the backing they need to build everything possible in Slack."
- Docs The api.slack.com home page is fancier.
- APIs Enjoy major updates to the Slash Commands documentation, expanding on topics like... delayed responses.
November 2015
- APIs Announced important changes to the Files methods of the Web API.
- APIs Added
team.integrationLogs
to the Web API. - APIs Added authorization support for thumbnail URLs appearing in File objects.
- Apps More granular OAuth scopes are here! Now your apps can ask for the exact level of access you need.