> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsolve.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Upsolve for Slack

> Ask your Upsolve workspace questions in Slack and get answers, charts and next steps in the thread, under your own data access.

Upsolve for Slack brings your Upsolve analytics agent into Slack. Send the **Upsolve** bot a direct message, or @mention it in a channel, and ask a question about your business data in plain language: "What was revenue by region last quarter?", "Which customers churned in September?". The agent writes and runs the query against your Upsolve workspace and answers in the thread with:

* **The answer** in words.
* **Charts**, drawn in your workspace's theme, posted as images.
* **What to ask next**: one-click buttons with follow-up questions the agent suggests.
* **Continue in Upsolve**: a link that opens the same conversation in Upsolve, where you can keep exploring or save the charts to a canvas.

It is the same agent your team uses in Upsolve and through the Claude connector, so an answer in Slack matches the one you would get anywhere else.

> [!WARNING]
>
> **Answers are generated by AI and can be wrong.** Every answer links to the full conversation in Upsolve, where you can see the query and data behind it; check important figures before you act on them.

## How it works in Slack

1. **Ask.** Send the Upsolve bot a direct message, or @mention `@Upsolve` in a channel your admin has turned on.
2. **Link your account, once.** The first time you ask, the bot replies with a **Connect Upsolve** button. It opens Upsolve, where you confirm, signed in, that this Slack user is you. The link is single-use and expires after 15 minutes. You never type in an account to map.
3. **Get the answer.** The bot posts "Asking …" while the agent works, then replaces it with the answer, followed by any charts and a footer with follow-up buttons and the link back to Upsolve.
4. **Keep going.** Reply in the same thread, or press a follow-up button, and the conversation continues where it left off. A new top-level message starts a new conversation.

### Every answer uses your own data access

The bot answers **as the person who asked**: their Upsolve account, their role and their row-level security. Two people asking the same question can get different numbers, each seeing only the rows they are allowed to see.

Because of that, answers to questions asked in a channel go to the asker's **direct messages** by default, so nobody in the channel sees rows their own access does not include. The bot acknowledges the question privately in the channel. An admin can turn on **Allow answers in shared channels** to answer in the channel's thread instead; each answer then says whose data access produced it.

### What the bot does and does not do

* It reads only messages sent to it: direct messages to the Upsolve bot, and messages that @mention it in channels an admin has turned on. It does not read other channel messages or join channels by itself.
* It posts only in the threads it was asked in, and in the asker's direct messages.
* It never answers for someone who has not linked an Upsolve account, or whose account is no longer a member of the connected Upsolve organization.

## Install Upsolve for Slack

You need an Upsolve account with the **owner** or **admin** role in your organization, and a published Upsolve workspace. Don't have an account yet? [Book a demo or sign up at upsolve.ai](https://upsolve.ai).

> **[Add to Slack](https://ai-hub.upsolve.ai)**
>
> Sign in to Upsolve, then follow the steps below.

1. Sign in at [ai-hub.upsolve.ai](https://ai-hub.upsolve.ai) and open the workspace you want people to ask in Slack.
2. Open the workspace's **Settings** and select the **Slack** tab.
3. Click **Add to Slack**, choose your Slack workspace on Slack's page and click **Allow**.
4. Back in Upsolve you see "Upsolve is connected to Slack." Choose your settings:
   * **Answer in Slack** turns answering on or off. It is on after installing.
   * **Add channel** picks the channels where the bot answers @mentions. With none, it answers direct messages only. Invite the bot to each channel you add (`/invite @Upsolve`).
   * **Allow answers in shared channels** is off by default; see [Every answer uses your own data access](#every-answer-uses-your-own-data-access).
5. Tell your team to send the Upsolve bot a direct message. Each person links their own Upsolve account the first time they ask.

One Slack workspace connects to one Upsolve workspace.

## Optional: Slack as a tool for the agent

Separately from the bot, a person can let Upsolve's agent use **Slack itself** as a source: search public channels, read a public conversation they point it to, or post a message as them when they ask it to. Open **Project Settings → MCP Connectors → Add → Communication → Slack** (for the whole workspace) or **Add MCP server → Slack** in the chat's MCP panel (just for you), and allow access on Slack's page.

This asks for a few **user** permissions, listed in [Permissions](#permissions). They are requested only by this sign-in, never by **Add to Slack**, and they leave private channels and direct messages out. The bot works without them.

## Permissions

What Upsolve asks for, and why.

**Bot permissions** (requested by **Add to Slack**):

| Permission | Why Upsolve needs it |
| - | - |
| `app_mentions:read` | Receive questions when someone @mentions Upsolve in a channel an admin turned on. |
| `im:history` | Read the questions people send in their direct messages with Upsolve. |
| `chat:write` | Post answers, follow-up buttons and the account-linking prompt. |
| `im:write` | Open a direct message to deliver an answer privately when a channel question should not be answered in the channel. |
| `channels:read`, `groups:read` | List channels so an admin can pick, in Upsolve's Slack settings, which channels the bot answers in. |
| `users:read` | Show the person's Slack name on the account-linking confirmation page. |
| `files:write` | Upload chart images into the answer's thread. |

**User permissions** (requested only when someone connects Slack as a tool for the agent):

| Permission | Why Upsolve needs it |
| - | - |
| `search:read.public`, `search:read.users` | Let the agent search public channels and people when the user asks it to. |
| `channels:history`, `channels:read` | Read a public channel conversation the user asks the agent about. |
| `users:read` | Resolve names in what the agent reads. |
| `chat:write` | Post a message as the user, only when they ask the agent to. |

## Disconnect or uninstall

* **In Upsolve:** workspace **Settings → Slack → Disconnect**. Upsolve revokes its Slack token and deletes the connection and every person's account link.
* **In Slack:** remove the Upsolve app from your Slack workspace. Upsolve receives Slack's uninstall notice and deletes the connection and every account link the same way.

What Upsolve keeps and deletes is described in [Data and privacy](https://docs.upsolve.ai/slack/privacy.md).

## Troubleshooting

| You see | What to do |
| - | - |
| "This link has expired. Ask the Upsolve bot in Slack for a new one." | The Connect Upsolve link lasts 15 minutes and works once. Ask the bot anything to get a new one. |
| "Your Upsolve account isn't a member of the organization this Slack workspace is connected to." | Ask an Upsolve admin to invite you to the organization, or sign in with the account that is a member. |
| "That Slack workspace is already connected to another Upsolve workspace." | A Slack workspace connects to one Upsolve workspace. Disconnect it there first. |
| The bot does not answer an @mention in a channel | Add the channel under **Settings → Slack → Add channel**, and invite the bot to it. |
| Charts arrive as tables | A Slack connection made before chart images existed is missing a permission. Click **Add to Slack** again; your settings and everyone's links are kept. |

Still stuck? See [Support](https://docs.upsolve.ai/slack/support.md).

## Related

> **[Data and privacy](https://docs.upsolve.ai/slack/privacy.md)**
>
> What Upsolve for Slack stores, for how long, and how to delete it.

> **[Support](https://docs.upsolve.ai/slack/support.md)**
>
> How to reach us about Upsolve for Slack.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.