> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/project-management/slack/common-issues.md).

# Common Issues

## Connection issues

<details>

<summary>My Slack API token is not being accepted</summary>

Double-check that you're using a **User OAuth Token** (starts with `xoxp-`), not a Bot Token (`xoxb-`). Bot tokens lack the `search:read` scope required for the Messages entity. Generate a new user token at api.slack.com under **OAuth & Permissions** and make sure the following scopes are added: `channels:read`, `channels:history`, `users:read`, and `search:read`.

</details>

<details>

<summary>The data flow connects but returns no data</summary>

For the Messages entity, this usually means your search query returned no results. Test the same query directly in Slack's search bar to verify it returns messages. Also confirm your token has access to the channels referenced in the query.

</details>

## Missing data

<details>

<summary>Bot messages are missing from my export</summary>

Slack's search API does not reliably index messages posted by bots, especially those sent via incoming webhooks or the `postMessage` API without a linked user identity. This is a Slack platform limitation. If you need bot messages, consider exporting the full channel history using a bot token with `channels:history` scope — though this requires a different approach than the search-based Messages entity.

</details>

<details>

<summary>Thread replies are not showing up</summary>

Thread replies are separate messages in Slack's data model and may not surface in a general channel search. Try a more targeted search query using the `in:#channel` modifier combined with keywords from the thread. Full thread export is not natively supported by Slack's search API.

</details>

<details>

<summary>I can't see messages from private channels</summary>

Private channel messages are only accessible if the user whose token you're using is a **member of that channel**. Ask a channel member to generate the token, or have a workspace admin add the token owner to the channel.

</details>

<details>

<summary>File attachments and images are not in my export</summary>

Coupler.io exports attachment **metadata** — the file name, type, and Slack-hosted URL — but does not download or transfer the actual files or images. This is by design and reflects how Slack's API exposes attachment data.

</details>

## Permission errors

<details>

<summary>I get a "missing_scope" error</summary>

This means your token is missing one or more required OAuth scopes. Go to your Slack app settings at api.slack.com, navigate to **OAuth & Permissions**, and add the missing scope. Then reinstall the app to your workspace to generate a new token with the updated permissions.

</details>

## Data discrepancies

<details>

<summary>Message counts in Coupler.io don't match what I see in Slack</summary>

Slack's search API has a result limit and returns messages in relevance order, not strict chronological order. Very large result sets may be paginated or capped. To reduce discrepancies, narrow your search query with specific date ranges using `before:` and `after:` modifiers and break large exports into smaller time windows.

</details>

<details>

<summary>User list includes deactivated accounts</summary>

The Users entity includes all workspace members, including deactivated ones. You can identify deactivated accounts using the `deleted` field — filter your destination sheet to show only rows where `deleted` is `false`.

</details>

## Rate limits

<details>

<summary>The data flow is slow or times out on large workspaces</summary>

Slack applies rate limits on its search and users APIs (typically Tier 2: \~20 requests/minute). For large workspaces or broad search queries, exports may take longer. Narrow your search query to a specific channel and date range to reduce the volume of requests and speed up the export.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/project-management/slack/common-issues.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
