Skip to content

Conversation

@haleychaas
Copy link
Contributor

Summary

Updates all necessary links from api.slack.com/x to their equivalent on docs.slack.dev. I also did some copy editing and applying guidelines from our style guide. (changes are docs only)

Requirements (place an x in each [ ])

@codecov
Copy link

codecov bot commented Jul 8, 2025

Codecov Report

Attention: Patch coverage is 86.36364% with 3 lines in your changes missing coverage. Please review.

Project coverage is 92.69%. Comparing base (5cf7634) to head (fd2886a).
Report is 6 commits behind head on main.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2294      +/-   ##
==========================================
- Coverage   92.71%   92.69%   -0.02%     
==========================================
  Files          38       38              
  Lines       10607    10609       +2     
  Branches      683      683              
==========================================
  Hits         9834     9834              
- Misses        761      763       +2     
  Partials       12       12              
Flag Coverage Δ
cli-hooks 95.23% <100.00%> (ø)
cli-test 94.74% <ø> (ø)
oauth 77.39% <100.00%> (ø)
socket-mode 61.87% <100.00%> (ø)
web-api 97.94% <78.57%> (-0.04%) ⬇️
webhook 96.66% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

README.md Outdated
walk you through building your first Slack app using Node.js.

| Slack API | What its for | NPM Package |
| Slack API | What it's for | NPM Package |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Slack API | What it's for | NPM Package |
| Slack API | Use | NPM Package |

README.md Outdated
|--------------|--------------|-------------------|
| Web API | Send data to or query data from Slack using any of [over 220 methods](https://api.slack.com/methods). | [`@slack/web-api`](https://tools.slack.dev/node-slack-sdk/web-api) |
| Web API | Send data to or query data from Slack using any of [over 220 methods](https://docs.slack.dev/reference/methods). | [`@slack/web-api`](https://tools.slack.dev/node-slack-sdk/web-api) |
| OAuth | Setup the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | [`@slack/oauth`](https://tools.slack.dev/node-slack-sdk/oauth) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| OAuth | Setup the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | [`@slack/oauth`](https://tools.slack.dev/node-slack-sdk/oauth) |
| OAuth | Set up the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | [`@slack/oauth`](https://tools.slack.dev/node-slack-sdk/oauth) |


The Node Slack SDK has corresponding packages for Slack APIs. They are small and powerful when used independently, and work seamlessly when used together, too.

| Slack API | Use | NPM package |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i did an above edit to match this

`@slack/events-api` and `@slack/interactive-messages` officially reached EOL on May 31st, 2021. Development has fully stopped for these packages and all remaining open issues and pull requests have been closed.

At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](/tutorials/migrating-to-v6) for those looking to convert their existing apps.
At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more).
At this time, we recommend migrating to [Bolt for JavaScript](https://tools.slack.dev/bolt-js), a framework that offers all of the functionality available in those packages (and more).

Comment on lines 16 to 17
The `@slack/interactive-messages` helps your app respond to interactions from the Slack
[interactive messages](https://docs.slack.dev/interactivity), [actions](https://docs.slack.dev/interactivity/implementing-shortcuts), and [modals](https://docs.slack.dev/interactivity/adding-interactive-modals-to-home-tab). This package will help you start with convenient and secure defaults.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `@slack/interactive-messages` helps your app respond to interactions from the Slack
[interactive messages](https://docs.slack.dev/interactivity), [actions](https://docs.slack.dev/interactivity/implementing-shortcuts), and [modals](https://docs.slack.dev/interactivity/adding-interactive-modals-to-home-tab). This package will help you start with convenient and secure defaults.
The `@slack/interactive-messages` helps your app respond to interactions from [interactive messages](https://docs.slack.dev/interactivity), [actions](https://docs.slack.dev/interactivity/implementing-shortcuts), and [modals](https://docs.slack.dev/interactivity/adding-interactive-modals-to-home-tab) in Slack. This package will help you start with convenient and secure defaults.

```

When choosing to turn late response fallback off, its important to stop relying on returning `Promise`s from handler
When choosing to turn late response fallback off, it's important to stop relying on returning `Promise`s from handler
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When choosing to turn late response fallback off, it's important to stop relying on returning `Promise`s from handler
When choosing to turn late response fallback off, it's important to stop relying on returning a `Promise` from the handler

plurals are weird looking to me

There are many situations where you may want to persist some custom data relevant to your application across the entire OAuth flow. For example, you may want to map Slack resources (like users) to your own application's resources, or verify and gate eligibility for proceeding with installing your Slack application to a workspace based on your application's requirements. To this end, this package provides a series of hooks, or callbacks, that allow your application to integrate throughout key points of the OAuth flow.

These are all callbacks customizable via the [`CallbackOptions`](/reference/oauth/interfaces/CallbackOptions) and [`InstallPathOptions`](/reference/oauth/interfaces/InstallPathOptions) interfaces - check their [reference documentation](reference/oauth) for more details.
These are all callbacks customizable via the [`CallbackOptions`](/reference/oauth/interfaces/CallbackOptions) and [`InstallPathOptions`](/reference/oauth/interfaces/InstallPathOptions) interfaces&mdash;check their [reference documentation](reference/oauth) for more details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
These are all callbacks customizable via the [`CallbackOptions`](/reference/oauth/interfaces/CallbackOptions) and [`InstallPathOptions`](/reference/oauth/interfaces/InstallPathOptions) interfaces&mdash;check their [reference documentation](reference/oauth) for more details.
These are all callbacks customizable via the [`CallbackOptions`](/reference/oauth/interfaces/CallbackOptions) and [`InstallPathOptions`](/reference/oauth/interfaces/InstallPathOptions) interfacescheck their [reference documentation](reference/oauth) for more details.

i am dying on this hill

```

When your app has multiple interactive events or slash commands, you will need to include your own routing logic. This is a good time to consider using Slack's Bolt framework, which provides an easier way to register listeners for events and user actions. You can learn more in [Bolt's Socket Mode documentation](https://tools.slack.dev/bolt-js/concepts#socket-mode).
When your app has multiple interactive events or slash commands, you will need to include your own routing logic. This is a good time to consider using Slack's Bolt framework, which provides an easier way to register listeners for events and user actions. You can learn more in [Bolt's Socket Mode documentation](https://tools.slack.dev/bolt-js/concepts/socket-mode).
Copy link
Contributor

@lukegalbraithrussell lukegalbraithrussell Jul 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When your app has multiple interactive events or slash commands, you will need to include your own routing logic. This is a good time to consider using Slack's Bolt framework, which provides an easier way to register listeners for events and user actions. You can learn more in [Bolt's Socket Mode documentation](https://tools.slack.dev/bolt-js/concepts/socket-mode).
When your app has multiple interactive events or slash commands, you will need to include your own routing logic. This is a good time to consider using Slack's Bolt framework, which provides an easier way to register listeners for events and user actions. You can learn more in [Bolt for JavaScript Socket Mode docs](https://tools.slack.dev/bolt-js/concepts/socket-mode).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"documentation" is my father's name

If you want your app to be subscribed to workspace events (like when a reaction is added, when a user mentions your app, or [another Events API event](https://docs.slack.dev/reference/events)), you need to enable events for your app.

Start by clicking **Event Subscriptions** on the left sidebar. If your app is using HTTP to communicate with Slack, after you toggle the switch, you'll need to add a Request URL. This is similar to [adding a Request URL in the **Interactive Components** section](#what-is-a-request-url), but as described on this page, Slack will issue a `challenge` request to verify that your app's request URL can respond appropriately to incoming requests. Read through our [Request URL Configuration &amp; Verification](https://api.slack.com/apis/connections/events-api#the-events-api__subscribing-to-event-types__events-api-request-urls__request-url-configuration--verification) documentation for details on how to properly handle a `challenge` request.
Start by clicking **Event Subscriptions** on the left sidebar. If your app is using HTTP to communicate with Slack, after you toggle the switch, you'll need to add a Request URL. This is similar to [adding a Request URL in the **Interactive Components** section](#what-is-a-request-url), but as described on this page, Slack will issue a `challenge` request to verify that your app's request URL can respond appropriately to incoming requests. Read through our [Request URL Configuration &amp; Verification](https://docs.slack.dev/apis/events-api#subscribing) documentation for details on how to properly handle a `challenge` request.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Start by clicking **Event Subscriptions** on the left sidebar. If your app is using HTTP to communicate with Slack, after you toggle the switch, you'll need to add a Request URL. This is similar to [adding a Request URL in the **Interactive Components** section](#what-is-a-request-url), but as described on this page, Slack will issue a `challenge` request to verify that your app's request URL can respond appropriately to incoming requests. Read through our [Request URL Configuration &amp; Verification](https://docs.slack.dev/apis/events-api#subscribing) documentation for details on how to properly handle a `challenge` request.
Start by clicking **Event Subscriptions** on the left sidebar. If your app is using HTTP to communicate with Slack, after you toggle the switch, you'll need to add a Request URL. This is similar to [adding a Request URL in the **Interactive Components** section](#what-is-a-request-url), but as described on this page, Slack will issue a `challenge` request to verify that your app's request URL can respond appropriately to incoming requests. Read through our [Request URL Configuration & Verification](https://docs.slack.dev/apis/events-api#subscribing) documentation for details on how to properly handle a `challenge` request.

are more attractive and useful for users of your app. Install and import the `@slack/web-api` package into your app,
initialize the `WebClient` class, and use the `.chat.postMessage(options)` method to send a rich message. The example
above can be rewritten using the following code:
The Web API's [`chat.postMessage` method](https://docs.slack.dev/reference/methods/chat.postMessage) is capable of sending [rich messages](https://docs.slack.dev/messaging/formatting-message-text) more advanced layout and interactions. These rich messages are more attractive and useful for users of your app. Install and import the `@slack/web-api` package into your app, initialize the `WebClient` class, and use the `.chat.postMessage(options)` method to send a rich message. The example above can be rewritten using the following code:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Web API's [`chat.postMessage` method](https://docs.slack.dev/reference/methods/chat.postMessage) is capable of sending [rich messages](https://docs.slack.dev/messaging/formatting-message-text) more advanced layout and interactions. These rich messages are more attractive and useful for users of your app. Install and import the `@slack/web-api` package into your app, initialize the `WebClient` class, and use the `.chat.postMessage(options)` method to send a rich message. The example above can be rewritten using the following code:
The [`chat.postMessage`](https://docs.slack.dev/reference/methods/chat.postMessage) Web API method is capable of sending [rich messages](https://docs.slack.dev/messaging/formatting-message-text) more advanced layout and interactions. These rich messages are more attractive and useful for users of your app. Install and import the `@slack/web-api` package into your app, initialize the `WebClient` class, and use the `.chat.postMessage(options)` method to send a rich message. The example above can be rewritten using the following code:

Copy link
Contributor

@lukegalbraithrussell lukegalbraithrussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

docs are good, left some minor comments. do what you will with those

@zimeg zimeg added docs M-T: Documentation work only semver:patch pkg:web-api applies to `@slack/web-api` pkg:events-api (deprecated) applies to `@slack/events-api` pkg:interactive-messages (deprecated) applies to `@slack/interactive-messages` pkg:rtm-api applies to `@slack/rtm-api` pkg:webhook applies to `@slack/webhook` pkg:logger applies to `@slack/logger` pkg:types applies to `@slack/types` labels Jul 11, 2025
@zimeg zimeg added pkg:client (deprecated) applies to `@slack/client` pkg:oauth applies to `@slack/oauth` pkg:socket-mode applies to `@slack/socket-mode` pkg:cli-hooks applies to `@slack/cli-hooks` pkg:cli-test applies to `@slack/cli-test` labels Jul 11, 2025
@zimeg zimeg changed the title API Docs: Update links, copy edit, apply style guide docs: update links, copy edit, apply style guide Jul 11, 2025
@zimeg zimeg modified the milestone: web-api@7.9.4 Jul 11, 2025
Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@haleychaas LGTM and huge thanks for all of these improvements - I'm a fan of the copy edits with style guide 📚 ✨

All of the changes are solid to land whenever the time is right! We'll make sure to highlight this with the package releases 🤖

I left one comment with a suggested space to add but it's no blocker. The changes are a huge boost to these docs 🚀

`@slack/events-api` and `@slack/interactive-messages` officially reached EOL on May 31st, 2021. Development has fully stopped for these packages and all remaining open issues and pull requests have been closed.

At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](/tutorials/migrating-to-v6) for those looking to convert their existing apps.
At this time, we recommend migrating to [Bolt for JavaScript](https://tools.slack.dev/bolt-js), a framework that offers all of the functionality available in those packages (and more).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧠 This is a solid link change!


---

### Initialize the event adapter
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙏 ✨

Comment on lines -17 to -18
---

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪓

Comment on lines +975 to +977
logger.warn(
`${method} is deprecated. Please check on https://docs.slack.dev/reference/methods for an alternative.`,
);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📠 This is a wonderful change for upcoming releases!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏆 Incredible changes all throughout.

* @description Pass `true` to act as the authed user with {@link https://docs.slack.dev/reference/scopes/chat.write `chat:write:user` scope}.
* Bot users in this context are considered authed users. If unused or `false`, the message will be acted upon with
* {@link https://api.slack.com/scopes/chat:write:bot `chat:write:bot` scope}.
* {@link https://docs.slack.dev/reference/scopes/chat.write `chat:write:bot` scope}.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👁️‍🗨️ ✨

@zimeg
Copy link
Member

zimeg commented Jul 11, 2025

🗣️ Let's ignore the @codecov checks for now also - that shouldn't be blocking this from shipping!

@zimeg
Copy link
Member

zimeg commented Jul 11, 2025

📣 FWIW the more unexpected typos might soon be caught with slackapi/slack-health-score#105 I hope!

Co-authored-by: Eden Zimbelman <eden.zimbelman@salesforce.com>
@haleychaas haleychaas merged commit 74a47aa into main Jul 14, 2025
57 of 59 checks passed
@haleychaas haleychaas deleted the docs-haley-update-links-for-new-docs-site branch July 14, 2025 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs M-T: Documentation work only pkg:cli-hooks applies to `@slack/cli-hooks` pkg:cli-test applies to `@slack/cli-test` pkg:client (deprecated) applies to `@slack/client` pkg:events-api (deprecated) applies to `@slack/events-api` pkg:interactive-messages (deprecated) applies to `@slack/interactive-messages` pkg:logger applies to `@slack/logger` pkg:oauth applies to `@slack/oauth` pkg:rtm-api applies to `@slack/rtm-api` pkg:socket-mode applies to `@slack/socket-mode` pkg:types applies to `@slack/types` pkg:web-api applies to `@slack/web-api` pkg:webhook applies to `@slack/webhook` semver:patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants