Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
82c6678
intiial removal
lukegalbraithrussell Jun 27, 2025
8e26628
new image links
lukegalbraithrussell Jun 27, 2025
2193624
moving sidebar into english
lukegalbraithrussell Jun 27, 2025
1ef1f9e
sidebar links
lukegalbraithrussell Jun 27, 2025
12879d9
typo
lukegalbraithrussell Jun 27, 2025
f5916b1
admonitions
lukegalbraithrussell Jun 27, 2025
16c2405
committing
lukegalbraithrussell Jul 7, 2025
00d87a0
merge conflicts
lukegalbraithrussell Jul 16, 2025
1be3bc3
broken images
lukegalbraithrussell Jul 16, 2025
3faca30
broken images
lukegalbraithrussell Jul 16, 2025
da6634d
broken images
lukegalbraithrussell Jul 16, 2025
158469f
moving reference
lukegalbraithrussell Jul 16, 2025
64ea774
that's not a reference
lukegalbraithrussell Jul 16, 2025
3fe9b80
actual reference
lukegalbraithrussell Jul 16, 2025
913ca1d
adds sidebar reference
lukegalbraithrussell Jul 16, 2025
74b7ee4
full link for reference
lukegalbraithrussell Jul 16, 2025
f12a645
matching sidebar
lukegalbraithrussell Jul 17, 2025
53ceb1c
quickstart uptop
lukegalbraithrussell Jul 17, 2025
7675e83
links
lukegalbraithrussell Jul 17, 2025
0f943e7
merge conflicts
lukegalbraithrussell Jul 30, 2025
fd63c54
removes doc deploy workflow
lukegalbraithrussell Jul 30, 2025
6acb821
merge conflicts
lukegalbraithrussell Aug 1, 2025
d538225
merge conflicts
lukegalbraithrussell Aug 2, 2025
fb7920b
reference link
lukegalbraithrussell Aug 2, 2025
68bd0f1
proper links
lukegalbraithrussell Aug 4, 2025
5c61bd7
links
lukegalbraithrussell Aug 4, 2025
af2b737
reference links
lukegalbraithrussell Aug 4, 2025
b812ec7
japanese sidebar
lukegalbraithrussell Aug 5, 2025
51acc89
condensed japanese docs
lukegalbraithrussell Aug 5, 2025
7eb1654
proper sidebar japanese
lukegalbraithrussell Aug 5, 2025
a20fa90
consolidated sidebar
lukegalbraithrussell Aug 5, 2025
800ca40
proper paths
lukegalbraithrussell Aug 5, 2025
640850b
hr in sidebar
lukegalbraithrussell Aug 5, 2025
c7e0c8f
japanese front matter
lukegalbraithrussell Aug 5, 2025
7fbc1ea
tools
lukegalbraithrussell Aug 6, 2025
7b1503f
remove manual slugs
lukegalbraithrussell Aug 6, 2025
51a0991
links
lukegalbraithrussell Aug 6, 2025
10224ad
links
lukegalbraithrussell Aug 6, 2025
b4460f2
github links
lukegalbraithrussell Aug 6, 2025
37aa624
incorrect link
lukegalbraithrussell Aug 6, 2025
1075bb0
fixing title
lukegalbraithrussell Aug 6, 2025
74ffa14
banner
lukegalbraithrussell Aug 6, 2025
cc19cd2
reference full links
lukegalbraithrussell Aug 6, 2025
bec2b6c
smaller links
lukegalbraithrussell Aug 6, 2025
e146127
tips
lukegalbraithrussell Aug 6, 2025
45f7421
Merge branch 'main' into build-docs-remove-docusaurus
lukegalbraithrussell Aug 6, 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
Prev Previous commit
Next Next commit
reference full links
  • Loading branch information
lukegalbraithrussell committed Aug 6, 2025
commit cc19cd26db3b686ca587410ddc5ec6e3628ff7e3
4 changes: 2 additions & 2 deletions docs/english/building-an-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ app = App(token=os.environ.get("SLACK_BOT_TOKEN"))

# Listens to incoming messages that contain "hello"
# To learn available listener arguments,
# visit https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html
# visit https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html
@app.message("hello")
def message_hello(message, say):
# say() sends a message to the channel where the event was triggered
Expand All @@ -233,7 +233,7 @@ app = App(

# Listens to incoming messages that contain "hello"
# To learn available listener arguments,
# visit https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html
# visit https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html
@app.message("hello")
def message_hello(message, say):
# say() sends a message to the channel where the event was triggered
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/acknowledge.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ We recommend calling `ack()` right away before initiating any time-consuming pro

:::

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# Example of responding to an external_select options request
@app.options("menu_selection")
Expand Down
4 changes: 2 additions & 2 deletions docs/english/concepts/actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Actions can be filtered on an `action_id` parameter of type `str` or `re.Pattern

You'll notice in all `action()` examples, `ack()` is used. It is required to call the `ack()` function within an action listener to acknowledge that the request was received from Slack. This is discussed in the [acknowledging requests guide](/tools/bolt-python/concepts/acknowledge).

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.

```python
# Your listener will be called every time a block element with the action_id "approve_button" is triggered
Expand Down Expand Up @@ -45,7 +45,7 @@ There are two main ways to respond to actions. The first (and most common) way i

The second way to respond to actions is using `respond()`, which is a utility to use the `response_url` associated with the action.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.

```python
# Your listener will be called every time an interactive component with the action_id “approve_button” is triggered
Expand Down
17 changes: 7 additions & 10 deletions docs/english/concepts/ai-apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ The Agents & AI Apps feature comprises a unique messaging experience for Slack.

That being said, using the `Assistant` class will streamline the process. And we already wrote this nice guide for you!

:::info
You _could_ go it alone and [listen](/tools/bolt-python/concepts/event-listening) for the `assistant_thread_started`, `assistant_thread_context_changed`, and `message.im` events (see implementation details below) in order to implement the AI features in your app. That being said, using the `Assistant` class will streamline the process. And we already wrote this nice guide for you!
:::

## The `Assistant` class instance {#assistant-class}

The `Assistant` class can be used to handle the incoming events expected from a user interacting with an app in Slack that has the Agents & AI Apps feature enabled. A typical flow would look like:
Expand Down Expand Up @@ -101,15 +97,16 @@ While the `assistant_thread_started` and `assistant_thread_context_changed` even

If you do provide your own `threadContextStore` property, it must feature `get` and `save` methods.

:::tip[Refer to the [module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]
:::tip[Refer to the [module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]
:::

## Handling a new thread {#handling-a-new-thread}

When the user opens a new thread with your AI-enabled app, the [`assistant_thread_started`](/reference/events/assistant_thread_started) event will be sent to your app.

:::tip
When a user opens an app thread while in a channel, the channel info is stored as the thread's `AssistantThreadContext` data. You can grab that info by using the `get_thread_context` utility, as subsequent user message event payloads won't include the channel info.
:::tip[When a user opens an app thread while in a channel, the channel info is stored as the thread's `AssistantThreadContext` data.]

You can grab that info by using the `get_thread_context` utility, as subsequent user message event payloads won't include the channel info.
:::

### Block Kit interactions in the app thread {#block-kit-interactions}
Expand Down Expand Up @@ -260,9 +257,9 @@ When the user messages your app, the [`message.im`](/reference/events/message.im
Messages sent to the app do not contain a [subtype](/reference/events/message#subtypes) and must be deduced based on their shape and any provided [message metadata](/messaging/message-metadata/).

There are three utilities that are particularly useful in curating the user experience:
* [`say`](https://docs.slack.dev/bolt-python/reference/#slack_bolt.Say)
* [`setTitle`](https://docs.slack.dev/bolt-python/reference/#slack_bolt.SetTitle)
* [`setStatus`](https://docs.slack.dev/bolt-python/reference/#slack_bolt.SetStatus)
* [`say`](https://docs.slack.dev/tools/bolt-python/reference/#slack_bolt.Say)
* [`setTitle`](https://docs.slack.dev/tools/bolt-python/reference/#slack_bolt.SetTitle)
* [`setStatus`](https://docs.slack.dev/tools/bolt-python/reference/#slack_bolt.SetStatus)

```python
...
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/app-home.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

You can subscribe to the [`app_home_opened`](/reference/events/app_home_opened) event to listen for when users open your App Home.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
@app.event("app_home_opened")
def update_home_tab(client, event, logger):
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ There are two ways to respond to slash commands. The first way is to use `say()`

When setting up commands within your app configuration, you'll append `/slack/events` to your request URL.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# The echo command simply echoes on command
@app.command("/echo")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/custom-steps-dynamic-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ A new `auto_acknowledge` flag allows you more granular control over whether spec

#### Example {#bolt-py}

In [Bolt for Python](https://docs.slack.dev/bolt-python/), you can set `auto_acknowledge=False` on a specific function decorator. This allows you to manually control when the `ack()` event acknowledgement helper function is executed. It flips Bolt to synchronous `function_executed` event handling mode for the specific handler.
In [Bolt for Python](https://docs.slack.dev/tools/bolt-python/), you can set `auto_acknowledge=False` on a specific function decorator. This allows you to manually control when the `ack()` event acknowledgement helper function is executed. It flips Bolt to synchronous `function_executed` event handling mode for the specific handler.

```py
@app.function("get-projects", auto_acknowledge=False)
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/custom-steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Your app can use the `function()` method to listen to incoming [custom step requ

You can reference your custom step's inputs using the `inputs` listener argument of type `dict`.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn about the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn about the available listener arguments.

```python
# This sample custom step formats an input and outputs it
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/event-listening.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ You can listen to [any Events API event](/reference/events) using the `event()`

The `event()` method requires an `eventType` of type `str`.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# When a user joins the workspace, send a message in a predefined channel asking them to introduce themselves
@app.event("team_join")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/global-middleware.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Global middleware is run for all incoming requests, before any listener middlewa

Both global and listener middleware must call `next()` to pass control of the execution chain to the next middleware.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
@app.use
def auth_acme(client, context, logger, payload, next):
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/listener-middleware.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Listener middleware is only run for the listener in which it's passed. You can p

If your listener middleware is a quite simple one, you can use a listener matcher, which returns `bool` value (`True` for proceeding) instead of requiring `next()` method call.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.

```python
# Listener middleware which filters out messages from a bot
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/message-listening.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ To listen to messages that [your app has access to receive](/messaging/retrievin

`message()` accepts an argument of type `str` or `re.Pattern` object that filters out any messages that don't match the pattern.

:::info[Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]
:::info[Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/message-sending.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Within your listener function, `say()` is available whenever there is an associa

In the case that you'd like to send a message outside of a listener or you want to do something more advanced (like handle specific errors), you can call `client.chat_postMessage` [using the client attached to your Bolt instance](/tools/bolt-python/concepts/web-api).

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# Listens for messages containing "knock knock" and responds with an italicized "who's there?"
@app.message("knock knock")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/opening-modals.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Your app receives `trigger_id` parameters in payloads sent to your Request URL t

Read more about modal composition in the [API documentation](/surfaces/modals#composing_views).

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.

```python
# Listen for a shortcut invocation
Expand Down
4 changes: 2 additions & 2 deletions docs/english/concepts/select-menu-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ While it's recommended to use `action_id` for `external_select` menus, dialogs d

To respond to options requests, you'll need to call `ack()` with a valid `options` or `option_groups` list. Both [external select response examples](/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select) and [dialog response examples](/reference/block-kit/block-elements/multi-select-menu-element#conversation_multi_select) can be found on our API site.

Additionally, you may want to apply filtering logic to the returned options based on user input. This can be accomplished by using the `payload` argument to your options listener and checking for the contents of the `value` property within it. Based on the `value` you can return different options. All listeners and middleware handlers in Bolt for Python have access to [many useful arguments](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) - be sure to check them out!
Additionally, you may want to apply filtering logic to the returned options based on user input. This can be accomplished by using the `payload` argument to your options listener and checking for the contents of the `value` property within it. Based on the `value` you can return different options. All listeners and middleware handlers in Bolt for Python have access to [many useful arguments](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) - be sure to check them out!

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# Example of responding to an external_select options request
@app.options("external_action")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ When setting up shortcuts within your app configuration, as with other URLs, you

⚠️ Note that global shortcuts do **not** include a channel ID. If your app needs access to a channel ID, you may use a [`conversations_select`](/reference/block-kit/block-elements/multi-select-menu-element#conversation_multi_select) element within a modal. Message shortcuts do include a channel ID.

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# The open_modal shortcut listens to a shortcut with the callback_id "open_modal"
@app.shortcut("open_modal")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/updating-pushing-views.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ To push a new view onto the view stack, you can use the built-in client to call

Learn more about updating and pushing views in our [API documentation](/surfaces/modals)

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# Listen for a button invocation with action_id `button_abc` (assume it's inside of a modal)
@app.action("button_abc")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/view-submissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def handle_view_closed(ack, body, logger):
logger.info(body)
```

Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.
```python
# Handle a view_submission request
@app.view("view_1")
Expand Down
2 changes: 1 addition & 1 deletion docs/english/concepts/web-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ You can call [any Web API method](/reference/methods) using the `WebClient` prov

The token used to initialize Bolt can be found in the `context` object, which is required to call most Web API methods.

:::info[Refer to [the module document](https://docs.slack.dev/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]
:::info[Refer to [the module document](https://docs.slack.dev/tools/bolt-python/reference/kwargs_injection/args.html) to learn the available listener arguments.]

:::

Expand Down
Loading