tap-slack from meltanolabs

Team communication tool

The tap-slack extractor pulls data from Slack that can then be sent to a destination using a loader.

Available Variants

Getting Started


If you haven't already, follow the initial steps of the Getting Started guide:

  1. Install Meltano
  2. Create your Meltano project

Creating the Tap-Slack App

In order to access the records in your workspace, you will need to create a new Slack App. Below is an example App Manifest that you can use for your workspace. If you would like to access additional channels, such as direct messages, you will need to provide additional scopes to your Slack app.

  major_version: 1
  minor_version: 1
  name: MeltanoLabs Tap-Slack
  description: Slack App to support the implementation of tap-slack
  long_description: This application is used for extracting channel, user, and message data from the Slack workspace via the tap-slack application. Found on GitHub at
    display_name: MeltanoLabs Tap-Slack
    always_online: false
      - channels:join
      - channels:history
      - channels:read
      - users:read
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false

Once you receive an API key you can test that it has proper access to your Slack app using the following curl command.

curl -X GET -H 'Authorization: Bearer <Your Token>'

Installation and configuration

  1. Add the tap-slack extractor to your project using
    meltano add
  2. meltano add extractor tap-slack
  3. Configure the tap-slack settings using
    meltano config
  4. meltano config tap-slack set --interactive
  5. Test that extractor settings are valid using
    meltano config
  6. meltano config tap-slack test

Next steps

If you run into any issues, learn how to get help.


The current capabilities for tap-slack may have been automatically set when originally added to the Hub. Please review the capabilities when using this extractor. If you find they are out of date, please consider updating them by making a pull request to the YAML file that defines the capabilities for this extractor.

This plugin has the following capabilities:

  • catalog
  • state
  • discover
  • about
  • stream-maps

You can override these capabilities or specify additional ones in your meltano.yml by adding the capabilities key.


The tap-slack settings that are known to Meltano are documented below. To quickly find the setting you're looking for, click on any setting name from the list:

You can override these settings or specify additional ones in your meltano.yml by adding the settings key.

Please consider adding any settings you have defined locally to this definition on MeltanoHub by making a pull request to the YAML file that defines the settings for this plugin.

API Key (api_key)

  • Environment variable: TAP_SLACK_API_KEY

Your Slack App API key. See the Prerequisites section above for more details on obtaining it.

Start Date (start_date)

  • Environment variable: TAP_SLACK_START_DATE

Determines how much historical data will be extracted. Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take.

Thread Lookback Days (thread_lookback_days)

  • Environment variable: TAP_SLACK_THREAD_LOOKBACK_DAYS

The number of days to look in the past for new thread replies to existing messages

Channel Types (channel_types)

  • Environment variable: TAP_SLACK_CHANNEL_TYPES

An array of the types of conversations the tap will attempt to extract data from. Must be one of 'public_channel', 'mpim', 'private_channel', or 'im'. Note that the Slack app must have the appropriate privileges and be a member of the conversations to sync messages.

Auto Join Channels (auto_join_channels)

  • Environment variable: TAP_SLACK_AUTO_JOIN_CHANNELS

Whether the bot user should attempt to join channels that it has not yet joined. The bot user must be a member of the channel to retrieve messages.

Selected Channels (selected_channels)

  • Environment variable: TAP_SLACK_SELECTED_CHANNELS

A list of channel IDs that should be retrieved. If not defined then all are selected.

Excluded Channels (excluded_channels)

  • Environment variable: TAP_SLACK_EXCLUDED_CHANNELS

A list of channel IDs that should not be retrieved. Excluding overrides a selected setting, so if a channel is included in both selected and excluded, it will be excluded.

Something missing?

This page is generated from a YAML file that you can contribute changes to.

Edit it on GitHub!

Looking for help?

If you're having trouble getting the tap-slack extractor to work, look for an existing issue in its repository, file a new issue, or join the Meltano Slack community and ask for help in the


meltano add extractor tap-slack

Maintenance Status

  • Maintenance Status
  • Built with the Meltano SDK
  • Stars
  • Forks
  • Open Issues
  • Open PRs
  • Contributors
  • License


  • Meltano Community

Meltano Stats

  • Total Executions (Last 3 Months)
  • Projects (Last 3 Months)


  • meltano_sdk