← All tools

@slack/cli-hooks

Popularity 65 Updated Development & Build

Node implementation of the contract between the Slack CLI and Bolt for JavaScript

npmauto-collected

Installation

npm
npm install -g @slack/cli-hooks

Install with npm.

Node Slack SDK

Getting Started

Visit the documentation site for all the lovely details.

This SDK is a collection of single-purpose packages. The packages are aimed at making building Slack apps easy, performant, secure, and scalable. They can help with just about anything in the Slack platform, from dropping notifications in channels to fully interactive bots.

The Slack platform offers several APIs to build apps. Each Slack API delivers part of the capabilities from the platform, so that you can pick just those that fit for your needs. This SDK offers a corresponding package for each of Slack's APIs. They are small and powerful when used independently, and work seamlessly when used together, too.

Just starting out? The Getting Started tutorial will walk you through building your first Slack app using Node.js.

| Slack API | Use | NPM Package | |--------------|--------------|-------------------| | Web API | Send data to or query data from Slack using any of over 270 methods. | @slack/web-api | | OAuth | Set up the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | @slack/oauth | | Incoming Webhooks | Send notifications to a single channel which the user picks on installation. | @slack/webhook | | Socket Mode | Listen for incoming messages and a limited set of events happening in Slack, using WebSocket. | @slack/socket-mode |

Not sure about which APIs are right for your app? Read our blog post that explains the options. If you're still not sure, reach out for help and our community can guide you.

Installation

Use your favorite package manager to install any of the packages and save to your package.json:

$ npm install @slack/web-api @slack/socket-mode

# Or, if you prefer yarn
$ yarn add @slack/web-api @slack/socket-mode

Usage

The following examples summarize the most common ways to use this package. There's also a Getting Started tutorial that's perfect for just starting out, and each package's documentation, linked in the table above.

Posting a message with Web API

Your app will interact with the Web API through the WebClient object, which is an export from @slack/web-api. You typically instantiate a client with a token you received from Slack. The example below shows how to post a message into a channel, DM, MPDM, or group. The WebClient object makes it simple to call any of the over 270 Web API methods.

import { WebClient } from '@slack/web-api';

// An access token (from your Slack app or custom integration - xoxp, xoxb)
const token = process.env.SLACK_TOKEN;

const web = new WebClient(token);

// This argument can be a channel ID, a DM ID, a MPDM ID, or a group ID
const conversationId = 'C1232456';

(async () => {
  // See: https://docs.slack.dev/reference/methods/chat.postMessage

// res contains information about the posted message console.log('Message sent: ', res.ts); })();


**Note**: To use the example above, the token is required to have either the `bot`, `chat:user:write`, or
`chat:bot:write` scopes.

**Tip**: Use the [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) for a playground
where you can prototype your message's look and feel.

### Listening for an event with the Events API

Refer to [Bolt for JavaScript document pages](https://docs.slack.dev/tools/bolt-js/concepts/event-listening).

### Responding to interactive messages