NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2905 most downloaded on npm
Official library for using the Slack Platform's Web API
Last release 4 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
8 years old
107 releases · first in 2019
c523063 : feat: add the agents.conversations.* methods for Slack Code ( create , archive , setProperties , setView , setCommands , listViews , removeV
agents.conversations.* methods for Slack Code (create, archive, setProperties, setView, setCommands, listViews, removeView, getCanvas, setCanvasContent).One column per quarter.
0ee1d99 : fix: revert internal packages requiring esm loading for backward compatible support
955e6b9 : feat(web-api): add support for admin.users.getExpiration
955e6b9: feat(web-api): add support for admin.users.getExpiration
4322e14: feat(web-api): add agents.sessions.rename and agents.sessions.setStatus
4ba30a1: feat(web-api): add session_status to chat.stopStream arguments
bff3398: feat(web-api): add webapi response changes as of 2026-08-21
Regenerate response types with new stable response properties (e.g. agent_session on message-bearing responses, ListView grouping/sort/filter fields, bots.info connector/workflow flags).
Two fields are removed from UsersListResponse, neither of which is a real success-response property:
Member.is_connector_bot — not returned by users.list; this flag is surfaced on bots.info (added here to BotsInfoResponse).arg — an error-response echo field, not part of a successful users.list body.f5fd35a: feat(web-api): add blocks.validate method
Breaking changes to IncomingWebhookHTTPError :
fc98c8c: Drop Node.js 18 support. The minimum supported Node.js version is now 20.
fc98c8c: Restructured error classes to use proper Error subclasses extending a new SlackWebhookError base class.
Breaking changes to IncomingWebhookHTTPError:
original property has been removed. HTTP response details are now direct properties:
statusCode: numberstatusMessage: stringbody: stringerror.original.response.status to error.statusCode, error.original.response.data to error.body, etc.Breaking changes to IncomingWebhookRequestError:
original property is now a standard Error (previously it was an AxiosError). The original error is also available via the standard cause property.Removed factory functions (use new with the corresponding class instead):
requestErrorWithOriginal() → new IncomingWebhookRequestError(original)httpErrorWithOriginal() → new IncomingWebhookHTTPError(statusCode, statusMessage, body)errorWithCode() — Use the specific error class directly.Migration: Replace if (error.code === ErrorCode.HTTPError) with if (error instanceof IncomingWebhookHTTPError). You can also catch all webhook errors with if (error instanceof SlackWebhookError).
The CodedError interface is deprecated — use instanceof checks with the SlackWebhookError base class or specific error subclasses instead.
fc98c8c: Replaced axios with the standard Fetch API for HTTP transport.
Removed options from IncomingWebhookDefaultArguments:
agent — Use the new fetch option to provide a custom fetch implementation with proxy or TLS support. For proxies, prefer the built-in http.setGlobalProxyFromEnv() or NODE_USE_ENV_PROXY=1 (Node.js 24+). For advanced use cases:
import { fetch, Agent } from "undici";
const webhook = new IncomingWebhook(url, {
fetch: (url, init) =>
fetch(url, {
...init,
dispatcher: new Agent({ connect: { ca: myCA } }),
}),
});The axios dependency has been removed. The default fetch implementation is globalThis.fetch (available in Node.js 20+). The timeout option remains available and is implemented via AbortController.
fc98c8c: feat: add WebhookTrigger class for Workflow Builder triggers and opt-in retries for IncomingWebhook and WebhookTrigger
WebhookTrigger surfaces its own WebhookTriggerHTTPError and WebhookTriggerRequestError (subclasses of SlackWebhookError), so trigger failures can be distinguished from IncomingWebhook failures via instanceof.
fc98c8c: Drop Node.js 18 support. The minimum supported Node.js version is now 20.
fc98c8c: Redesigned error handling to use proper Error subclasses instead of plain objects with a code property.
Migration: Replace if (error.code === ErrorCode.PlatformError) with if (error instanceof WebAPIPlatformError). All error classes extend a common SlackError base class (which extends Error), so you can also catch all SDK errors with if (error instanceof SlackError).
New error class hierarchy:
SlackError (abstract base)
WebAPIPlatformError — Slack API returned ok: falseWebAPIRequestError — Network/transport failure (original error in cause)WebAPIHTTPError — Non-200 HTTP status from SlackWebAPIRateLimitedError — HTTP 429 with retryAfter secondsWebAPIFileUploadInvalidArgumentsError — Invalid file upload argumentsWebAPIFileUploadReadFileDataError — Failed to read file data for uploadRemoved factory functions (these were internal but exported — use new with the corresponding class instead):
errorWithCode()platformErrorFromResult() → new WebAPIPlatformError(...)requestErrorWithOriginal() → new WebAPIRequestError(...)httpErrorFromResponse() → new WebAPIHTTPError(...)rateLimitedErrorWithDelay() → new WebAPIRateLimitedError(...)Other breaking type changes:
WebAPIHTTPError.headers type changed from IncomingHttpHeaders to Record<string, string>.CodedError interface is deprecated — use instanceof checks with specific error classes instead..name values changed from generic 'Error' to descriptive class names (e.g., 'WebAPIPlatformError').fc98c8c: Replaced axios with the standard Fetch API for all HTTP transport. The following options and types have been removed from WebClientOptions:
agent — Use the new fetch option to provide a custom fetch implementation with proxy or keep-alive support. For proxies, prefer the built-in http.setGlobalProxyFromEnv() or NODE_USE_ENV_PROXY=1 (Node.js 24+). For advanced use cases:
import { fetch, Agent } from "undici";
const client = new WebClient(token, {
fetch: (url, init) =>
fetch(url, {
...init,
dispatcher: new Agent({ keepAliveTimeout: 60_000 }),
}),
});tls and TLSOptions — Configure TLS via a custom fetch implementation with an undici Agent, or use the NODE_EXTRA_CA_CERTS environment variable.requestInterceptor and RequestInterceptor type — Wrap the fetch function to intercept or modify requests before they are sent.adapter and AdapterConfig type — Use the fetch option instead.RequestConfig type (was an alias for Axios' InternalAxiosRequestConfig) — Removed entirely.attachOriginalToWebAPIRequestError option — Removed. The original error is now always available via the standard cause property on WebAPIRequestError.The dependencies axios, form-data, is-electron, and is-stream have been removed. The default fetch implementation is globalThis.fetch (available in Node.js 20+).
New exported types for custom fetch implementations: FetchFunction, FetchResponse, FetchRequestInit, FetchHeaders.
fc98c8c: Removed previously-deprecated API methods and their associated request/response types:
files.upload — Use filesUploadV2 instead (available since v6.7). The filesUploadV2 method handles the multi-step upload process automatically.rtm.start — Use rtm.connect instead. The rtm.start method was deprecated by Slack in favor of the lighter-weight rtm.connect.workflows.stepCompleted, workflows.stepFailed, workflows.updateStep — These methods supported the retired Steps from Apps feature (deprecated August 2023, retired September 2024). The workflows.featured.* and admin.workflows.* methods for the current Workflow Builder remain available.agent_view and assistant_view features, recent agent events (app_context_changed, assistant_thread_started, assistant_thread_context_changed), optional OAuth scopes (bot_optional/user_optional), and event metadata_subscriptionsNothing published for this version
Nothing published for this version
a795b86: feat: expand app manifest types — add agent_view and assistant_view features, recent agent events (app_context_changed, assistant_thread_star
agent_view and assistant_view features, recent agent events (app_context_changed, assistant_thread_started, assistant_thread_context_changed), optional OAuth scopes (bot_optional/user_optional), and event metadata_subscriptions07744de: feat: make thread_ts optional for assistant.threads.setSuggestedPrompts
thread_ts optional for assistant.threads.setSuggestedPrompts2085900: feat: expose public read-only ts getter on ChatStreamer for fallback to `chat.update` when a stream expires server-side
2085900: feat: expose public read-only ts getter on ChatStreamer for fallback to chat.update when a stream expires server-side
import { WebClient } from "@slack/web-api";
const client = new WebClient(process.env.SLACK_BOT_TOKEN);
const streamer = client.chatStream({
channel: "C0123456789",
thread_ts: "1700000001.123456",
recipient_team_id: "T0123456789",
recipient_user_id: "U0123456789",
});
await streamer.append({ markdown_text: "hello!" });
// streamer.ts is now set after the first flush
console.log(streamer.ts);
await streamer.stop();
2814969: feat: add highlight_type to `files.completeUploadExternal` and `filesUploadV2` for optimistic rendering
2814969: feat: add highlight_type to files.completeUploadExternal and filesUploadV2 for optimistic rendering
import { WebClient } from "@slack/web-api";
const client = new WebClient(process.env.SLACK_BOT_TOKEN);
await client.filesUploadV2({
channel_id: "C0123456789",
file: "./image.png",
filename: "image.png",
title: "Image Upload",
highlight_type: "png",
});
4b6fe3a: feat: add authorship arguments - icon_emoji, icon_url, and username - to the `assistant.threads.setStatus` and `chat.startStream` methods
icon_emoji, icon_url, and username - to the assistant.threads.setStatus and chat.startStream methods3a9c444: build(deps): bump minimum axios version to 1.15.0
process.title contains non-ASCII characters75649f4: feat: add support for apps.user.connection.update
370cf22: chore(deps): bump axios to ^1.13.5
https://github.com/user-attachments/assets/1a6478c2-37aa-48c2-84e9-69375b20177e
https://github.com/user-attachments/assets/1a6478c2-37aa-48c2-84e9-69375b20177e
https://github.com/user-attachments/assets/984f84e5-c0e0-47ef-a1c2-994ac51a25ba
Now, you can display a mixture of structured content called "chunks":
Available in:
chat.startStream, chat.appendStream, and chat.stopStreamconst stream = new ChatStreamer(...);, stream.append(...)$ slack create
# → AI Agent App
# → Bolt for JavaScript
# Bolt for Python
1fbce32: feat: add thinking steps support to streaming methods
chat.appendStream, chat.startStream, and chat.stopStream now accept a chunks parameter for streaming structured content including markdown text, plan updates, and task updates.
Related PRs:
const stream = new ChatStreamer(client, client.logger, {
channel: CHANNEL_ID,
thread_ts: threadTs,
});
await stream.append({
chunks: [
{
type: "markdown_text",
text: "**Hello!** I am starting to process your request...\n\n",
},
],
});
await stream.append({
chunks: [
{
type: "plan_update",
title: "Processing tasks...",
},
{
type: "task_update",
id: "task-1",
title: "Fetching data from API",
status: "complete",
output: "Successfully retrieved 42 records",
},
],
});
await stream.stop({
chunks: [
{
type: "markdown_text",
text: "\n\n---\n\n✅ **All tasks completed successfully!**\n",
},
],
});
feat(web-api): add slackLists methods by @srtaalej in https://github.com/slackapi/node-slack-sdk/pull/2421
<details> <summary>🍿 Expand for a slackLists API method example</summary>
const list = await app.client.slackLists.create({
name: 'Test List - SlackLists API',
description_blocks: [
{
type: 'rich_text',
elements: [
{
type: 'rich_text_section',
elements: [
{
type: 'text',
text: 'List to keep track of tasks!',
},
],
},
],
},
],
schema: [
{
key: 'task_name',
name: 'Task Name',
type: 'text',
is_primary_column: true,
},
{
key: 'due_date',
name: 'Due Date',
type: 'date',
},
{
key: 'status',
name: 'Status',
type: 'select',
options: {
choices: [
{ value: 'not_started', label: 'Not Started', color: 'red' },
{ value: 'in_progress', label: 'In Progress', color: 'yellow' },
{ value: 'completed', label: 'Completed', color: 'green' },
],
},
},
{
key: 'assignee',
name: 'Assignee',
type: 'user',
},
],
});
console.log('List created:', list);
const listId = list.list_id;
// extract column IDs from the response (map key -> id)
const keyToId = {};
if (list.list_metadata?.schema) {
for (const col of list.list_metadata.schema) {
keyToId[col.key] = col.id;
}
}
const taskNameColId = keyToId['task_name'];
console.log('Column IDs:', keyToId);
const response = await app.client.slackLists.access.set({
list_id: listId,
access_level: 'write',
user_ids: ['U09G4FG3TRN'],
});
console.log('Access set:', response);
const createItemResponse = await app.client.slackLists.items.create({
list_id: listId,
initial_fields: [
{
column_id: taskNameColId,
rich_text: [
{
type: 'rich_text',
elements: [
{
type: 'rich_text_section',
elements: [
{
type: 'text',
text: 'CLI app unlink command',
},
],
},
],
},
],
},
],
});
console.log('Item created:', createItemResponse);
const itemId = createItemResponse.id;
if (itemId) {
await app.client.slackLists.items.info({
list_id: listId,
id: itemId,
include_is_subscribed: true,
});
console.log('Item info retrieved');
await app.client.slackLists.items.update({
list_id: listId,
cells: [
{
row_id: itemId,
column_id: taskNameColId,
checkbox: true,
},
],
});
console.log('Item updated');
}
const listItemsResponse = await app.client.slackLists.items.list({
list_id: listId,
limit: 50,
});
console.log('Items listed:', listItemsResponse);
const downloadStartResponse = await app.client.slackLists.download.start({
list_id: listId,
include_archived: false,
});
console.log('Download started:', downloadStartResponse);
const jobId = downloadStartResponse.job_id;
if (jobId) {
await app.client.slackLists.download.get({
list_id: listId,
job_id: jobId,
});
console.log('Download status retrieved');
}
if (itemId) {
await app.client.slackLists.items.delete({
list_id: listId,
id: itemId,
});
console.log('Item deleted');
}
await app.client.slackLists.items.deleteMultiple({
list_id: listId,
ids: ['item1', 'item2'],
});
console.log('Multiple items deleted');
await app.client.slackLists.access.delete({
list_id: listId,
user_ids: ['U09G4FG3TRN'],
});
console.log('Access removed');
</details>
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/types@2.19.0...@slack/web-api@7.13.0 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/159 npm Release: https://www.npmjs.com/package/@slack/web-api/v/7.13.0
feat: add support to @slack/web-api for work objects by @vegeris in https://github.com/slackapi/node-slack-sdk/pull/2231
👾 Enhancements
🧰 Maintenance
📚 Changelog https://docs.slack.dev/changelog/2025/10/22/work-objects/
Package: https://www.npmjs.com/package/@slack/web-api@7.12.0 Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.11.0...@slack/web-api@7.12.0 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/156?closed=1
https://github.com/user-attachments/assets/bc16597b-1632-46bb-b7aa-fe22330daf84
https://github.com/user-attachments/assets/bc16597b-1632-46bb-b7aa-fe22330daf84
Try the AI Agent Sample app to explore the AI-enabled features and existing Assistant helper:
# Create a new AI Agent app
$ slack create slack-ai-agent-app --template slack-samples/bolt-js-assistant-template
$ cd slack-ai-agent-app/
# Add your OPENAI_API_KEY
$ export OPENAI_API_KEY=sk-proj-ahM...
# Run the local dev server
$ slack run
After the app starts, send a message to the "slack-ai-agent-app" bot for a unique response.
Loading states allows you to not only set the status (e.g. "My app is typing...") but also sprinkle some personality by cycling through a collection of loading messages:
app.event('message', async ({ client, context, event, logger }) => {
// ...
await client.assistant.threads.setStatus({
channel_id: channelId,
thread_ts: threadTs,
status: 'thinking...',
loading_messages: [
'Teaching the hamsters to type faster…',
'Untangling the internet cables…',
'Consulting the office goldfish…',
'Polishing up the response just for you…',
'Convincing the AI to stop overthinking…',
],
});
// Start a new message stream
});
The client.chatStream() helper utility can be used to streamline calling the 3 text streaming methods:
app.event('message', async ({ client, context, event, logger }) => {
// ...
// Start a new message stream
const streamer = client.chatStream({
channel: channelId,
recipient_team_id: teamId,
recipient_user_id: userId,
thread_ts: threadTs,
});
// Loop over OpenAI response stream
// https://platform.openai.com/docs/api-reference/responses/create
for await (const chunk of llmResponse) {
if (chunk.type === 'response.output_text.delta') {
await streamer.append({
markdown_text: chunk.delta,
});
}
}
// Stop the stream and attach feedback buttons
await streamer.stop({ blocks: [feedbackBlock] });
});
Alternative to the Text Streaming Helper is to call the individual methods.
client.chat.startStreamFirst, start a chat text stream to stream a response to any message:
app.event('message', async ({ client, context, event, logger }) => {
// ...
const streamResponse = await client.chat.startStream({
channel: channelId,
recipient_team_id: teamId,
recipient_user_id: userId,
thread_ts: threadTs,
});
const streamTs = streamResponse.ts
client.chat.appendStreamAfter starting a chat text stream, you can then append text to it in chunks (often from your favourite LLM SDK) to convey a streaming effect:
for await (const chunk of llmResponse) {
if (chunk.type === 'response.output_text.delta') {
await client.chat.appendSteam({
channel: channelId,
markdown_text: chunk.delta,
ts: streamTs,
});
}
}
client.chat.stopStreamLastly, you can stop the chat text stream to finalize your message:
await client.chat.stopStream({
blocks: [feedbackBlock],
channel: channelId,
ts: streamTs,
});
Add feedback buttons to the bottom of a message, after stopping a text stream, to gather user feedback:
const feedbackBlock = {
type: 'context_actions',
elements: [{
type: 'feedback_buttons',
action_id: 'feedback',
positive_button: {
text: { type: 'plain_text', text: 'Good Response' },
accessibility_label: 'Submit positive feedback on this response',
value: 'good-feedback',
},
negative_button: {
text: { type: 'plain_text', text: 'Bad Response' },
accessibility_label: 'Submit negative feedback on this response',
value: 'bad-feedback',
},
}],
};
// Using the Text Streaming Helper
await streamer.stop({ blocks: [feedbackBlock] });
// Or, using the Text Streaming Method
await client.chat.stopStream({
blocks: [feedbackBlock],
channel: channelId,
ts: streamTs,
});
Milestone: https://github.com/slackapi/node-slack-sdk/milestone/147?closed=1 Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.10.0...@slack/web-api@7.11.0 Package: https://www.npmjs.com/package/@slack/web-api/v/7.11.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
bump form-data to at least 4.0.4. to resolve CVE-2025-7783 in #2314 - Thanks @brianbegy!
Messaging with markdown_text is supported in this release, alongside a few methods to feature workflows in channel:
const response = await client.chat.postMessage({
channel: "C0123456789",
markdown_text: "**bold**"
});
Package: https://www.npmjs.com/package/@slack/web-api/v/7.10.0 Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.9.3...@slack/web-api@7.10.0 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/144?closed=1
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release has a few small updates to align with arguments of various Slack API methods.
This release has a few small updates to align with arguments of various Slack API methods.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.9.2...@slack/web-api@7.9.3 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/143
fix: add trailing slash to slackApiUrl if none is provided by @WilliamBergamin in https://github.com/slackapi/node-slack-sdk/pull/2243
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/socket-mode@2.0.4...@slack/web-api@7.9.2 Milstone: https://github.com/slackapi/node-slack-sdk/milestone/141?closed=1
This release fixes a bug where setting `allowAbsoluteUrls` to false caused the `filesUploadV2` method to error when uploading files. Files can now be
This release fixes a bug where setting allowAbsoluteUrls to false caused the filesUploadV2 method to error when uploading files. Files can now be uploaded with allowAbsoluteUrls set to false.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.9.0...@slack/web-api@7.9.1 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/142
fix(web-api): bump axios to 1.8.3 to address CVE-2025-27152 in https://github.com/slackapi/node-slack-sdk/pull/2172 - Thanks @zimeg!
This release adds the allowAbsoluteUrls option to the WebClient constructor.
For code using dynamic method names with .apiCall, this will toggle if requests should be sent to absolute URLs provided:
const { WebClient } = require('@slack/web-api');
const web = new WebClient(token, {
allowAbsoluteUrls: false, // Default: true
});
const _response = await web.apiCall('https://example.com', { /* ... */ });
$ node index.js
[DEBUG] web-api:WebClient:0 http request url: https://slack.com/api/https://example.com
...
[WARN] web-api:WebClient:0 http request failed An HTTP protocol error occurred: statusCode = 404
The default allowAbsoluteUrls value is true to avoid a breaking change with this update, but we suggest deciding if this option should be applied to scripts and adjacent code.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/131
chore(deps-dev): bump mocha from 10.8.2 to 11.0.1 in /packages/web-api in the dev-mocha group across 1 directory by @dependabot in https://github.com/
is_send_allowed optional parameter to assistant.threads.setStatus method" in https://github.com/slackapi/node-slack-sdk/pull/2080 - thanks @misscoded!is_send_allowed optional parameter to assistant.threads.setStatus method in https://github.com/slackapi/node-slack-sdk/pull/2079 - thanks @misscoded!Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/cli-hooks@1.1.2...@slack/web-api@7.8.0
Thanks to the hard work of @mtjandra, the web-api client now exposes Axios interceptors and adapters! Check out the documentation about this new featu
Thanks to the hard work of @mtjandra, the web-api client now exposes Axios interceptors and adapters! Check out the documentation about this new feature for more details. Thanks so much for your contribution, @mtjandra ❤️
8ba3a435 feat(web-api): add request interceptor and HTTP adapter config to WebClient (#2076), resolves #2073
We've added support for a new Slack Connect invite automation API: `conversations.requestShared.list`. Use the list API as well as the approve and den
We've added support for a new Slack Connect invite automation API: conversations.requestShared.list. Use the list API as well as the approve and deny APIs to automate approval and denial of Slack Connect invites into your Slack workspaces. More details about this feature are available in our Governing Slack Connect invites docs.
Also, the response types for a few APIs were extended with a few new properties. Check out #2071 for the minor details.
59f200a9 web-api(feat): add support for conversations.requestShared.list API (#2072)
01d9d2df web-api(feat): minor additions to some admin API response types (#2071)
We've released support for AI Assistants & Agents via @slack/web-api:
We've released support for AI Assistants & Agents via @slack/web-api:
571bc3a6 feat (web-api / types): Add support for assistant.threads.* API (#2033)
We've released two new APIs for use via @slack/web-api:
We've released two new APIs for use via @slack/web-api:
a3a06ecb web-api(feat): add support for conversations.requestShared approve , deny APIs (#1843)
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
855549b7 fix: bump axios to 1.7.4 to address CVE (#1875) - fixes #1874
Herein is a patch to allow a typed token attribute in a few API methods that accept it - apps.uninstall, admin.apps.uninstall, and admin.apps.clearRes
Herein is a patch to allow a typed token attribute in a few API methods that accept it - apps.uninstall, admin.apps.uninstall, and admin.apps.clearResolution. Experiment using the snippet below and caution if you're using an app in production:
client.apps.uninstall({
+ token: 'xoxb-example',
client_id: 'example',
client_secret: '123',
});
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.3.2...@slack/web-api@7.3.3
…be wider, fixes #1859 (#1860) a055e661 fix: add deprecated channels property for upload file v2 method, fixes #1846
20491c82 fix (web-api): tweak type of chat.postMessage's reply_broadcast property to be wider, fixes #1859 (#1860)
a055e661 fix: add deprecated channels property for upload file v2 method, fixes #1846 (#1848)
This release fixes a problem between web-api 7.3.0 and projects consuming it that used versions of TypeScript older than 5.0. Moving forward, web-api
This release fixes a problem between web-api 7.3.0 and projects consuming it that used versions of TypeScript older than 5.0. Moving forward, web-api should guarantee compatibility with at least TypeScript 4.7.2 or newer; if this changes, that will likely warrant a major new semver release.
b2849947 web-api(fix): revert use of export type * to maintain backwards compatibility with TS 4.7 (#1841)
Nothing published for this version
`teams.externalTeams.disconnect`
We've added two new APIs:
a18c1ea7 feat (web-api): add support for teams.externalTeams.disconnect API (#1837)
4ef80b76 web-api: add new conversations.externalInvitePermissions.set API (#1834)
9e20ca36 web-api: update files.info, files.list files.remote.list and team.externalTeams.list response types (#1833)
fc87d515 chore: tweak lint config to allow for eslint --fix to fix import order (#1827)
a2f6e77: feat: add opt-in retries to IncomingWebhook and WebhookTrigger
IncomingWebhook and WebhookTriggerWebhookTrigger class for Workflow Builder webhook triggers4df9fb8c feat(web-api): add new Slack Connect APIs team.externalTeams.list and users.discoverableContacts.lookup (#1826)
f3acb2f5 feat(web-api): Update response types to latest automatically generated (#1824)
20f026b6 feat(web-api): user id map in MigrationExchangeResponse as map (#1821)
59124ef: feat: export addAppMetadata for external instrumentation use
addAppMetadata for external instrumentation useThe new feature available in this release is access to new Canvas APIs - programmatically manipulate your Canvases to your heart's content!
Additionally:
web-api, if you were using an API method that required no arguments (e.g. api.test), you still had to pass it an empty object ({}). Thanks to @davidlj95's work in #1809, that is no longer a requirement!attachOriginalToWebAPIRequestError to false to ensure API responses are not logged. By default, this option will be set to false. Many thanks to @Parama92 for their work in this area!a2c0fe56 web-api: public canvas APIs (#1813) 9f2935ff feat: allow using WebClient APIs without argument (#1809) - fixes #1769; thank you @davidlj95 for your contribution! ❤️ b98ef1e1 feat: providing a way to disable message content being logged (#1786) - fixes #1751; thank you @Parama92 for your contribution! ❤️
This release updates internal dependencies to use more secure versions 🔏
This release updates internal dependencies to use more secure versions 🔏
Package: https://www.npmjs.com/package/@slack/rtm-api/v/7.0.4 Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/rtm-api@7.0.3...@slack/rtm-api@7.0.4 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/150?closed=1
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/cli-hooks@1.1.2...@slack/webhook@7.0.4
We released a fix for the oauth.v2.exchange method argument type; previously it did not require a token, which was incorrect. It now requires a token parameter, which matches the expectations of this API method.
ae755dc4 web-api(fix): oauth.v2.exchange method requires a token parameter (#1779) - thanks for reporting @iggyray!
This release includes an update of @slack/web-api to bump internal dependencies to supported versions.
This release includes an update of @slack/web-api to bump internal dependencies to supported versions.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/rtm-api@7.0.2...@slack/rtm-api@7.0.3 Milestone: https://github.com/slackapi/node-slack-sdk/milestone/135
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.0.2...@slack/webhook@7.0.3
We've deprecated the files.upload method. Check out our announcement on the topic here. Instead, use the uploadV2 method provided by the client.
ae9ace8b web-api(fix): fix node-retry types (#1772) - thanks @cotsupa!
fec4895f web-api(docs): Add deprecation JSdoc to files.upload method (#1773)
8bff32ff web-api(fix): Fix typo in error throwing for rate limit exceeded (#1755) - thanks @WhiteKiwi!
Bumps axios to 1.6.3 to address a security vulnerability.
Bumps axios to 1.6.3 to address a security vulnerability.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/rtm-api@7.0.2
Nothing major or even minor in this release! Just a few patches:
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/cli-hooks@1.0.0...@slack/web-api@7.0.2
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/socket-mode@2.0.1...@slack/rtm-api@7.0.1
Only relevant to consumers in TypeScript projects: we mistakenly removed the types for method arguments as exports in the 7.0.0 major release (e.g. ViewsPushArguments, etc. - any of the types listed in this file). These were available for consumers to import in the 6.x versions of web-api. Woops! This release simply adds these back in.
d5c17d8 web-api: re-export method argument types (#1729)
a74e35b feat: upgrade axios to resolve CVE-2023-45857 (#1682)
This major release bumps dependencies to their latest versions and sets the minimum node version is to v18, the current LTS node.js. While the library
This major release bumps dependencies to their latest versions and sets the minimum node version is to v18, the current LTS node.js. While the library should work with older versions of node, we no longer test the library against versions of node older than 18, so we cannot guarantee compatibility.
In addition, calling disconnect() when already disconnected should no longer throw an exception (fixed https://github.com/slackapi/node-slack-sdk/issues/842).
There are two big (potentially) breaking changes library users should be aware of:
But do not fear! We have written a migration guide for v6 -> v7 users which painstakingly list out the changes per-method, which should provide you with an easy upgrade process.
As usual, if you have trouble with this library, feel free to file an issue! We are here to help 🫂 😄
Much love, The Slack DevRel Engineering team
e29f6a1 Add support for overriding token when using fileUploadV2 (#1723 fixes #1644)
d53ef02 @slack/web-api argument type safety (#1673)
4a8eeac Remove warning about lack of fallback text from chat.update invocations (#1674)
6e8a31e Bump minimum node version to v18 (#1667)
85c07d9 Set minimum node version to 18 (#1666) 0ba6dc2 Add metadata to incoming webhooks parameters (#1617)
While this release is a new major version, the only "breaking change" is that we dropped support for node versions below v18 (at the time of this release, v16 and lower have reached their end of life). No APIs from this package were changed.
A lot! While this is only a release candidate as we finalize the next major version of web-api, v7, you can give it a go while we put the final touche
A lot! While this is only a release candidate as we finalize the next major version of web-api, v7, you can give it a go while we put the final touches on it.
We have also prepared a migration guide for those worried about what has changed and how to migrate from v6.
For the full list of changes, please take a look at the migration guide.
To install and give it a whirl, simply:
npm i @slack/web-api@rc
Your feedback is incredibly valuable to us! If you do give this release candidate a try, first: thank you! Second, if you find any issues or have trouble using it, please let us know by filing an issue.
We've released support for AI Assistants & Agents via @slack/web-api:
We've released support for AI Assistants & Agents via @slack/web-api:
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@6.12.1...@slack/web-api@6.13.0
web-api@6(chore): bump axios to 1.7.4 to address CVE-2024-39338 - Thanks @zimeg! in https://github.com/slackapi/node-slack-sdk/pull/1880
This patch release bumps the minimum version of axios to 1.7.4 to address a CVE - see Axios 1.7.4 release notes for more information.
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@6.12.0...@slack/webhook@6.12.1
The following methods were added to the web client to support functions.* methods:
The following methods were added to the web client to support functions.* methods:
4f393719e76236d8d3eb9e5961e6837045e445b4 Add support for functions.* (complete) methods in #1702 - Thanks @misscoded!
https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@6.11.2...@slack/web-api@6.12.0
Bumps axios to 1.6.5 to address _another_ security vulnerability.
Bumps axios to 1.6.5 to address another security vulnerability.
Bumps axios to 1.6.3 to address a security vulnerability.
Bumps axios to 1.6.3 to address a security vulnerability.
Adds support for style.code properties on rich text elements. See original issue #1706 and PR to resolve #1707.
style.code properties on rich text elements. See original issue #1706 and PR to resolve #1707.66eb303 Add support for apps.manifest.* endpoints - thanks @misscoded! (#1690) 6e07903 Add new args to admin.users.list and update web API response ty
66eb303 Add support for apps.manifest.* endpoints - thanks @misscoded! (#1690) 6e07903 Add new args to admin.users.list and update web API response types - thanks @seratch! (#1688)
Full Changelog: https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@6.9.1...@slack/web-api@6.10.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →