Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3680159
fix: remove trailing spaces before making additional changes
zimeg May 9, 2025
5370b10
docs: title case the title of the getting started guide
zimeg May 9, 2025
769dec5
docs: rewrite getting started guide as a 'build your first app' tutorial
zimeg May 9, 2025
4f321d9
chore: merge w main
zimeg Jun 24, 2025
95a7f58
docs: cli instructions for starting the app
zimeg Jul 7, 2025
08c6e97
chore: merge w main
zimeg Jul 7, 2025
939dc5e
fix: remove duplicated languages from merge conflicts
zimeg Jul 7, 2025
09cb24f
chore: merge w main
zimeg Jul 31, 2025
6e398cd
docs: edits for "guide building an app tutorial using the slack cli" …
lukegalbraithrussell Aug 1, 2025
a8026bd
docs: end sentances with a punctuation and remove horizontal breaks
zimeg Aug 1, 2025
5e3f6a9
docs: use a placeholder link for a blank template
zimeg Aug 1, 2025
cbc637b
docs: move setup on app settings for actions into http request steps
zimeg Aug 1, 2025
8dcce1f
docs: link to the running the app section
zimeg Aug 1, 2025
c633644
chore: merge w main
zimeg Aug 1, 2025
89988bd
chore: merge w main
zimeg Aug 16, 2025
7202723
docs: use the correct updates from git conflicts
zimeg Aug 16, 2025
26d7863
docs: remove docusuaurs config
zimeg Aug 16, 2025
238e7d6
docs: update references to quickstart guide and slack samples github org
zimeg Aug 19, 2025
6c57403
docs: polish ordering of steps with explicit wording
zimeg Aug 19, 2025
8c2d232
docs: link to token authentication pages
zimeg Aug 20, 2025
19202e0
docs: recommend the latest active release
zimeg Aug 20, 2025
518df09
docs(build): remove tab imports in a unified site
zimeg Aug 20, 2025
d738a1e
docs: revert sidebar to shorthand title
zimeg Aug 20, 2025
33c3918
docs: optimise the first line for link previews
zimeg Aug 20, 2025
82d9d48
docs: add a reaction to the message not post
zimeg Aug 22, 2025
a0de76c
docs: make clear added bot to the conversations
zimeg Aug 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
476 changes: 301 additions & 175 deletions docs/english/building-an-app.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/english/concepts/message-listening.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Listening to messages

To listen to messages that [your app has access to receive](https:///messaging/retrieving#permissions), you can use the `message()` method which filters out events that aren’t of type `message` .A `message()` listener is equivalent to `event('message')`
To listen to messages that [your app has access to receive](/messaging/retrieving-messages/#permissions), you can use the `message()` method which filters out events that aren’t of type `message`. A `message()` listener is equivalent to `event('message')`.

The `message()` listener accepts an optional `pattern` parameter of type `string` or `RegExp` object which filters out any messages that don’t match the pattern.

Expand Down
26 changes: 13 additions & 13 deletions docs/english/deployments/aws-lambda.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ When you’re finished, you’ll have this ⚡️[Deploying to AWS Lambda app](h

If you don't already have an account, you should [sign up for AWS](https://aws.amazon.com/) and follow the on-screen instructions.

:::info
:::info

You may be asked for payment information during the sign up. Don't worry, this guide only uses the [free tier](https://aws.amazon.com/lambda/pricing/).

Expand All @@ -30,7 +30,7 @@ Next, you'll need programmatic access to your AWS account to deploy onto Lambda.

We recommend watching this short, step-by-step video to 🍿 [create an IAM user and download the access keys](https://www.youtube.com/watch?v=KngM5bfpttA).

:::tip[Do you already have an IAM user?]
:::tip[Do you already have an IAM user?]

Follow the official AWS guide to [create access keys for existing IAM users](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds).

Expand Down Expand Up @@ -82,10 +82,10 @@ You're now set up with the Serverless tools! Let's move on to preparing your Bol

## Get a Bolt Slack app {#get-a-bolt-slack-app}

If you haven't already built your own Bolt app, you can use our [Getting Started guide](/tools/bolt-js/getting-started) or clone the template app below:
If you haven't already built your own Bolt app, you can use our [Quickstart guide](/tools/bolt-js/getting-started) or clone the template app below:

```shell
git clone https://github.com/slackapi/bolt-js-getting-started-app.git
git clone https://github.com/slack-samples/bolt-js-getting-started-app.git
```

After you have a Bolt app, navigate to its directory:
Expand Down Expand Up @@ -115,7 +115,7 @@ const app = new App({

Next, we'll customize your Bolt app's [`receiver`](/tools/bolt-js/concepts/receiver) to respond to Lambda function events.

Update the [source code that imports your modules](https://github.com/slackapi/bolt-js-getting-started-app/blob/4c29a21438b40f0cbca71ece0d39b356dfcf88d5/app.js#L1) in `app.js` to require Bolt's AwsLambdaReceiver:
Update the [source code that imports your modules](https://github.com/slack-samples/bolt-js-getting-started-app/blob/4c29a21438b40f0cbca71ece0d39b356dfcf88d5/app.js#L1) in `app.js` to require Bolt's AwsLambdaReceiver:

```javascript
const { App, AwsLambdaReceiver } = require('@slack/bolt');
Expand All @@ -127,7 +127,7 @@ If implementing authentication with OAuth, you must use the [`ExpressReceiver`](

:::

Then update the [source code that initializes your Bolt app](https://github.com/slackapi/bolt-js-getting-started-app/blob/4c29a21438b40f0cbca71ece0d39b356dfcf88d5/app.js#L10-L14) to create a custom receiver using AwsLambdaReceiver:
Then update the [source code that initializes your Bolt app](https://github.com/slack-samples/bolt-js-getting-started-app/blob/4c29a21438b40f0cbca71ece0d39b356dfcf88d5/app.js#L10-L14) to create a custom receiver using AwsLambdaReceiver:

```javascript
// Initialize your custom receiver
Expand All @@ -151,7 +151,7 @@ const app = new App({
});
```

Finally, at the bottom of your app, update the [source code that starts the HTTP server](https://github.com/slackapi/bolt-js-getting-started-app/blob/main/app.js#L47-L52) to now respond to an AWS Lambda function event:
Finally, at the bottom of your app, update the [source code that starts the HTTP server](https://github.com/slack-samples/bolt-js-getting-started-app/blob/main/app.js#L47-L52) to now respond to an AWS Lambda function event:

```javascript
// Handle the Lambda function event
Expand Down Expand Up @@ -189,11 +189,11 @@ plugins:
- serverless-offline
```

:::info
:::info

`SLACK_SIGNING_SECRET` and `SLACK_BOT_TOKEN` must be environment variables on your local machine.

You can [learn how to export Slack environment variables](/tools/bolt-js/getting-started#setting-up-your-project) in our Getting Started guide.
You can [learn how to export Slack environment variables](/tools/bolt-js/getting-started#creating-a-project) in our Quickstart guide.

:::

Expand Down Expand Up @@ -233,9 +233,9 @@ Next, use ngrok to forward Slack events to your local machine:
ngrok http 3000
```

:::info
:::info

[Learn how to use ngrok](/tools/bolt-js/getting-started#setting-up-events) to create a public URL and forward requests to your local machine.
[Learn how to use ngrok](/tools/bolt-js/building-an-app#preparing-receive-events) to create a public URL and forward requests to your local machine.

:::

Expand All @@ -255,7 +255,7 @@ Second, select **Event Subscriptions** from the side and update the **Request UR

### 3. Test your Slack app

Now you can test your Slack app by inviting your app to a channel then saying “hello” (lower-case). Just like in the [Getting Started guide](/tools/bolt-js/getting-started), your app should respond back:
Now you can test your Slack app by inviting your app to a channel then saying “hello” (lower-case). Just like in the [Quickstart guide](/tools/bolt-js/getting-started#running-the-app), your app should respond back:

```
> 👩‍💻 hello
Expand Down Expand Up @@ -360,4 +360,4 @@ Now that you've built and deployed a basic app, here are some ideas you can expl
- Brush up on [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) and the [Serverless Framework](https://www.serverless.com/framework/docs/providers/aws/guide/intro/).
- Extend your app with other Bolt capabilities and [Serverless plugins](https://www.serverless.com/framework/docs/providers/aws/guide/plugins/).
- Learn about [logging](/tools/bolt-js/concepts/logging) and how to [view log messages with Serverless](https://www.serverless.com/framework/docs/providers/aws/cli-reference/logs/).
- Get ready for primetime with AWS Lambda [testing](https://www.serverless.com/framework/docs/providers/aws/guide/testing/) and [deployment environments](https://www.serverless.com/framework/docs/providers/aws/guide/deploying/).
- Get ready for primetime with AWS Lambda [testing](https://www.serverless.com/framework/docs/providers/aws/guide/testing/) and [deployment environments](https://www.serverless.com/framework/docs/providers/aws/guide/deploying/).
23 changes: 12 additions & 11 deletions docs/english/deployments/heroku.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ When you’re finished, you’ll have this ⚡️[Deploying to Heroku app](https

:::warning

Using Heroku dynos to complete this tutorial counts towards your usage. [Delete your app](https://devcenter.heroku.com/articles/heroku-cli-commands#heroku-apps-destroy) as soon as you are done to control costs.
Using Heroku dynos to complete this tutorial counts towards your usage. [Delete your app](https://devcenter.heroku.com/articles/heroku-cli-commands#heroku-apps-destroy) as soon as you are done to control costs.

:::

---

## Get a Bolt Slack app {#get-a-bolt-slack-app}

If you haven't already built your own Bolt app, you can use our [Getting Started guide](/tools/bolt-js/getting-started) or clone the template app below:
If you haven't already built your own Bolt app, you can use our [Quickstart guide](/tools/bolt-js/getting-started) or clone the template app below:

```shell
git clone https://github.com/slackapi/bolt-js-getting-started-app.git
git clone https://github.com/slack-samples/bolt-js-getting-started-app.git
```

After you have a Bolt app, navigate to its directory:
Expand All @@ -36,7 +36,7 @@ Heroku is a flexible platform that requires some configuration to host your app.

### 1. Use a Git repository

:::info
:::info

Skip this step if you used `git clone` in the previous section because you already have a Git repository.

Expand Down Expand Up @@ -69,7 +69,7 @@ git add Procfile
git commit -m "Add Procfile"
```

:::info
:::info

Are you following this guide with an existing Bolt app? If so, please review the guide on [preparing a codebase for Heroku](https://devcenter.heroku.com/articles/preparing-a-codebase-for-heroku-deployment#4-listen-on-the-correct-port) to listen on the correct port.

Expand Down Expand Up @@ -106,7 +106,8 @@ The Heroku CLI connects your local machine with your Heroku account. [Sign up fo
```shell
heroku login
```
:::warning

:::warning

If you're behind a firewall, you may need to [set the proxy environment variables](https://devcenter.heroku.com/articles/using-the-cli#using-an-http-proxy) for the Heroku CLI.

Expand Down Expand Up @@ -181,9 +182,9 @@ heroku config:set SLACK_SIGNING_SECRET=<your-signing-secret>
heroku config:set SLACK_BOT_TOKEN=xoxb-<your-bot-token>
```

:::info
:::info

If you don't know where to find your credentials, please read about [exporting your signing secret and token](/tools/bolt-js/getting-started#tokens-and-installing-apps) in the Getting Started guide.
If you don't know where to find your credentials, please read about [exporting your signing secret and token](/tools/bolt-js/building-an-app#preparing-receive-events) in the Building an app guide.

:::

Expand All @@ -205,7 +206,7 @@ You can now deploy your app with the command:
git push heroku main
```

:::info
:::info

Heroku deploys code that's pushed to the [master or main branches](https://devcenter.heroku.com/articles/git-branches). Pushing to other branches will not trigger a deployment.

Expand Down Expand Up @@ -253,7 +254,7 @@ Second, select **Event Subscriptions** from the side and update the **Request UR

Your app is now deployed and Slack is updated, so let's try it out!

Open a Slack channel that your app has joined and say "hello" (lower-case). Just like in the [Getting Started guide](/tools/bolt-js/getting-started#sending-and-responding-to-actions), your app should respond back. If you don't receive a response, check your **Request URL** and try again.
Open a Slack channel that your app has joined and say "hello" (lower-case). Just like in the [Quickstart guide](/tools/bolt-js/getting-started#running-the-app), your app should respond back. If you don't receive a response, check your **Request URL** and try again.

---

Expand Down Expand Up @@ -296,4 +297,4 @@ Now that you've deployed a basic app, you can start exploring how to customize a
- Brush up on [how Heroku works](https://devcenter.heroku.com/articles/how-heroku-works) and understand the [limitations of a Heroku Eco Dyno app](https://devcenter.heroku.com/articles/eco-dyno-hours).
- Extend your app with with other Bolt capabilities and and [Heroku's Add-ons](https://elements.heroku.com/addons).
- Learn about [logging](/tools/bolt-js/concepts/logging) and how to [view log messages in Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs#view-logs).
- Get ready for primetime with [how to scale your Heroku app](https://devcenter.heroku.com/articles/getting-started-with-nodejs#scale-the-app).
- Get ready for primetime with [how to scale your Heroku app](https://devcenter.heroku.com/articles/getting-started-with-nodejs#scale-the-app).
3 changes: 0 additions & 3 deletions docs/english/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ sidebar_label: Quickstart

This quickstart guide aims to help you get a Slack app using Bolt for JavaScript up and running as soon as possible!

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

When complete, you'll have a local environment configured with a customized [app](https://github.com/slack-samples/bolt-js-getting-started-app) running that responds to a simple greeting.

:::tip[Reference for readers]
Expand Down
4 changes: 2 additions & 2 deletions docs/english/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Bolt for JavaScript

Bolt for JavaScript is a JavaScript framework to build Slack apps with the latest Slack platform features. Read the [Getting Started Guide](/tools/bolt-js/getting-started) to set up and run your first Bolt app.
Bolt for JavaScript is a JavaScript framework to build Slack apps with the latest Slack platform features. Read the [Quickstart Guide](/tools/bolt-js/getting-started) to set up and run your first Bolt app.

Then, explore the rest of the pages within the Guides section. The documentation there will help you build a Bolt app for whatever use case you may have.

Expand All @@ -18,4 +18,4 @@ If you otherwise get stuck, we're here to help. The following are the best ways
These docs live within the [Bolt-JS](https://github.com/slackapi/bolt-js/) repository and are open source.

We welcome contributions from everyone! Please check out our
[Contributor's Guide](https://github.com/slackapi/bolt-js/blob/main/.github/contributing.md) for how to contribute in a helpful and collaborative way.
[Contributor's Guide](https://github.com/slackapi/bolt-js/blob/main/.github/contributing.md) for how to contribute in a helpful and collaborative way.
4 changes: 2 additions & 2 deletions docs/english/legacy/hubot-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,14 @@ The [Events API](/legacy/legacy-bot-users#handling-events) is a bot's equivalent

:::info

Before you configure your bot’s events, you’ll need a public URL. If you’ve never created a Bolt for JavaScript app or never used the Events API, it’d be helpful to go through [setting up your local Bolt project](/tools/bolt-js/getting-started) and [setting up events](/tools/bolt-js/getting-started#setting-up-events) in the Getting Started guide.
Before you configure your bot’s events, you’ll need a public URL. If you’ve never created a Bolt for JavaScript app or never used the Events API, it’d be helpful to go through [setting up your local Bolt project](/tools/bolt-js/building-an-app) and [setting up events](/tools/bolt-js/building-an-app#preparing-receive-events) in the Getting Started guide.

:::

### Listening for messages
All Hubot apps can listen to messages by default, so we need to configure your bot user to do the same.

After walking through [setting up events](/tools/bolt-js/getting-started#setting-up-events), your Request URL should be verified. Scroll down to **Subscribe to Bot Events**. There are four events related to messages: `message.channels` (listens for messages in public channels), `message.groups` (listens for messages in private channels), `message.im` (listens for messages in the App Home/DM space), and `message.mpim` (listens for messages in multi-person DMs).
After walking through [setting up events](/tools/bolt-js/building-an-app#preparing-receive-events), your Request URL should be verified. Scroll down to **Subscribe to Bot Events**. There are four events related to messages: `message.channels` (listens for messages in public channels), `message.groups` (listens for messages in private channels), `message.im` (listens for messages in the App Home/DM space), and `message.mpim` (listens for messages in multi-person DMs).

If you only want your bot to listen to messages in channels, you can listen to `message.channels` and `message.groups`. Or if you want your bot to listen to messages from everywhere it is, choose all four message events.

Expand Down
2 changes: 1 addition & 1 deletion docs/english/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_label: Reference

# Bolt for JavaScript interface and configuration reference

This guide is intended to detail the Bolt interface–including listeners and their arguments, initialization options, and errors. It may be helpful to first go through the ⚡️[Getting Started guide](/tools/bolt-js/getting-started) to learn the basics of building Bolt for JavaScript apps.
This guide is intended to detail the Bolt interface–including listeners and their arguments, initialization options, and errors. It may be helpful to first go through the ⚡️[Building an app guide](/tools/bolt-js/building-an-app) to learn the basics of building Bolt for JavaScript apps.

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ All of your app's settings can be configured within these screens. By creating a

Navigate to **Event Subscriptions** and expand **Subscribe to bot events** to see that we have subscribed to the `function_executed` event. This is also a requirement for adding workflow steps to our app, as it lets our app know when a step has been triggered, allowing our app to respond to it.

Another configuration setting to note is **Socket Mode**. We have turned this on for our local development, but socket mode is not intended for use in a production environment. When you are satisfied with your app and ready to deploy it to a production environment, you should switch to using public HTTP request URLs. Read more about getting started with HTTP in [Bolt for JavaScript here](/tools/bolt-js/getting-started).
Another configuration setting to note is **Socket Mode**. We have turned this on for our local development, but socket mode is not intended for use in a production environment. When you are satisfied with your app and ready to deploy it to a production environment, you should switch to using public HTTP request URLs. Read more about getting started with HTTP in [Bolt for JavaScript here](/tools/bolt-js/building-an-app).

Clicking on **Workflow Steps** in the left nav will show you that one workflow step has been added! This reflects the `function` defined in our manifest: functions are workflow steps. We will get to this step's implementation later.

Expand Down
3 changes: 0 additions & 3 deletions docs/japanese/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,6 @@ node app.js

Slack ワークスペースで発生するイベント(メッセージが投稿されたときや、メッセージに対するリアクションがつけられたときなど)をリッスンするには、[Events API を使って特定の種類のイベントをサブスクライブします](/apis/events-api/)。

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs groupId="socket-or-http">
<TabItem value="socket-mode" label="Socket Mode">

Expand Down