# Slack

Slack is a cloud-based team communication platform.

Slack integration replicates data from a single Slack workspace using the [Slack Web API](https://api.slack.com/web). To replicate data from multiple workspaces, create an additional Slack integration for each workspace.

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

Qlik Talend Cloud supports data replication from one Slack workspace per connection. To replicate data from multiple workspaces, set up a separate Slack connection for each workspace in Qlik Talend Cloud, using a unique OAuth token for every connection.

To retrieve your token:

1. Navigate to the [Slack App site](https://api.slack.com/apps).

2. Click Create an App.

3. Enter a name for the app and select the workspace you want to replicate data from.

4. Click Create App.

5. Once your app is created, select it and navigate to Features &gt; OAuth & Permissions.

6. Scroll to the Scopes section.

7. In the Bot Token Scopes section, click Add an OAuth Scope.

8. In the field that appears, search for the following scopes:

   * `channels:history`
   * `channels:join`
   * `channels:read`
   * `files:read`
   * `groups:read`
   * `links:read`
   * `reactions:read`
   * `remote_files:read`
   * `remote_files:write`
   * `team:read`
   * `useergroups:read`
   * `users.profile:read`
   * `users:read`
   * `users:read.email`

   After the required scopes are added to the app, you need to install it to your Slack workspace. If you do not have the required permissions to install apps, you may need Workspace Owner approval. See [Slack's documentation](https://www.stitchdata.com/docs/integrations/saas/slack) for app installation requirements.

9. Scroll up to the OAuth Tokens & Redirect URLs section of the OAuth & Permissions page.

10. In this section, click Install App to Workspace.

11. Complete the steps that follow to install the app or submit a request to your Workspace Owner for approval.

    Result: Once the app is installed in your workspace, a Tokens for Your Workspace section containing a Bot User OAuth Access Token field is displayed.

12. Copy and paste your token into a secured file.

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Fill in the required connection properties.

2. Provide a name for the connection in Connection name.

3. Select Open connection metadata to define metadata for the connection when it has been created.

4. Click Create.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| Token | Token. |
| Join Public Channels | Select the check box to replicate data for all public channels in the workspace you are connecting. |
| Include Private Channels | Select the check box to include data from private channels. |
| Exclude Archived Channels | Select the check box to exclude data from archived channels. |

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

### channel\_members

The `channel_members` table contain info about members of channels in your Slack workspace. Channels include conversations, channels, and direct messages in your Slack workspace.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Keys** | channel\_id<br><br>user\_id |
| **Useful links** | [Slack documentation](https://api.slack.com/Content/conversations-api)<br><br>[Slack API method](https://api.slack.com/methods/conversations.members "Opens in new tab: Slack API method") |

channel\_members table foreign keys

| Join channel\_members with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>channel_members.channel_id = channels.id<br>```<br><br>```<br>channel_members.user_id = channels.creator<br>```<br><br>```<br>channel_members.user_id = channels.members<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>channel_members.channel_id = files.channels<br>```<br><br>```<br>channel_members.channel_id = files.pinned_to<br>```<br><br>```<br>channel_members.user_id = files.user<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>channel_members.channel_id = messages.channel_id<br>```<br><br>```<br>channel_members.channel_id = messages.pinned_to<br>```<br><br>```<br>channel_members.user_id = messages.reply_users<br>```<br><br>```<br>channel_members.user_id = messages.reactions.users<br>```<br><br>```<br>channel_members.user_id = messages.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>channel_members.channel_id = remote_files.channels<br>```<br><br>```<br>channel_members.channel_id = remote_files.pinned_to<br>```<br><br>```<br>channel_members.user_id = remote_files.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>channel_members.channel_id = threads.channel_id<br>```<br><br>```<br>channel_members.user_id = threads.user<br>```<br><br>```<br>channel_members.user_id = threads.reply_users<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>channel_members.user_id = user_groups.members<br>```<br><br>```<br>channel_members.user_id = user_groups.purpose.creator<br>```<br><br>```<br>channel_members.user_id = user_groups.topic.creator<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>channel_members.user_id = users.id<br>``` |

channel\_members table schema

| **channel\_id**<br><br><br>STRING |
| --- |
| **user\_id**<br><br><br>STRING |

### channels

The `channels` table contains info about the channels in your Slack workspace. This includes conversations, channels, and direct messages.

Information noteSome types of channels - for example, private or archived channels - will be replicated only if the appropriate settings are configured in the integration’s settings. Refer to the Slack [setup steps](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#add-integration) for more info.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Slack documentation](https://api.slack.com/types/channel)<br><br>[Slack API method](https://api.slack.com/methods/conversations.list "Opens in new tab: Slack API method") |

channels table foreign keys

| Join channels with | on |
| --- | --- |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>channels.id = channel_members.channel_id<br>```<br><br>```<br>channels.creator = channel_members.user_id<br>```<br><br>```<br>channels.members = channel_members.user_id<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>channels.id = files.channels<br>```<br><br>```<br>channels.id = files.pinned_to<br>```<br><br>```<br>channels.pending_connected_team_ids = files.source_team<br>```<br><br>```<br>channels.pending_connected_team_ids = files.user_team<br>```<br><br>```<br>channels.creator = files.user<br>```<br><br>```<br>channels.members = files.user<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>channels.id = messages.channel_id<br>```<br><br>```<br>channels.id = messages.pinned_to<br>```<br><br>```<br>channels.pending_connected_team_ids = messages.bot_profile.team_id<br>```<br><br>```<br>channels.pending_connected_team_ids = messages.team<br>```<br><br>```<br>channels.pending_connected_team_ids = messages.source_team<br>```<br><br>```<br>channels.pending_connected_team_ids = messages.user_team<br>```<br><br>```<br>channels.creator = messages.reply_users<br>```<br><br>```<br>channels.members = messages.reply_users<br>```<br><br>```<br>channels.creator = messages.reactions.users<br>```<br><br>```<br>channels.members = messages.reactions.users<br>```<br><br>```<br>channels.creator = messages.user<br>```<br><br>```<br>channels.members = messages.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>channels.id = remote_files.channels<br>```<br><br>```<br>channels.id = remote_files.pinned_to<br>```<br><br>```<br>channels.pending_connected_team_ids = remote_files.source_team<br>```<br><br>```<br>channels.pending_connected_team_ids = remote_files.user_team<br>```<br><br>```<br>channels.creator = remote_files.user<br>```<br><br>```<br>channels.members = remote_files.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>channels.id = threads.channel_id<br>```<br><br>```<br>channels.pending_connected_team_ids = threads.team<br>```<br><br>```<br>channels.creator = threads.user<br>```<br><br>```<br>channels.members = threads.user<br>```<br><br>```<br>channels.creator = threads.reply_users<br>```<br><br>```<br>channels.members = threads.reply_users<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>channels.pending_connected_team_ids = teams.id<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>channels.pending_connected_team_ids = users.team_id<br>```<br><br>```<br>channels.creator = users.id<br>```<br><br>```<br>channels.members = users.id<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>channels.creator = user_groups.members<br>```<br><br>```<br>channels.members = user_groups.members<br>```<br><br>```<br>channels.creator = user_groups.purpose.creator<br>```<br><br>```<br>channels.members = user_groups.purpose.creator<br>```<br><br>```<br>channels.creator = user_groups.topic.creator<br>```<br><br>```<br>channels.members = user_groups.topic.creator<br>``` |

channels table schema

| **channel\_id**<br><br><br>STRING |
| --- |
| **created**<br><br><br>DATE-TIME |
| **creator**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **is\_archived**<br><br><br>BOOLEAN |
| **is\_channel**<br><br><br>BOOLEAN |
| **is\_ext\_shared**<br><br><br>BOOLEAN |
| **is\_general**<br><br><br>BOOLEAN |
| **is\_group**<br><br><br>BOOLEAN |
| **is\_im**<br><br><br>BOOLEAN |
| **is\_member**<br><br><br>BOOLEAN |
| **is\_mpim**<br><br><br>BOOLEAN |
| **is\_org\_shared**<br><br><br>BOOLEAN |
| **is\_pending\_ext\_shared**<br><br><br>BOOLEAN |
| **is\_private**<br><br><br>BOOLEAN |
| **is\_shared**<br><br><br>BOOLEAN |
| **members**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **name**<br><br><br>STRING |
| **name\_normalized**<br><br><br>STRING |
| **num\_members**<br><br><br>INTEGER |
| **parent\_conversation**<br><br><br>STRING |
| **pending\_connected\_team\_ids**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **pending\_shared**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **previous\_names**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **purpose**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>creator: STRING</li><li>last_set: DATE-TIME</li><li>value: STRING</li></ul> |
| **shared\_team\_ids**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **topic**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>creator: STRING</li><li>last_set: DATE-TIME</li><li>value: STRING</li></ul> |
| **unlinked**<br><br><br>DATE-TIME |

### files

The `files` table contains info about Slack team files.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated |
| **Useful links** | [Slack documentation](https://api.slack.com/types/file)<br><br>[Slack API method](https://api.slack.com/methods/files.list "Opens in new tab: Slack API method") |

files table foreign keys

| Join files with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>files.channels = channels.id<br>```<br><br>```<br>files.pinned_to = channels.id<br>```<br><br>```<br>files.source_team = channels.pending_connected_team_ids<br>```<br><br>```<br>files.user_team = channels.pending_connected_team_ids<br>```<br><br>```<br>files.user = channels.creator<br>```<br><br>```<br>files.user = channels.members<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>files.channels = channel_members.channel_id<br>```<br><br>```<br>files.pinned_to = channel_members.channel_id<br>```<br><br>```<br>files.user = channel_members.user_id<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>files.channels = messages.channel_id<br>```<br><br>```<br>files.pinned_to = messages.channel_id<br>```<br><br>```<br>files.channels = messages.pinned_to<br>```<br><br>```<br>files.pinned_to = messages.pinned_to<br>```<br><br>```<br>files.id = messages.file_ids<br>```<br><br>```<br>files.source_team = messages.bot_profile.team_id<br>```<br><br>```<br>files.user_team = messages.bot_profile.team_id<br>```<br><br>```<br>files.source_team = messages.team<br>```<br><br>```<br>files.user_team = messages.team<br>```<br><br>```<br>files.source_team = messages.source_team<br>```<br><br>```<br>files.user_team = messages.source_team<br>```<br><br>```<br>files.source_team = messages.user_team<br>```<br><br>```<br>files.user_team = messages.user_team<br>```<br><br>```<br>files.user = messages.reply_users<br>```<br><br>```<br>files.user = messages.reactions.users<br>```<br><br>```<br>files.user = messages.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>files.channels = remote_files.channels<br>```<br><br>```<br>files.pinned_to = remote_files.channels<br>```<br><br>```<br>files.channels = remote_files.pinned_to<br>```<br><br>```<br>files.pinned_to = remote_files.pinned_to<br>```<br><br>```<br>files.groups = remote_files.groups<br>```<br><br>```<br>files.source_team = remote_files.source_team<br>```<br><br>```<br>files.user_team = remote_files.source_team<br>```<br><br>```<br>files.source_team = remote_files.user_team<br>```<br><br>```<br>files.user_team = remote_files.user_team<br>```<br><br>```<br>files.user = remote_files.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>files.channels = threads.channel_id<br>```<br><br>```<br>files.pinned_to = threads.channel_id<br>```<br><br>```<br>files.source_team = threads.team<br>```<br><br>```<br>files.user_team = threads.team<br>```<br><br>```<br>files.user = threads.user<br>```<br><br>```<br>files.user = threads.reply_users<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>files.groups = user_groups.id<br>```<br><br>```<br>files.groups = user_groups.parent_group<br>```<br><br>```<br>files.user = user_groups.members<br>```<br><br>```<br>files.user = user_groups.purpose.creator<br>```<br><br>```<br>files.user = user_groups.topic.creator<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>files.source_team = teams.id<br>```<br><br>```<br>files.user_team = teams.id<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>files.source_team = users.team_id<br>```<br><br>```<br>files.user_team = users.team_id<br>```<br><br>```<br>files.user = users.id<br>``` |

files table schema

| **channels**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| --- |
| **comments\_count**<br><br><br>INTEGER |
| **created**<br><br><br>DATE-TIME |
| **date\_delete**<br><br><br>DATE-TIME |
| **display\_as\_bot**<br><br><br>BOOLEAN |
| **editable**<br><br><br>BOOLEAN |
| **editor**<br><br><br>STRING |
| **external\_id**<br><br><br>STRING |
| **external\_type**<br><br><br>STRING |
| **external\_url**<br><br><br>STRING |
| **filetype**<br><br><br>STRING |
| **groups**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **has\_rich\_preview**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **image\_exif\_rotation**<br><br><br>INTEGER |
| **ims**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **is\_external**<br><br><br>BOOLEAN |
| **is\_public**<br><br><br>BOOLEAN |
| **is\_starred**<br><br><br>BOOLEAN |
| **is\_tombstoned**<br><br><br>BOOLEAN |
| **last\_editor**<br><br><br>STRING |
| **mimetype**<br><br><br>STRING |
| **mode**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **non\_owner\_editable**<br><br><br>BOOLEAN |
| **num\_stars**<br><br><br>INTEGER |
| **original\_h**<br><br><br>INTEGER |
| **original\_w**<br><br><br>INTEGER |
| **permalink**<br><br><br>STRING |
| **permalink\_public**<br><br><br>STRING |
| **pinned\_info**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **pinned\_to**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **pretty\_type**<br><br><br>STRING |
| **preview**<br><br><br>STRING |
| **public\_url\_shared**<br><br><br>BOOLEAN |
| **size**<br><br><br>INTEGER |
| **source\_team**<br><br><br>STRING |
| **state**<br><br><br>STRING |
| **thumb\_1024**<br><br><br>STRING |
| **thumb\_1024\_h**<br><br><br>INTEGER |
| **thumb\_1024\_w**<br><br><br>INTEGER |
| **thumb\_160**<br><br><br>STRING |
| **thumb\_360**<br><br><br>STRING |
| **thumb\_360\_h**<br><br><br>INTEGER |
| **thumb\_360\_w**<br><br><br>INTEGER |
| **thumb\_480**<br><br><br>STRING |
| **thumb\_480\_h**<br><br><br>INTEGER |
| **thumb\_480\_w**<br><br><br>INTEGER |
| **thumb\_64**<br><br><br>STRING |
| **thumb\_720**<br><br><br>STRING |
| **thumb\_720\_h**<br><br><br>INTEGER |
| **thumb\_720\_w**<br><br><br>INTEGER |
| **thumb\_80**<br><br><br>STRING |
| **thumb\_800**<br><br><br>STRING |
| **thumb\_800\_h**<br><br><br>INTEGER |
| **thumb\_800\_w**<br><br><br>INTEGER |
| **thumb\_960**<br><br><br>STRING |
| **thumb\_960\_h**<br><br><br>INTEGER |
| **thumb\_960\_w**<br><br><br>INTEGER |
| **thumb\_tiny**<br><br><br>STRING |
| **timestamp**<br><br><br>DATE-TIME |
| **title**<br><br><br>STRING |
| **updated**<br><br><br>DATE-TIME |
| **url\_private**<br><br><br>STRING |
| **url\_private\_download**<br><br><br>STRING |
| **user**<br><br><br>STRING |
| **user\_team**<br><br><br>STRING |
| **username**<br><br><br>STRING |

### messages

The `messages` table contains the history of messages and events in conversations in your Slack workspace.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Keys** | channel\_id<br><br>ts |
| **Replication Key** | ts |
| **Useful links** | [Slack documentation](https://api.slack.com/types/conversation)<br><br>[Slack API method](https://api.slack.com/methods/conversations.history "Opens in new tab: Slack API method") |

messages table foreign keys

| Join messages with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>messages.channel_id = channels.id<br>```<br><br>```<br>messages.pinned_to = channels.id<br>```<br><br>```<br>messages.bot_profile.team_id = channels.pending_connected_team_ids<br>```<br><br>```<br>messages.team = channels.pending_connected_team_ids<br>```<br><br>```<br>messages.source_team = channels.pending_connected_team_ids<br>```<br><br>```<br>messages.user_team = channels.pending_connected_team_ids<br>```<br><br>```<br>messages.reply_users = channels.creator<br>```<br><br>```<br>messages.reactions.users = channels.creator<br>```<br><br>```<br>messages.user = channels.creator<br>```<br><br>```<br>messages.reply_users = channels.members<br>```<br><br>```<br>messages.reactions.users = channels.members<br>```<br><br>```<br>messages.user = channels.members<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>messages.channel_id = channel_members.channel_id<br>```<br><br>```<br>messages.pinned_to = channel_members.channel_id<br>```<br><br>```<br>messages.reply_users = channel_members.user_id<br>```<br><br>```<br>messages.reactions.users = channel_members.user_id<br>```<br><br>```<br>messages.user = channel_members.user_id<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>messages.channel_id = files.channels<br>```<br><br>```<br>messages.pinned_to = files.channels<br>```<br><br>```<br>messages.channel_id = files.pinned_to<br>```<br><br>```<br>messages.pinned_to = files.pinned_to<br>```<br><br>```<br>messages.file_ids = files.id<br>```<br><br>```<br>messages.bot_profile.team_id = files.source_team<br>```<br><br>```<br>messages.team = files.source_team<br>```<br><br>```<br>messages.source_team = files.source_team<br>```<br><br>```<br>messages.user_team = files.source_team<br>```<br><br>```<br>messages.bot_profile.team_id = files.user_team<br>```<br><br>```<br>messages.team = files.user_team<br>```<br><br>```<br>messages.source_team = files.user_team<br>```<br><br>```<br>messages.user_team = files.user_team<br>```<br><br>```<br>messages.reply_users = files.user<br>```<br><br>```<br>messages.reactions.users = files.user<br>```<br><br>```<br>messages.user = files.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>messages.channel_id = remote_files.channels<br>```<br><br>```<br>messages.pinned_to = remote_files.channels<br>```<br><br>```<br>messages.channel_id = remote_files.pinned_to<br>```<br><br>```<br>messages.pinned_to = remote_files.pinned_to<br>```<br><br>```<br>messages.bot_profile.team_id = remote_files.source_team<br>```<br><br>```<br>messages.team = remote_files.source_team<br>```<br><br>```<br>messages.source_team = remote_files.source_team<br>```<br><br>```<br>messages.user_team = remote_files.source_team<br>```<br><br>```<br>messages.bot_profile.team_id = remote_files.user_team<br>```<br><br>```<br>messages.team = remote_files.user_team<br>```<br><br>```<br>messages.source_team = remote_files.user_team<br>```<br><br>```<br>messages.user_team = remote_files.user_team<br>```<br><br>```<br>messages.reply_users = remote_files.user<br>```<br><br>```<br>messages.reactions.users = remote_files.user<br>```<br><br>```<br>messages.user = remote_files.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>messages.channel_id = threads.channel_id<br>```<br><br>```<br>messages.pinned_to = threads.channel_id<br>```<br><br>```<br>messages.bot_profile.team_id = threads.team<br>```<br><br>```<br>messages.team = threads.team<br>```<br><br>```<br>messages.source_team = threads.team<br>```<br><br>```<br>messages.user_team = threads.team<br>```<br><br>```<br>messages.reply_users = threads.user<br>```<br><br>```<br>messages.reactions.users = threads.user<br>```<br><br>```<br>messages.user = threads.user<br>```<br><br>```<br>messages.reply_users = threads.reply_users<br>```<br><br>```<br>messages.reactions.users = threads.reply_users<br>```<br><br>```<br>messages.user = threads.reply_users<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>messages.bot_profile.team_id = teams.id<br>```<br><br>```<br>messages.team = teams.id<br>```<br><br>```<br>messages.source_team = teams.id<br>```<br><br>```<br>messages.user_team = teams.id<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>messages.bot_profile.team_id = users.team_id<br>```<br><br>```<br>messages.team = users.team_id<br>```<br><br>```<br>messages.source_team = users.team_id<br>```<br><br>```<br>messages.user_team = users.team_id<br>```<br><br>```<br>messages.reply_users = users.id<br>```<br><br>```<br>messages.reactions.users = users.id<br>```<br><br>```<br>messages.user = users.id<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>messages.reply_users = user_groups.members<br>```<br><br>```<br>messages.reactions.users = user_groups.members<br>```<br><br>```<br>messages.user = user_groups.members<br>```<br><br>```<br>messages.reply_users = user_groups.purpose.creator<br>```<br><br>```<br>messages.reactions.users = user_groups.purpose.creator<br>```<br><br>```<br>messages.user = user_groups.purpose.creator<br>```<br><br>```<br>messages.reply_users = user_groups.topic.creator<br>```<br><br>```<br>messages.reactions.users = user_groups.topic.creator<br>```<br><br>```<br>messages.user = user_groups.topic.creator<br>``` |

messages table schema

| **blocks**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>type: STRING</li></ul> |
| --- |
| **bot\_id**<br><br><br>STRING |
| **bot\_profile**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>app_id: STRING</li><li>deleted: BOOLEAN</li><li>id: STRING</li><li>name: STRING</li><li>team_id: STRING</li><li>updated: DATE-TIME</li></ul> |
| **channel\_id**<br><br><br>STRING |
| **client\_msg\_id**<br><br><br>STRING |
| **display\_as\_bot**<br><br><br>BOOLEAN |
| **file\_id**<br><br><br>STRING |
| **file\_ids**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **icons**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>emoji: STRING</li></ul> |
| **inviter**<br><br><br>STRING |
| **is\_delayed\_message**<br><br><br>BOOLEAN |
| **is\_intro**<br><br><br>BOOLEAN |
| **is\_starred**<br><br><br>BOOLEAN |
| **last\_read**<br><br><br>DATE-TIME |
| **latest\_reply**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **old\_name**<br><br><br>STRING |
| **parent\_user\_id**<br><br><br>STRING |
| **permalink**<br><br><br>STRING |
| **pinned\_to**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **purpose**<br><br><br>STRING |
| **reactions**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>count: INTEGER</li><li>name: STRING</li><li>users: ARRAY, which is also a nested data structure.</li></ul> |
| **reply\_count**<br><br><br>INTEGER |
| **reply\_users**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **reply\_users\_count**<br><br><br>INTEGER |
| **source\_team**<br><br><br>STRING |
| **subscribed**<br><br><br>BOOLEAN |
| **subtype**<br><br><br>STRING |
| **team**<br><br><br>STRING |
| **text**<br><br><br>STRING |
| **thread\_ts**<br><br><br>STRING |
| **topic**<br><br><br>STRING |
| **ts**<br><br><br>DATE-TIME |
| **type**<br><br><br>STRING |
| **unread\_count**<br><br><br>INTEGER |
| **upload**<br><br><br>BOOLEAN |
| **user**<br><br><br>STRING |
| **user\_team**<br><br><br>STRING |
| **username**<br><br><br>STRING |

### remote\_files

The `remote_files` table contains info about remote files added to Slack.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated |
| **Useful links** | [Slack API method](https://api.slack.com/methods/files.remote.list "Opens in new tab: Slack API method") |

remote\_files table foreign keys

| Join remote\_files with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>remote_files.channels = channels.id<br>```<br><br>```<br>remote_files.pinned_to = channels.id<br>```<br><br>```<br>remote_files.source_team = channels.pending_connected_team_ids<br>```<br><br>```<br>remote_files.user_team = channels.pending_connected_team_ids<br>```<br><br>```<br>remote_files.user = channels.creator<br>```<br><br>```<br>remote_files.user = channels.members<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>remote_files.channels = channel_members.channel_id<br>```<br><br>```<br>remote_files.pinned_to = channel_members.channel_id<br>```<br><br>```<br>remote_files.user = channel_members.user_id<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>remote_files.channels = files.channels<br>```<br><br>```<br>remote_files.pinned_to = files.channels<br>```<br><br>```<br>remote_files.channels = files.pinned_to<br>```<br><br>```<br>remote_files.pinned_to = files.pinned_to<br>```<br><br>```<br>remote_files.groups = files.groups<br>```<br><br>```<br>remote_files.source_team = files.source_team<br>```<br><br>```<br>remote_files.user_team = files.source_team<br>```<br><br>```<br>remote_files.source_team = files.user_team<br>```<br><br>```<br>remote_files.user_team = files.user_team<br>```<br><br>```<br>remote_files.user = files.user<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>remote_files.channels = messages.channel_id<br>```<br><br>```<br>remote_files.pinned_to = messages.channel_id<br>```<br><br>```<br>remote_files.channels = messages.pinned_to<br>```<br><br>```<br>remote_files.pinned_to = messages.pinned_to<br>```<br><br>```<br>remote_files.source_team = messages.bot_profile.team_id<br>```<br><br>```<br>remote_files.user_team = messages.bot_profile.team_id<br>```<br><br>```<br>remote_files.source_team = messages.team<br>```<br><br>```<br>remote_files.user_team = messages.team<br>```<br><br>```<br>remote_files.source_team = messages.source_team<br>```<br><br>```<br>remote_files.user_team = messages.source_team<br>```<br><br>```<br>remote_files.source_team = messages.user_team<br>```<br><br>```<br>remote_files.user_team = messages.user_team<br>```<br><br>```<br>remote_files.user = messages.reply_users<br>```<br><br>```<br>remote_files.user = messages.reactions.users<br>```<br><br>```<br>remote_files.user = messages.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>remote_files.channels = threads.channel_id<br>```<br><br>```<br>remote_files.pinned_to = threads.channel_id<br>```<br><br>```<br>remote_files.source_team = threads.team<br>```<br><br>```<br>remote_files.user_team = threads.team<br>```<br><br>```<br>remote_files.user = threads.user<br>```<br><br>```<br>remote_files.user = threads.reply_users<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>remote_files.groups = user_groups.id<br>```<br><br>```<br>remote_files.groups = user_groups.parent_group<br>```<br><br>```<br>remote_files.user = user_groups.members<br>```<br><br>```<br>remote_files.user = user_groups.purpose.creator<br>```<br><br>```<br>remote_files.user = user_groups.topic.creator<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>remote_files.source_team = teams.id<br>```<br><br>```<br>remote_files.user_team = teams.id<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>remote_files.source_team = users.team_id<br>```<br><br>```<br>remote_files.user_team = users.team_id<br>```<br><br>```<br>remote_files.user = users.id<br>``` |

remote\_files table schema

| **channels**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| --- |
| **comments\_count**<br><br><br>INTEGER |
| **created**<br><br><br>DATE-TIME |
| **date\_delete**<br><br><br>DATE-TIME |
| **display\_as\_bot**<br><br><br>BOOLEAN |
| **editable**<br><br><br>BOOLEAN |
| **editor**<br><br><br>STRING |
| **external\_id**<br><br><br>STRING |
| **external\_type**<br><br><br>STRING |
| **external\_url**<br><br><br>STRING |
| **filetype**<br><br><br>STRING |
| **groups**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **has\_rich\_preview**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **image\_exif\_rotation**<br><br><br>INTEGER |
| **ims**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **is\_external**<br><br><br>BOOLEAN |
| **is\_public**<br><br><br>BOOLEAN |
| **is\_starred**<br><br><br>BOOLEAN |
| **is\_tombstoned**<br><br><br>BOOLEAN |
| **last\_editor**<br><br><br>STRING |
| **mimetype**<br><br><br>STRING |
| **mode**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **non\_owner\_editable**<br><br><br>BOOLEAN |
| **num\_stars**<br><br><br>INTEGER |
| **original\_h**<br><br><br>INTEGER |
| **original\_w**<br><br><br>INTEGER |
| **permalink**<br><br><br>STRING |
| **permalink\_public**<br><br><br>STRING |
| **pinned\_info**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **pinned\_to**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **pretty\_type**<br><br><br>STRING |
| **preview**<br><br><br>STRING |
| **public\_url\_shared**<br><br><br>BOOLEAN |
| **size**<br><br><br>INTEGER |
| **source\_team**<br><br><br>STRING |
| **state**<br><br><br>STRING |
| **thumb\_1024**<br><br><br>STRING |
| **thumb\_1024\_h**<br><br><br>INTEGER |
| **thumb\_1024\_w**<br><br><br>INTEGER |
| **thumb\_160**<br><br><br>STRING |
| **thumb\_360**<br><br><br>STRING |
| **thumb\_360\_h**<br><br><br>INTEGER |
| **thumb\_360\_w**<br><br><br>INTEGER |
| **thumb\_480**<br><br><br>STRING |
| **thumb\_480\_h**<br><br><br>INTEGER |
| **thumb\_480\_w**<br><br><br>INTEGER |
| **thumb\_64**<br><br><br>STRING |
| **thumb\_720**<br><br><br>STRING |
| **thumb\_720\_h**<br><br><br>INTEGER |
| **thumb\_720\_w**<br><br><br>INTEGER |
| **thumb\_80**<br><br><br>STRING |
| **thumb\_800**<br><br><br>STRING |
| **thumb\_800\_h**<br><br><br>INTEGER |
| **thumb\_800\_w**<br><br><br>INTEGER |
| **thumb\_960**<br><br><br>STRING |
| **thumb\_960\_h**<br><br><br>INTEGER |
| **thumb\_960\_w**<br><br><br>INTEGER |
| **thumb\_tiny**<br><br><br>STRING |
| **timestamp**<br><br><br>DATE-TIME |
| **title**<br><br><br>STRING |
| **updated**<br><br><br>DATE-TIME |
| **url\_private**<br><br><br>STRING |
| **url\_private\_download**<br><br><br>STRING |
| **user**<br><br><br>STRING |
| **user\_team**<br><br><br>STRING |
| **username**<br><br><br>STRING |

### teams

The `teams` table contains info about teams in your Slack workspace.

| **Replication Method** | Full Table |
| --- | --- |
| **Useful links** | [Slack API method](https://api.slack.com/methods/team.info "Opens in new tab: Slack API method") |

teams table foreign keys

| Join teams with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>teams.id = channels.pending_connected_team_ids<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>teams.id = files.source_team<br>```<br><br>```<br>teams.id = files.user_team<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>teams.id = messages.bot_profile.team_id<br>```<br><br>```<br>teams.id = messages.team<br>```<br><br>```<br>teams.id = messages.source_team<br>```<br><br>```<br>teams.id = messages.user_team<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>teams.id = remote_files.source_team<br>```<br><br>```<br>teams.id = remote_files.user_team<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>teams.id = threads.team<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>teams.id = users.team_id<br>``` |

teams table schema

| **archived**<br><br><br>BOOLEAN |
| --- |
| **avatar\_base\_url**<br><br><br>STRING |
| **created**<br><br><br>DATE-TIME |
| **date\_create**<br><br><br>DATE-TIME |
| **deleted**<br><br><br>DATE-TIME |
| **description**<br><br><br>STRING |
| **discoverable**<br><br><br>STRING |
| **domain**<br><br><br>STRING |
| **email\_domain**<br><br><br>STRING |
| **enterprise\_id**<br><br><br>STRING |
| **enterprise\_name**<br><br><br>STRING |
| **has\_compliance\_export**<br><br><br>BOOLEAN |
| **icon**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>image_102: STRING</li><li>image_132: STRING</li><li>image_230: STRING</li><li>image_34: STRING</li><li>image_44: STRING</li><li>image_68: STRING</li><li>image_88: STRING</li><li>image_default: BOOLEAN</li></ul> |
| **id**<br><br><br>STRING |
| **is\_assigned**<br><br><br>BOOLEAN |
| **is\_enterprise**<br><br><br>INTEGER |
| **messages\_count**<br><br><br>INTEGER |
| **msg\_edit\_window\_mins**<br><br><br>INTEGER |
| **name**<br><br><br>STRING |
| **over\_integrations\_limit**<br><br><br>BOOLEAN |
| **over\_storage\_limit**<br><br><br>BOOLEAN |
| **plan**<br><br><br>STRING |

### threads

The `threads` table contains info about conversation threads in your Slack team.

Information noteWhile this table uses Full Table, it’s not truly replicated in full during each replication job. Each time a message in a thread is updated, the entire thread and all the messages it contains will be replicated in full. This means that while only updated threads are replicated, they are replicated in full whenever they’re updated.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Keys** | channel\_id<br><br>thread\_ts |
| **Useful links** | [Slack documentation](https://api.slack.com/Content/conversations-api)<br><br>[Slack API method](https://api.slack.com/methods/conversations.replies "Opens in new tab: Slack API method") |

threads table foreign keys

| Join threads with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>threads.channel_id = channels.id<br>```<br><br>```<br>threads.team = channels.pending_connected_team_ids<br>```<br><br>```<br>threads.user = channels.creator<br>```<br><br>```<br>threads.reply_users = channels.creator<br>```<br><br>```<br>threads.user = channels.members<br>```<br><br>```<br>threads.reply_users = channels.members<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>threads.channel_id = channel_members.channel_id<br>```<br><br>```<br>threads.user = channel_members.user_id<br>```<br><br>```<br>threads.reply_users = channel_members.user_id<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>threads.channel_id = files.channels<br>```<br><br>```<br>threads.channel_id = files.pinned_to<br>```<br><br>```<br>threads.team = files.source_team<br>```<br><br>```<br>threads.team = files.user_team<br>```<br><br>```<br>threads.user = files.user<br>```<br><br>```<br>threads.reply_users = files.user<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>threads.channel_id = messages.channel_id<br>```<br><br>```<br>threads.channel_id = messages.pinned_to<br>```<br><br>```<br>threads.team = messages.bot_profile.team_id<br>```<br><br>```<br>threads.team = messages.team<br>```<br><br>```<br>threads.team = messages.source_team<br>```<br><br>```<br>threads.team = messages.user_team<br>```<br><br>```<br>threads.user = messages.reply_users<br>```<br><br>```<br>threads.reply_users = messages.reply_users<br>```<br><br>```<br>threads.user = messages.reactions.users<br>```<br><br>```<br>threads.reply_users = messages.reactions.users<br>```<br><br>```<br>threads.user = messages.user<br>```<br><br>```<br>threads.reply_users = messages.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>threads.channel_id = remote_files.channels<br>```<br><br>```<br>threads.channel_id = remote_files.pinned_to<br>```<br><br>```<br>threads.team = remote_files.source_team<br>```<br><br>```<br>threads.team = remote_files.user_team<br>```<br><br>```<br>threads.user = remote_files.user<br>```<br><br>```<br>threads.reply_users = remote_files.user<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>threads.team = teams.id<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>threads.team = users.team_id<br>```<br><br>```<br>threads.user = users.id<br>```<br><br>```<br>threads.reply_users = users.id<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>threads.user = user_groups.members<br>```<br><br>```<br>threads.reply_users = user_groups.members<br>```<br><br>```<br>threads.user = user_groups.purpose.creator<br>```<br><br>```<br>threads.reply_users = user_groups.purpose.creator<br>```<br><br>```<br>threads.user = user_groups.topic.creator<br>```<br><br>```<br>threads.reply_users = user_groups.topic.creator<br>``` |

threads table schema

| **blocks**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>type: STRING</li></ul> |
| --- |
| **channel\_id**<br><br><br>STRING |
| **client\_msg\_id**<br><br><br>STRING |
| **latest\_reply**<br><br><br>STRING |
| **reply\_count**<br><br><br>INTEGER |
| **reply\_users**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **reply\_users\_count**<br><br><br>NUMBER |
| **subscribed**<br><br><br>BOOLEAN |
| **team**<br><br><br>STRING |
| **text**<br><br><br>STRING |
| **thread\_ts**<br><br><br>STRING |
| **ts**<br><br><br>DATE-TIME |
| **type**<br><br><br>STRING |
| **user**<br><br><br>STRING |

### user\_groups

The `user_groups` table contains info about user groups from your Slack team.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Slack API method](https://api.slack.com/methods/usergroups.list "Opens in new tab: Slack API method") |

user\_groups table foreign keys

| Join user\_groups with | on |
| --- | --- |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>user_groups.id = files.groups<br>```<br><br>```<br>user_groups.parent_group = files.groups<br>```<br><br>```<br>user_groups.members = files.user<br>```<br><br>```<br>user_groups.purpose.creator = files.user<br>```<br><br>```<br>user_groups.topic.creator = files.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>user_groups.id = remote_files.groups<br>```<br><br>```<br>user_groups.parent_group = remote_files.groups<br>```<br><br>```<br>user_groups.members = remote_files.user<br>```<br><br>```<br>user_groups.purpose.creator = remote_files.user<br>```<br><br>```<br>user_groups.topic.creator = remote_files.user<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>user_groups.members = channel_members.user_id<br>```<br><br>```<br>user_groups.purpose.creator = channel_members.user_id<br>```<br><br>```<br>user_groups.topic.creator = channel_members.user_id<br>``` |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>user_groups.members = channels.creator<br>```<br><br>```<br>user_groups.purpose.creator = channels.creator<br>```<br><br>```<br>user_groups.topic.creator = channels.creator<br>```<br><br>```<br>user_groups.members = channels.members<br>```<br><br>```<br>user_groups.purpose.creator = channels.members<br>```<br><br>```<br>user_groups.topic.creator = channels.members<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>user_groups.members = messages.reply_users<br>```<br><br>```<br>user_groups.purpose.creator = messages.reply_users<br>```<br><br>```<br>user_groups.topic.creator = messages.reply_users<br>```<br><br>```<br>user_groups.members = messages.reactions.users<br>```<br><br>```<br>user_groups.purpose.creator = messages.reactions.users<br>```<br><br>```<br>user_groups.topic.creator = messages.reactions.users<br>```<br><br>```<br>user_groups.members = messages.user<br>```<br><br>```<br>user_groups.purpose.creator = messages.user<br>```<br><br>```<br>user_groups.topic.creator = messages.user<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>user_groups.members = threads.user<br>```<br><br>```<br>user_groups.purpose.creator = threads.user<br>```<br><br>```<br>user_groups.topic.creator = threads.user<br>```<br><br>```<br>user_groups.members = threads.reply_users<br>```<br><br>```<br>user_groups.purpose.creator = threads.reply_users<br>```<br><br>```<br>user_groups.topic.creator = threads.reply_users<br>``` |
| [users](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#users) | ```<br>user_groups.members = users.id<br>```<br><br>```<br>user_groups.purpose.creator = users.id<br>```<br><br>```<br>user_groups.topic.creator = users.id<br>``` |

user\_groups table schema

| **created**<br><br><br>DATE-TIME |
| --- |
| **creator**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **is\_archived**<br><br><br>BOOLEAN |
| **is\_deleted**<br><br><br>BOOLEAN |
| **is\_group**<br><br><br>BOOLEAN |
| **is\_moved**<br><br><br>INTEGER |
| **is\_mpim**<br><br><br>BOOLEAN |
| **is\_open**<br><br><br>BOOLEAN |
| **is\_pending\_ext\_shared**<br><br><br>BOOLEAN |
| **is\_read\_only**<br><br><br>BOOLEAN |
| **is\_thread\_only**<br><br><br>BOOLEAN |
| **last\_read**<br><br><br>DATE-TIME |
| **members**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **name**<br><br><br>STRING |
| **name\_normalized**<br><br><br>STRING |
| **num\_members**<br><br><br>INTEGER |
| **parent\_group**<br><br><br>STRING |
| **priority**<br><br><br>NUMBER |
| **purpose**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>creator: STRING</li><li>last_set: INTEGER</li><li>value: STRING</li></ul> |
| **topic**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>creator: STRING</li><li>last_set: INTEGER</li><li>value: STRING</li></ul> |
| **unread\_count**<br><br><br>INTEGER |
| **unread\_count\_display**<br><br><br>INTEGER |

### users

The `users` table lists contains info about the users in your Slack team. This includes deactivated and deleted users.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated |
| **Useful links** | [Slack API method](https://api.slack.com/methods/users.list "Opens in new tab: Slack API method") |

users table foreign keys

| Join users with | on |
| --- | --- |
| [channels](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channels) | ```<br>users.team_id = channels.pending_connected_team_ids<br>```<br><br>```<br>users.id = channels.creator<br>```<br><br>```<br>users.id = channels.members<br>``` |
| [files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#files) | ```<br>users.team_id = files.source_team<br>```<br><br>```<br>users.team_id = files.user_team<br>```<br><br>```<br>users.id = files.user<br>``` |
| [messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#messages) | ```<br>users.team_id = messages.bot_profile.team_id<br>```<br><br>```<br>users.team_id = messages.team<br>```<br><br>```<br>users.team_id = messages.source_team<br>```<br><br>```<br>users.team_id = messages.user_team<br>```<br><br>```<br>users.id = messages.reply_users<br>```<br><br>```<br>users.id = messages.reactions.users<br>```<br><br>```<br>users.id = messages.user<br>``` |
| [remote_files](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#remote-files) | ```<br>users.team_id = remote_files.source_team<br>```<br><br>```<br>users.team_id = remote_files.user_team<br>```<br><br>```<br>users.id = remote_files.user<br>``` |
| [teams](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#teams) | ```<br>users.team_id = teams.id<br>``` |
| [threads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#threads) | ```<br>users.team_id = threads.team<br>```<br><br>```<br>users.id = threads.user<br>```<br><br>```<br>users.id = threads.reply_users<br>``` |
| [channel_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#channel-members) | ```<br>users.id = channel_members.user_id<br>``` |
| [user_groups](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Slack.htm#user-groups) | ```<br>users.id = user_groups.members<br>```<br><br>```<br>users.id = user_groups.purpose.creator<br>```<br><br>```<br>users.id = user_groups.topic.creator<br>``` |

users table schema

| **color**<br><br><br>STRING |
| --- |
| **deleted**<br><br><br>BOOLEAN |
| **has\_2fa**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **is\_admin**<br><br><br>BOOLEAN |
| **is\_app\_user**<br><br><br>BOOLEAN |
| **is\_bot**<br><br><br>BOOLEAN |
| **is\_owner**<br><br><br>BOOLEAN |
| **is\_primary\_owner**<br><br><br>BOOLEAN |
| **is\_restricted**<br><br><br>BOOLEAN |
| **is\_ultra\_restricted**<br><br><br>BOOLEAN |
| **name**<br><br><br>STRING |
| **profile**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>email: STRING</li></ul> |
| **real\_name**<br><br><br>STRING |
| **team\_id**<br><br><br>STRING |
| **tz**<br><br><br>STRING |
| **tz\_label**<br><br><br>STRING |
| **tz\_offset**<br><br><br>INTEGER |
| **updated**<br><br><br>DATE-TIME |