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.
- APIs Get an event when more members join your User Group or when — uh-oh, it loses members with
- 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 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 with
tokens_revoked. Pause and resume activity when teams migrate to Enterprise Grid with
- 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 with
channels.info by excluding
- APIs We'd like you to stop using
rtm.start and start using
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. After July 5th, 2017 your apps must request
users:read.email to gain that access. See this post for more detail.
- APIs Observe the custom status of team members with
users.profile.get. Update a user's custom status with
users.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.
- 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.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 is globally unique across all teams while the
event_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.
- APIs Minor field changes coming to
channels.history file messages and
skype user profile fields. Read all about it.
- 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.
- Apps Let's extend a warm welcome to new
app_id fields now appearing in our APIs.
app_id is now found in
bots.info. You'll also find
app_id in the
bot_changed events. What's an
app_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 member
email fields when using
users.info. Existing Slack apps with
users: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.
- 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 using
- 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.
- 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.
- 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, and
response_urls you will receive a
too_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.
- 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 with
users.profile:read scope empowers you to discover available fields with
team.profile.get and retrieve user profiles with
- 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. The
user 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 new
bots.info method to query bot/application information by ID. It requires the
- 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.
- APIs Now
chat.postMessage will better intuit your intent when you don't explicitly specify the
as_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, like
dnd.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.
- Alert 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.
url_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
- 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.
Many wonderful developments occurred before November 2015, but they are not logged here.