Slack Connector for CData Sync

Build 22.0.8462
  • Slack
    • Establishing a Connection
    • Advanced Features
      • SSL Configuration
      • Firewall and Proxy
    • Data Model
      • Tables
        • Calls
        • Channels
        • Files
        • MessageReplies
        • Messages
        • Pins
        • Reactions
        • Reminders
        • Stars
        • UserGroups
        • Users
    • Connection String Options
      • Authentication
        • OAuthVersion
      • OAuth
        • OAuthClientId
        • OAuthClientSecret
      • SSL
        • SSLServerCert
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
      • Miscellaneous
        • MaxRows
        • Other
        • PseudoColumns
        • Team
        • Timeout
        • UserDefinedViews

Slack Connector for CData Sync

Overview

The CData Sync App provides a straightforward way to continuously pipeline your Slack data to any database, data lake, or data warehouse, making it easily available for Analytics, Reporting, AI, and Machine Learning.

The Slack connector can be used from the CData Sync application to pull data from Slack and move it to any of the supported destinations.

Slack Connector for CData Sync

Establishing a Connection

Create a connection to Slack by navigating to the Connections page in the Sync App application and selecting the corresponding icon in the Add Connections panel. If the Slack icon is not available, click the Add More icon to download and install the Slack connector from the CData site.

Required properties are listed under the Settings tab. The Advanced tab lists connection properties that are not typically required.

OAuth

Slack uses the OAuth authentication standard. To authenticate using OAuth, you will need to create an app to obtain the OAuthClientId, OAuthClientSecret, and CallbackURL connection properties. See Using OAuth Authentication for a guide.

Slack Connector for CData Sync

Advanced Features

This section details a selection of advanced features of the Slack Sync App.

User Defined Views

The Sync App allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.

SSL Configuration

Use SSL Configuration to adjust how Sync App handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.

Firewall and Proxy

Configure the Sync App for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.

Query Processing

The Sync App offloads as much of the SELECT statement processing as possible to Slack and then processes the rest of the query in memory (client-side).

See Query Processing for more information.

Logging

See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.

Slack Connector for CData Sync

SSL Configuration

Customizing the SSL Configuration

By default, the Sync App attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.

To specify another certificate, see the SSLServerCert property for the available formats to do so.

Slack Connector for CData Sync

Firewall and Proxy

Connecting Through a Firewall or Proxy

HTTP Proxies

To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.

In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.

Other Proxies

Set the following properties:

  • To use a proxy-based firewall, set FirewallType, FirewallServer, and FirewallPort.
  • To tunnel the connection, set FirewallType to TUNNEL.
  • To authenticate, specify FirewallUser and FirewallPassword.
  • To authenticate to a SOCKS proxy, additionally set FirewallType to SOCKS5.

Slack Connector for CData Sync

Data Model

The Sync App models the Slack APIs as Tables and Stored Procedures.

The stored procedures are function-like interfaces to Slack that enable you to work with other aspects of the Slack API. They can be used to search, update, and modify information in Slack.

The tables and stored procedures are defined in static schema files, making them easy to customize.

Slack Connector for CData Sync

Tables

The Sync App models the data in Slack into a list of tables that can be queried using standard SQL statements.

Generally, querying Slack tables is the same as querying a table in a relational database. Sometimes there are special cases, for example, including a certain column in the WHERE clause might be required to get data for certain columns in the table. This is typically needed for situations where a separate request must be made for each row to get certain columns. These types of situations are clearly documented at the top of the table page linked below.

Slack Connector for CData Sync Tables

Name Description
Calls Register,update,end or return information about a Call.
Channels Create, update, and query the available channels in Slack.
Files Query and delete team files.
MessageReplies Create, update, delete, and query threads of messages posted to a conversation.
Messages Create, update, delete, and query the available messages in Slack.
Pins Create, delete, and query all items pinned to a channel.
Reactions Create, delete, and query reactions on items.
Reminders Create, delete, and query all reminders by or for a given user.
Stars Create,List or Delete a user's saved items.
UserGroups Create, update, and query all User Groups for a Slack team.
Users Update and query all users for a Slack team.

Slack Connector for CData Sync

Calls

Register,update,end or return information about a Call.

Select

You must specify the Id column in the WHERE clause to query the Calls table.

The Sync App will use the Slack API to process search criteria that refer to the Id column. This column supports server-side processing for the = operator. The Sync App processes other filters client-side within the Sync App.

For example, the following query is processed server side:

SELECT * FROM Calls WHERE Id='R04HH525YBS'

Insert

Inserts are allowed when you specify the ExternalUniqueId and JoinURL. For example:

INSERT INTO Calls(ExternalUniqueId, JoinURL) VALUES(uniqId, joinurl)

Update

Updates are allowed when you specify the Id.

UPDATE Calls SET JoinURL='join', Title='t' WHERE Id='R04HH525YBS'

Delete

You can delete a pin by providing the Id.

DELETE FROM Calls WHERE id='R04HH525YBS' 

Columns

Name Type ReadOnly Description
Id [KEY] String True

Id of the call.

DateStart Datetime True

Start time of the call.

DesktopAppJoinURL String False

The desktop app join url of the call.

ExternalDisplayId String False

The external display of the call.

ExternalUniqueId String False

The external unique Id of the call.

JoinURL String False

The joining url of the call.

Title String False

The title of the call.

Users String True

The users involved in the call.

Slack Connector for CData Sync

Channels

Create, update, and query the available channels in Slack.

Select

The Sync App will use the Slack API to process search criteria that refer to the Id, IsArchived, IsPublic, IsGroup, IsDirectMessage, and IsMultipartyDirectMessage columns. These columns support server-side processing for the = operator. The Sync App processes other filters client-side within the Sync App.

For example, the following queries are processed server side by the Slack APIs:

SELECT * FROM Channels WHERE IsPublic = false AND IsGroup = false AND IsArchived = true
 SELECT * FROM Channels WHERE Id = 'D71R6CSR1' 
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

The Name column is the minimum requirement for an insert. Name and IsPublic are the only columns that can be set on an insert.

INSERT INTO Channels (Name, IsPublic) VALUES ('initialname', true)

Update

The Channels table allows updates for columns Name, Purpose, and Topic when Id is specified.

UPDATE Channels SET Topic = 'A Topic Text', Purpose = 'A Purpose Text', Name = 'updatedname' WHERE Id = 'D71R6CSR1' 

Delete

Slack does not allow Channels to be deleted.

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the channel.

Name String False

The name of the channel.

Topic String False

Information about the channel topic.

TopicCreator String True

Creator of the channel topic.

Purpose String False

Information about the channel purpose.

TotalMembers Integer True

Number of members in the channel.

Created Datetime True

Channel creation datetime.

Creator String True

User ID of the member that created this channel.

LastRead Datetime True

The datetime for the last message the calling user has read in this channel.

IsMember Boolean True

Indicates the user or bot user or Slack app associated with the token making the API call is itself a member of the conversation.

IsArchived Boolean True

Indicates a conversation is archived. Frozen in time

IsPublic Boolean False

Indicates whether a conversation is a public channel. Everything said in a public channel can be read by anyone else belonging to a workspace.

IsGroup Boolean True

Indicates whether the channel is a private channel between a group of members.

IsDirectMessage Boolean True

Means the conversation is a direct message between two distinguished individuals or a user and a bot.

IsMultipartyDirectMessage Boolean True

Represents an unnamed private conversation between multiple users.

IsGeneral Boolean True

Means the channel is the workspace's 'general' discussion channel.

Unlinked Integer True

Number of times a link to the channel has been removed.

NameNormalized String True

Normalized name of the channel.

IsShared Boolean True

Means the conversation is in some way shared between multiple workspaces.

IsExtShared Boolean True

Represents this conversation as being part of a Shared Channel with a remote organization.

IsOrgShared Boolean True

Explains whether this shared channel is shared between Enterprise Grid workspaces within the same organization.

IsPendingExtShared Boolean True

It means the conversation is ready to become an IsExtShared channel but isn't quite ready yet and needs some kind of approval or sign off.

PreviousNames String True

A list of previous names this channel has had.

Locale String True

Locale of the channel.

User String True

IsUserDeleted Boolean True

Priority String True

Slack Connector for CData Sync

Files

Query and delete team files.

Select

The Sync App will use the Slack API to filter by search criteria that refer to the Id, Created, UserId, Types, SpecificChannel, or SearchTerm columns. All columns support server-side processing for the = operator, and the Created column also supports server-side processing for the >, >=, <, <= operators.

The Sync App processes other search criteria client-side within the Sync App.

For example, the following queries are processed server side:

SELECT * FROM Files WHERE Created > '2017-01-01' AND UserId = 'U2345NDS' AND SpecificChannel = 'D71R6CSR1'

You can also filter files by querying the files' contents: Set the SearchTerm pseudocolumn in the criteria. All files containing the queried word will be retrieved. For example:

SELECT * FROM Files WHERE SearchTerm = 'text'
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

Slack does not allow inserting new files.

Update

Slack does not allow updating files.

Delete

Files can be deleted by providing the Id of the file.

DELETE FROM Files WHERE Id = 'F71R6DRR1'

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the file.

Name String True

The name of the file. It may nbe null for unnamed files

Title String True

The title of the file.

Created Datetime True

Creation date of the file.

UserId String True

User ID of the member that created this file.

Username String True

Username of the file creator.

InitialComment String True

A comment from the file uploader, and will only be set when the uploader left a comment at the time of upload.

Size Integer True

The filesize in bytes. Snippets are limited to a maximum file size of 1 megabyte

Filetype String True

The type of the file.

Mimetype String True

Mime type of the file.

PrettyType String True

Human-readable version of the type.

CommentsCount Integer True

Number of comments made on the file.

Mode String True

A property that contains one of hosted, external, snippet or post.

PublicChannelIds String True

A list of channel IDs in which the file is currently shared.

GroupIds String True

A list of private groups IDs in which the file is currently shared.

DirectMessageIds String True

A list of instant message IDs in which the file is currently shared.

Editable Boolean True

Indicates that files are stored in editable mode.

Permalink String True

URL that points to a single page for the file containing details, comments and a download link.

PermalinkPublic String True

If the file is available to the public, this URL points to the public file itself.

EditLink String True

Present for posts and snippets. The page where the file can be edited

UrlPrivate String True

Points to a URL to the file contents.

UrlPrivateDownload String True

For editable-mode files, this parameter includes headers to force a browser download.

Thumb480 String True

Contains the URL of an 480x480 thumb.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
SpecificChannel String

Filter files appearing in a specific channel, indicated by its ID.

SearchTerm String

Filter by this column to retrieve all files that contain the word in the criteria.

Types String

Filter files by type. Allowed values are all,spaces,snippets,images,gdocs,zips. Default value is all.

The allowed values are all, spaces, snippets, images, gdocs, zips.

Slack Connector for CData Sync

MessageReplies

Create, update, delete, and query threads of messages posted to a conversation.

Select

The MessageReplies table requires the ChannelId And ParentMessageId columns in the WHERE clause. Search criteria that refer to other columns are processed client-side within the Sync App.

For example, the following query is processed server side:

SELECT * FROM MessageReplies WHERE ChannelId = 'D71R6CSR1' AND ParentMessageId = '1234567890.123456'
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

Slack allows inserts only when ChannelId, Text, and ParentMessageId are specified.

INSERT INTO MessageReplies (ChannelId, Text, ParentMessageId) VALUES ('D71R6CSR1', 'This is a message', '1234567890.123456')

Update

The MessageReplies table allows updates only for the Text field. Specify ChannelId and Id.

UPDATE MessageReplies Set Text = 'Updated message' WHERE ChannelId = 'D71R6CSR1' AND Id = '1234567890.123456' 

Delete

MessageReplies can be deleted by providing the ChannelId and the Id of the message.

DELETE FROM MessageReplies WHERE ChannelId = 'D71R6CSR1' AND Id = '1234567890.123456 

Columns

Name Type ReadOnly Description
Id [KEY] String True

Unique identifier for the messages.

ChannelId [KEY] String False

Conversation ID to fetch thread from.

UserId String True

User Id of the user who posted the reply.

Text String False

Reply message content.

ParentMessageId [KEY] String False

Unique identifier of a thread's parent message.

ReplyCount Integer True

The replies number for thread's parent message.

Subscribed Boolean True

Indicates if the user is subscribed to this channel.

LastRead Datetime True

The datetime for the last message the calling user has read in this channel.

UnreadCount Integer True

The number of members that have not read the parent message.

Slack Connector for CData Sync

Messages

Create, update, delete, and query the available messages in Slack.

Select

The Messages table requires ChannelId or SearchTerm in the WHERE clause. The Sync App also uses the Slack API to process search criteria that refer to the Id column. The ChannelId, SearchTerm, and Id columns support server-side processing for the = operator. The Sync App processes other search criteria client-side within the Sync App.

SELECT * FROM Messages WHERE ChannelId = 'D71R6CSR1'
SELECT * FROM Messages WHERE SearchTerm = 'text' 
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

Slack allows inserts only when ChannelId and Text are specified.

INSERT INTO Messages (ChannelId, Text) VALUES ('D71R6CSR1', 'This is a message')

Update

The Messages table allows updates only for the Text field. Specify ChannelId and Id.

UPDATE Messages Set Text = 'Updated message' WHERE ChannelId = 'D71R6CSR1' AND Id = '1234567890.123456' 

Delete

Messages can be deleted by providing the ChannelId and the Id of the message.

DELETE FROM Messages WHERE ChannelId = 'D71R6CSR1' AND Id = '1234567890.123456' 

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the message.

ChannelId [KEY] String False

The Id of the channel the message was posted to.

UserId String True

The Id of the user that posted the message.

Text String False

Text of the message.

Type String True

Type of the message.

Item_type String True

Item type of the message.

Subtype String True

Subtype of the message.

Team String True

Team of the message.

Pinned_to String False

Pinned details of the message.

Pinned_info_Channel String True

Id of the pinned channel of the message.

Pinned_info_pinned_by String True

Id of the pinned by message.

Pinned_info_pinned_ts String True

Id of the pinned message of the message.

AttachmentsAggregate String True

Attachments made to the message.

Purpose String False

Purpose of the message.

BotId String True

BotId of the message.

BotLink String True

BotLink of the message.

Username String True

UserName of the message.

Reply_count Integer False

Count of the replied channels to the message.

Reply_users_count Integer False

Count of the replied users to the message.

Latest_reply String True

Latest message reply of the message.

Last_read String True

Last read message.

Reply_usersAggreagte String True

Replied user details of the message.

Subscribed Boolean True

Subscribed status of the message.

Topic String True

Topic of the message.

Old_name String False

Old Name of the message.

Name String False

Name of the message.

SearchTerm String True

Filter by this column to retrieve all messages that contain the word in the criteria.

Slack Connector for CData Sync

Pins

Create, delete, and query all items pinned to a channel.

Select

You must specify the ChannelId column in the WHERE clause to query the Pins table.

The Sync App will use the Slack API to process search criteria that refer to the ChannelId column. This column supports server-side processing for the = operator. The Sync App processes other filters client-side within the Sync App.

For example, the following query is processed server side:

SELECT * FROM Pins WHERE ChannelId = 'D71R6CSR1'
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

INSERTS are allowed when you specify the ChannelId, Id, and Type. For example:

INSERT INTO Pins (ChannelId, Id, Type) VALUES ('D71R6CSR1', 'F71R6DRR1', 'file')

Update

Slack does not support the update of pins.

Delete

You can delete a pin by providing the ChannelId, Id, and Type.

DELETE FROM Pins WHERE ChannelId = 'D71R6CSR1' AND Id = '1505287261.000226' AND Type = 'message'

Columns

Name Type ReadOnly Description
Id [KEY] String False

The Id of the pinned item.

Type [KEY] String False

The type of the pinned item.

The allowed values are message, file, file comment.

Created Datetime True

A unique datetime representing when the item was pinned.

ChannelId [KEY] String False

Channel Id to get pinned items for.

PinnedToChannelIds String True

Comma separated list of channel ids the item is pinned to.

CreatedBy String True

The encoded user id of the user who pinned the item.

Slack Connector for CData Sync

Reactions

Create, delete, and query reactions on items.

Select

The Sync App will use the Slack API to process search criteria that refer to the Team,Users column. This column supports server-side processing for the = operator. The Sync App processes other filters client-side within the Sync App.

SELECT * FROM Reactions

SELECT * FROM Reactions WHERE Users='U046AV8HU3G'

SELECT * FROM Reactions WHERE Team='T046W75LRTK' 

SELECT * FROM Reactions WHERE Team='T046W75LRTK' AND Users='U046AV8HU3G' 

Insert

Inserts are allowed when you specify the ChannelId, Id, Name and Type. For example:

INSERT INTO Reactions(ChannelId,Id,Type,Name) VALUES('C04HBS2PS56','1672114112.994259','message', 'raised_hands')

Update

Slack does not support the update of reactions.

Delete

You can delete a pin by providing the ChannelId, Id, Name and Type.

DELETE FROM Reactions WHERE Name='raised_hands' AND ChannelId='C04HBS2PS56' AND Id='1672114112.994259' AND  type='message' 

Columns

Name Type ReadOnly Description
Id String False

The Id of the reacted item.

ChannelId String False

The ChanneldId where item is reacted

Type String False

The type of the reacted item.

The allowed values are message, file, file comment.

Name String False

The name of the reaction

Count String True

The count of reactions on that message

Users String True

The encoded user id of the user who reacted to the message.

Team String True

The name of the reaction

Slack Connector for CData Sync

Reminders

Create, delete, and query all reminders by or for a given user.

Select

The Sync App uses the Slack API to process search criteria that refer to the Id column while other filters are processed client-side within the Sync App. For example, the following query is processed server side:

SELECT * FROM Reminders WHERE Id = 'RT7U7LN6F'
You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.

Insert

Inserts are allowed when you specify the Text and Time for the reminder. You can also add UserId. For example:

INSERT INTO Reminders (Text, Time, UserId) VALUES ('Remind me for coffee', '2017-01-01 10:00', 'U723764DF')

Update

Slack does not support the update of reminders.

Delete

You can delete a reminder by providing the Id.

DELETE FROM Reminders WHERE Id = 'R71R6CSR1'

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the reminder.

Creator String True

The Id of the user who created the reminder.

UserId String False

The Id of the user the reminder is set for.

Text String False

The content of the reminder.

Recurring Boolean True

Indicates if this reminder is to be repeated.

Time Datetime False

The datetime of the reminder.

CompleteTimestamp Datetime True

The datetime when the reminder was completed.

Slack Connector for CData Sync

Stars

Create,List or Delete a user's saved items.

Select

The Sync App will use the Slack API to process search criteria that refer to the Team column. This column supports server-side processing for the = operator. The Sync App processes other filters client-side within the Sync App.

SELECT * FROM Stars

SELECT * FROM Stars WHERE Team='T046W75LRTK' 

Insert

Inserts are allowed when you specify the ChannelId, Id and Type. For example:

INSERT INTO Stars(ChannelId, Id, Type) VALUES('C046W75NBHP', '1666336493.256699', 'message'))

Update

Slack does not support the update of reactions.

Delete

You can delete a pin by providing the ChannelId, Id and Type.

DELETE FROM Stars WHERE ChannelId='C046W75NBHP' AND Id='1666336493.25/6699' AND Type='message'

Columns

Name Type ReadOnly Description
Id [KEY] String False

The Id of the starred item.

ChannelId String False

The ChannelId where the item is starred

Type [KEY] String False

The type of the starred item.

The allowed values are message, file, file comment.

Team String True

The encoded team id of the user who saved the message.

User String True

The encoded user id of the user who saved the message.

CreatedAt Datetime True

The timestamp of item saved

Slack Connector for CData Sync

UserGroups

Create, update, and query all User Groups for a Slack team.

Select

The Sync App uses the Slack API to process search criteria that refer to the IncludeDisabled column while other search criteria are processed client-side within the Sync App. For example, the following query is processed server side:

SELECT * FROM UserGroups WHERE IncludeDisabled = 'true'

Insert

Inserts are allowed only for paid workspaces and when you specify the Name of the user group. Other optional fields are Description, Handle, and PreferredChannelIds. For example:

INSERT INTO UserGroups (Name, PreferredChannelIds) VALUES ('newgroup', 'C5S8LAY0Y,C79J7PREU')

Update

You can update a user group by providing the Id and you can update the UserIds, Name, Description, PreferredChannelIds, and Handle columns. Updates are only allowed for paid workspaces.

UPDATE UserGroups SET PreferredChannelIds = 'C5S8LAY0Y,C79J7PREU', Name = 'newname' WHERE Id = 'U4826PEF'

Delete

Slack does not support the deletion of user groups.

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the User Group.

Name String False

Indicates the friendly name of the group.

Description String False

Explains the purpose of the group.

TeamId String True

Identifier of the team this user group belongs to.

UserIds String False

Contains a list of user id values that belong to the User Group.

UserCount String True

Indicates the total number of users in a group.

Handle String False

Indicates the value used to notify group members via a mention without a leading @ sign.

PreferredChannelIds String False

Channels that members of this group will be invited to upon joining.

PreferredGroupsIds String True

Groups (private channels) that members of this group will be invited to upon joining.

IsExternal Boolean True

Represents this conversation as being externally shared.

DateCreated Datetime True

Datetime of the creation of the user group.

DateUpdated Datetime True

Datetime that the user group became disabled.

CreatedBy String True

Id of the user who created the user group.

UpdatedBy String True

Id of the user who last modified the user group.

DeletedBy String True

Id of the user who disabled/archived the user group.

AutoType String True

This parameter's value can be admins for a Workspace Admins group, owners for a Workspace Owners group or null for a custom group.

Pseudo-Columns

Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.

Name Type Description
IncludeDisabled Boolean

A boolean set to include or exclude disabled User Groups in the retrieved data.

Slack Connector for CData Sync

Users

Update and query all users for a Slack team.

Select

The Sync App uses the Slack API to process search criteria that refer to the Id column, while other filters are processed client-side within the Sync App. For example, the following query is processed server side:

SELECT * FROM Users WHERE Id = 'U5SU7GU6N'

Insert

Slack does not support inserting new users.

Update

You can update a user's FirstName, LastName, ProfileDisplayName, and ProfileEmail by providing the Id of the user. Only a team admin of a paid team can update another user's profile.

UPDATE Users Set ProfileDisplayName = 'Dis Name', ProfileEmail = '[email protected]' WHERE Id = 'U5SU7GU6N'

Delete

Slack does not support deleting users.

Columns

Name Type ReadOnly Description
Id [KEY] String True

The Id of the User.

FirstName String False

Fist name of the user.

LastName String False

Last name of the user.

FullName String True

Full name of the user.

ProfileDisplayName String False

Display name of the user.

ProfileEmail String False

Email of the user.

ProfileImage String True

URLs to square, web-viewable image of a user's profile.

Deleted Boolean True

Indicates if the user is deactivated.

TeamId String True

Id of the Slack team the user belongs to.

IsAdmin Boolean True

Indicates whether the user administers this team.

Color String True

A field used in some clients to display a colored username.

Timezone String True

String for the geographic region.

TimezoneLabel String True

String describing the name of that timezone.

TimezoneOffset Integer True

A signed integer indicating the number of seconds to offset UTC time by.

IsOwner Boolean True

Indicates whether this user is the owner of this team.

IsPrimaryOwner Boolean True

Indicates whether this user is the primary owner of this team.

IsRestricted Boolean True

Indicates whether this user is restricted from the team .

IsUltraRestricted Boolean True

Indicates whether this user is forbidden from the team.

Updated Datetime True

A datetime that shows when the user was last updated.

IsAppUser Boolean True

A boolean value indicating if the user uses the Slack App.

Has2fa Boolean True

A boolean value indicating if the user uses Two Factor Authentication.

Slack Connector for CData Sync

Connection String Options

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.

For more information on establishing a connection, see Establishing a Connection.

Authentication


PropertyDescription
OAuthVersionThe type of authentication to use when connecting to Slack.

OAuth


PropertyDescription
OAuthClientIdThe client Id assigned when you register your application with an OAuth authorization server.
OAuthClientSecretThe client secret assigned when you register your application with an OAuth authorization server.

SSL


PropertyDescription
SSLServerCertThe certificate to be accepted from the server when connecting using TLS/SSL.

Firewall


PropertyDescription
FirewallTypeThe protocol used by a proxy-based firewall.
FirewallServerThe name or IP address of a proxy-based firewall.
FirewallPortThe TCP port for a proxy-based firewall.
FirewallUserThe user name to use to authenticate with a proxy-based firewall.
FirewallPasswordA password used to authenticate to a proxy-based firewall.

Proxy


PropertyDescription
ProxyAutoDetectThis indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
ProxyServerThe hostname or IP address of a proxy to route HTTP traffic through.
ProxyPortThe TCP port the ProxyServer proxy is running on.
ProxyAuthSchemeThe authentication type to use to authenticate to the ProxyServer proxy.
ProxyUserA user name to be used to authenticate to the ProxyServer proxy.
ProxyPasswordA password to be used to authenticate to the ProxyServer proxy.
ProxySSLTypeThe SSL type to use when connecting to the ProxyServer proxy.
ProxyExceptionsA semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .

Logging


PropertyDescription
LogModulesCore modules to be included in the log file.

Schema


PropertyDescription
LocationA path to the directory that contains the schema files defining tables, views, and stored procedures.
BrowsableSchemasThis property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
TablesThis property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
ViewsRestricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.

Miscellaneous


PropertyDescription
MaxRowsLimits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
OtherThese hidden properties are used only in specific use cases.
PseudoColumnsThis property indicates whether or not to include pseudo columns as columns to the table.
TeamThe name of the Slack Team. If you omit the optional Team parameter, you will be allowed to choose which workspace they are authenticating against.
TimeoutThe value in seconds until the timeout error is thrown, canceling the operation.
UserDefinedViewsA filepath pointing to the JSON configuration file containing your custom views.
Slack Connector for CData Sync

Authentication

This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.


PropertyDescription
OAuthVersionThe type of authentication to use when connecting to Slack.
Slack Connector for CData Sync

OAuthVersion

The type of authentication to use when connecting to Slack.

Remarks

  • v1: Set to this to perform OAuth authentication on legacy apps.
  • v2: Set to this to perform OAuth authentication on new apps.
  • openid: Set to this to perform OAuth authentication using OpenId Connect.

Slack Connector for CData Sync

OAuth

This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.


PropertyDescription
OAuthClientIdThe client Id assigned when you register your application with an OAuth authorization server.
OAuthClientSecretThe client secret assigned when you register your application with an OAuth authorization server.
Slack Connector for CData Sync

OAuthClientId

The client Id assigned when you register your application with an OAuth authorization server.

Remarks

As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.

Slack Connector for CData Sync

OAuthClientSecret

The client secret assigned when you register your application with an OAuth authorization server.

Remarks

As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.

Slack Connector for CData Sync

SSL

This section provides a complete list of the SSL properties you can configure in the connection string for this provider.


PropertyDescription
SSLServerCertThe certificate to be accepted from the server when connecting using TLS/SSL.
Slack Connector for CData Sync

SSLServerCert

The certificate to be accepted from the server when connecting using TLS/SSL.

Remarks

If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.

This property can take the following forms:

Description Example
A full PEM Certificate (example shortened for brevity) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
A path to a local file containing the certificate C:\cert.cer
The public key (example shortened for brevity) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
The MD5 Thumbprint (hex values can also be either space or colon separated) ecadbdda5a1529c58a1e9e09828d70e4
The SHA1 Thumbprint (hex values can also be either space or colon separated) 34a929226ae0819f2ec14b4a3d904f801cbb150d

If not specified, any certificate trusted by the machine is accepted.

Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.

Slack Connector for CData Sync

Firewall

This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.


PropertyDescription
FirewallTypeThe protocol used by a proxy-based firewall.
FirewallServerThe name or IP address of a proxy-based firewall.
FirewallPortThe TCP port for a proxy-based firewall.
FirewallUserThe user name to use to authenticate with a proxy-based firewall.
FirewallPasswordA password used to authenticate to a proxy-based firewall.
Slack Connector for CData Sync

FirewallType

The protocol used by a proxy-based firewall.

Remarks

This property specifies the protocol that the Sync App will use to tunnel traffic through the FirewallServer proxy. Note that by default, the Sync App connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.

Type Default Port Description
TUNNEL 80 When this is set, the Sync App opens a connection to Slack and traffic flows back and forth through the proxy.
SOCKS4 1080 When this is set, the Sync App sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted.
SOCKS5 1080 When this is set, the Sync App sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes.

To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.

Slack Connector for CData Sync

FirewallServer

The name or IP address of a proxy-based firewall.

Remarks

This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.

Note that the Sync App uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.

Slack Connector for CData Sync

FirewallPort

The TCP port for a proxy-based firewall.

Remarks

This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.

Slack Connector for CData Sync

FirewallUser

The user name to use to authenticate with a proxy-based firewall.

Remarks

The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.

Slack Connector for CData Sync

FirewallPassword

A password used to authenticate to a proxy-based firewall.

Remarks

This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.

Slack Connector for CData Sync

Proxy

This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.


PropertyDescription
ProxyAutoDetectThis indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
ProxyServerThe hostname or IP address of a proxy to route HTTP traffic through.
ProxyPortThe TCP port the ProxyServer proxy is running on.
ProxyAuthSchemeThe authentication type to use to authenticate to the ProxyServer proxy.
ProxyUserA user name to be used to authenticate to the ProxyServer proxy.
ProxyPasswordA password to be used to authenticate to the ProxyServer proxy.
ProxySSLTypeThe SSL type to use when connecting to the ProxyServer proxy.
ProxyExceptionsA semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .
Slack Connector for CData Sync

ProxyAutoDetect

This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.

Remarks

This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.

To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.

Slack Connector for CData Sync

ProxyServer

The hostname or IP address of a proxy to route HTTP traffic through.

Remarks

The hostname or IP address of a proxy to route HTTP traffic through. The Sync App can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.

If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.

By default, the Sync App uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.

Slack Connector for CData Sync

ProxyPort

The TCP port the ProxyServer proxy is running on.

Remarks

The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.

Slack Connector for CData Sync

ProxyAuthScheme

The authentication type to use to authenticate to the ProxyServer proxy.

Remarks

This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.

Note that the Sync App will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.

The authentication type can be one of the following:

  • BASIC: The Sync App performs HTTP BASIC authentication.
  • DIGEST: The Sync App performs HTTP DIGEST authentication.
  • NEGOTIATE: The Sync App retrieves an NTLM or Kerberos token based on the applicable protocol for authentication.
  • PROPRIETARY: The Sync App does not generate an NTLM or Kerberos token. You must supply this token in the Authorization header of the HTTP request.

If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.

Slack Connector for CData Sync

ProxyUser

A user name to be used to authenticate to the ProxyServer proxy.

Remarks

The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.

You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:

user@domain
domain\user

Slack Connector for CData Sync

ProxyPassword

A password to be used to authenticate to the ProxyServer proxy.

Remarks

This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.

If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.

If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.

For SOCKS 5 authentication or tunneling, see FirewallType.

By default, the Sync App uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.

Slack Connector for CData Sync

ProxySSLType

The SSL type to use when connecting to the ProxyServer proxy.

Remarks

This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:

AUTODefault setting. If the URL is an HTTPS URL, the Sync App will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option.
ALWAYSThe connection is always SSL enabled.
NEVERThe connection is not SSL enabled.
TUNNELThe connection is through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy.

Slack Connector for CData Sync

ProxyExceptions

A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .

Remarks

The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.

Note that the Sync App uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.

Slack Connector for CData Sync

Logging

This section provides a complete list of the Logging properties you can configure in the connection string for this provider.


PropertyDescription
LogModulesCore modules to be included in the log file.
Slack Connector for CData Sync

LogModules

Core modules to be included in the log file.

Remarks

Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.

See the Logging page for an overview.

Slack Connector for CData Sync

Schema

This section provides a complete list of the Schema properties you can configure in the connection string for this provider.


PropertyDescription
LocationA path to the directory that contains the schema files defining tables, views, and stored procedures.
BrowsableSchemasThis property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
TablesThis property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
ViewsRestricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
Slack Connector for CData Sync

Location

A path to the directory that contains the schema files defining tables, views, and stored procedures.

Remarks

The path to a directory which contains the schema files for the Sync App (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.

If left unspecified, the default location is "%APPDATA%\\CData\\Slack Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:

Slack Connector for CData Sync

BrowsableSchemas

This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.

Remarks

Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.

Slack Connector for CData Sync

Tables

This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.

Remarks

Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Sync App.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.

Slack Connector for CData Sync

Views

Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.

Remarks

Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Sync App.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.

Slack Connector for CData Sync

Miscellaneous

This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.


PropertyDescription
MaxRowsLimits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
OtherThese hidden properties are used only in specific use cases.
PseudoColumnsThis property indicates whether or not to include pseudo columns as columns to the table.
TeamThe name of the Slack Team. If you omit the optional Team parameter, you will be allowed to choose which workspace they are authenticating against.
TimeoutThe value in seconds until the timeout error is thrown, canceling the operation.
UserDefinedViewsA filepath pointing to the JSON configuration file containing your custom views.
Slack Connector for CData Sync

MaxRows

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.

Remarks

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.

Slack Connector for CData Sync

Other

These hidden properties are used only in specific use cases.

Remarks

The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.

Specify multiple properties in a semicolon-separated list.

Integration and Formatting

DefaultColumnSizeSets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000.
ConvertDateTimeToGMTDetermines whether to convert date-time values to GMT, instead of the local time of the machine.
RecordToFile=filenameRecords the underlying socket data transfer to the specified file.

Slack Connector for CData Sync

PseudoColumns

This property indicates whether or not to include pseudo columns as columns to the table.

Remarks

This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".

Slack Connector for CData Sync

Team

The name of the Slack Team. If you omit the optional Team parameter, you will be allowed to choose which workspace they are authenticating against.

Remarks

The name of the Slack Team. If you omit the optional Team parameter, you will be allowed to choose which workspace they are authenticating against.

Slack Connector for CData Sync

Timeout

The value in seconds until the timeout error is thrown, canceling the operation.

Remarks

If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.

If Timeout expires and the operation is not yet complete, the Sync App throws an exception.

Slack Connector for CData Sync

UserDefinedViews

A filepath pointing to the JSON configuration file containing your custom views.

Remarks

User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Sync App automatically detects the views specified in this file.

You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Sync App.

This User Defined View configuration file is formatted as follows:

  • Each root element defines the name of a view.
  • Each root element contains a child element, called query, which contains the custom SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Channels WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8462