
Configuring Slack as a Source
In the Sources tab, click on the “Add source” button located at the top right of your screen. Then, select the Slack option from the list of connectors. Click Next and you’ll be prompted to add the connector configuration.1. Add account access
-
Authorization: First of all, authorize Nekt through the Slack Authorization button. You must be an App Manager to authorize the installation of our app into your workspace.
You’ll see the following warning when installing the app:
This app is not approved by Slack. Apps are reviewed to ensure a quality experience.
This occurs because our app is private and not yet available in the Slack marketplace. -
Channel types: The types of conversations the tap will attempt to extract data from. Options are
public_channel
orprivate_channel
. Currently, fetching messages from DMs with a bot user is not allowed. -
Auto join public channels: Whether the bot user should attempt to join public channels that it has not yet joined. The bot user must be a member of the channel to be able to retrieve messages. For private channels, you have to manually add the bot to the channel. Here’s the step by step:
- Type the command
/add
in the message input box of the channel you want to add the bot. - Choose
Add apps to your channel
. - Select the
Nekt Source
app. - Done, you’ll be able to extract messages from this channel.
Repeat this process for all channels you want to get data from. - Type the command
- Start date: Defines from which date we should start syncing messages.
- Thread lookback (days): The number of days to look in the past for new thread replies to existing messages.
- Selected channels: An array of channel IDs you want to select for extraction. This helps reduce the extraction time by only selecting channels of interest.
-
Excluded channels: An array of channel IDs you want to exclude from extraction. This helps reduce the extraction time by excluding channels that contain bots or flooding messages.
The channel ID can be found by clicking with the right button on the channel name and ‘View details’. The channel ID will be available at the bottom of the modal.
2. Select streams
- The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.
- Click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
-
Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
- Click Next.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.For you to be able to see it on your Catalog, you need at least one successful source run.
Streams and Fields
Below you’ll find all available data streams from Slack and their corresponding fields:Users
Users
This stream contains information about the users in your Slack workspace.Key Fields:
id
: The unique identifier for the user.name
: The user’s display name.real_name
: The user’s full name.is_bot
: A boolean indicating whether the user is a bot.is_admin
: A boolean indicating whether the user is an admin.updated
: A timestamp indicating when the user’s profile was last updated.
Channels
Channels
This stream provides a list of all public and private channels in your Slack workspace.Key Fields:
id
: The unique identifier for the channel.name
: The name of the channel.is_private
: A boolean indicating whether the channel is private.created
: A timestamp indicating when the channel was created.topic
: An object containing the channel’s topic.purpose
: An object containing the channel’s purpose.
Channel Members
Channel Members
This stream lists all members of each channel.Key Fields:
channel_id
: The ID of the channel.member_id
: The ID of the member.
Messages
Messages
This stream contains all messages from the selected channels.Key Fields:
ts
: The timestamp of the message, which also serves as its unique identifier.thread_ts
: The timestamp of the parent message if the message is part of a thread.user
: The ID of the user who sent the message.text
: The text of the message.channel_id
: The ID of the channel where the message was posted.
Threads
Threads
This stream contains the replies to messages, also known as threads.Key Fields:
ts
: The timestamp of the reply.thread_ts
: The timestamp of the parent message.user
: The ID of the user who sent the reply.text
: The text of the reply.channel_id
: The ID of the channel where the message was posted.
Data Model
The diagram below shows how the different Slack streams are related to each other.If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!