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

# Slack

## What's supported

### Supported actions

This connector supports:

* [Read Actions](/read-actions), including full historic backfill. Please note that incremental reading is only supported for `conversations`, `files`, `usergroups`, `users.conversations`, and `users`. For all other objects, a full read of the Slack instance will be done per scheduled read.
* [Write Actions](/write-actions).
* [Proxy Actions](/proxy-actions), using the base URL `https://slack.com/api`.

### Supported objects

The Slack connector supports reading from the following objects:

* [auth.teams](https://docs.slack.dev/reference/methods/auth.teams.list)
* [conversations](https://docs.slack.dev/reference/methods/conversations.list) (supports incremental read)
* [conversations.listConnectInvites](https://docs.slack.dev/reference/methods/conversations.listConnectInvites)
* [conversations.requestSharedInvite](https://docs.slack.dev/reference/methods/conversations.requestSharedInvite.list)
* [files](https://docs.slack.dev/reference/methods/files.list) (supports incremental read)
* [files.remote](https://docs.slack.dev/reference/methods/files.remote.list)
* [reactions](https://docs.slack.dev/reference/methods/reactions.list)
* [team.externalTeams](https://docs.slack.dev/reference/methods/team.externalTeams.list)
* [usergroups](https://docs.slack.dev/reference/methods/usergroups.list) (supports incremental read)
* [users.conversations](https://docs.slack.dev/reference/methods/users.conversations) (supports incremental read)
* [users](https://docs.slack.dev/reference/methods/users.list) (supports incremental read)

The Slack connector supports writing to the following objects:

* [bookmarks](https://docs.slack.dev/reference/methods/bookmarks.add)
* [calls](https://docs.slack.dev/reference/methods/calls.add)
* [canvases](https://docs.slack.dev/reference/methods/canvases.create)
* [conversations](https://docs.slack.dev/reference/methods/conversations.create)
* [conversations.canvases](https://docs.slack.dev/reference/methods/conversations.canvases.create)
* [files.remote](https://docs.slack.dev/reference/methods/files.remote.add)
* [slackLists](https://docs.slack.dev/reference/methods/slackLists.create)
* [slackLists.items](https://docs.slack.dev/reference/methods/slackLists.items.create)
* [usergroups](https://docs.slack.dev/reference/methods/usergroups.create)

### Example integration

For an example manifest file of a Slack integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/slack/amp.yaml).

## Before you get started

To connect Slack with Ampersand, you will need [a Slack Developer Account](https://api.slack.com/developer-program/join).

Once your account is created, you'll need to create an app in Slack, configure the Ampersand redirect URI within the app, and obtain the following credentials from your app:

* Client ID
* Client Secret
* Bot scopes (user scopes are currently not supported)

You will then use these credentials to connect your application to Ampersand.

### Create a Slack Account

Here's how you can sign up for a Slack account:

* Go to the [Slack Sign Up page](https://api.slack.com/developer-program/join).
* Sign up using your preferred method and verify your email.

### Creating a Slack App

Follow the steps below to create a Slack app and add the Ampersand redirect URL.

1. Log in to your [Slack Developer](https://slack.com/signin) account.

2. Click **Your Apps**.

3. Click the **Create New App** button.

4. In the **Create a Slack App** pop-up window, enter the **App Name** and select the **Development Slack Workspace** where you want to develop your app. Click **Create App**.

5. In the left-hand sidebar, navigate to **OAuth & Permissions**.

6. In the **Redirect URLs** section, click **Add a Redirect URL** and enter the Ampersand redirect URL: `https://api.withampersand.com/callbacks/v1/oauth`.

7. Click **Add** and then **Save URLs**.

8. In the **Scopes** section, add the necessary **Bot Token Scopes** for your app by clicking on **Add an OAuth Scope** and selecting the required scopes. **User Token Scopes are currently not supported.**

   <img src="https://mintcdn.com/ampersand-24eb5c1a/p4alBfPjHeNuBPh1/images/provider-guides/23f128f-slack1.gif?s=034da8605c64a03bacc8587a1a309a5e" alt="Slack App Creation" width="1440" height="670" data-path="images/provider-guides/23f128f-slack1.gif" />

   You will find the **Client ID** and **Client Secret** in the **Basic Information** section. Note these credentials, as you will need them to connect your app to Ampersand.

## Add Your Slack App Info to Ampersand

1. Log in to your [Ampersand Dashboard](https://dashboard.withampersand.com).

2. Select the project where you want to create a Slack integration.

   <img src="https://mintcdn.com/ampersand-24eb5c1a/Bx3tggG51e0liOp-/images/provider-guides/31a6a12-Ampersand.png?fit=max&auto=format&n=Bx3tggG51e0liOp-&q=85&s=7ebd893fd2a976ebe7cf8af53f8581b8" alt="Ampersand Project Selection" width="2244" height="442" data-path="images/provider-guides/31a6a12-Ampersand.png" />

3. Select **Provider Apps**.

4. Select **Slack** from the **Provider** list.

5. Enter the previously obtained **Client ID** in the **Client ID** field and the **Client Secret** in the **Client Secret** field.

6. Enter the **bot scopes** set for your application in *Slack*.

   <img src="https://mintcdn.com/ampersand-24eb5c1a/Bx3tggG51e0liOp-/images/provider-guides/88f33d5-slack2.gif?s=57ff1a64fa0eebef214b3df924b05b24" alt="Ampersand Integration" width="766" height="522" data-path="images/provider-guides/88f33d5-slack2.gif" />

7. Click **Save Changes**.

## Using the connector

To start integrating with Slack:

* Create a manifest file like the [example above](https://github.com/amp-labs/samples/blob/main/slack/amp.yaml).
* Deploy it using the [amp CLI](/cli/overview).
* If you are using [Read Actions](/read-actions), create a [destination](/destinations).
* Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their Slack authorization.
* Start using the connector.
  * If your integration has [Read Actions](/read-actions), you'll start getting webhook messages.
  * If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API.
  * If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls.
