Pattern

Follows the standard connector layout: WebAPIConnectionProperties, entity names mapped to Slack Web API methods, and CommandAttribute for editor-visible operations. Models live under TheTechIdea.Beep.Connectors.Slack.Models.

Source & IDataSource

Implementation: Connectors/Communication/SlackDataSource/SlackDataSource.cs — SlackDataSource : WebAPIDataSource. Entity keys (e.g. channels, messages) map to Slack Web API methods; some entities require filters (e.g. channel for messages). See IDataSource for generic access.

Command methods (CommandAttribute)

NameMethodReturnsObjectType
GetChannelsGetChannels(List<AppFilter> filters = null)Task<IEnumerable<SlackChannel>>SlackChannel
GetMessagesGetMessages(List<AppFilter> filters = null)Task<IEnumerable<SlackMessage>>SlackMessage
GetUsersGetUsers(List<AppFilter> filters = null)Task<IEnumerable<SlackUser>>SlackUser
GetFilesGetFiles(List<AppFilter> filters = null)Task<IEnumerable<SlackFile>>SlackFile
GetTeamGetTeam(List<AppFilter> filters = null)Task<IEnumerable<SlackTeam>>SlackTeam
GetUserGroupsGetUserGroups(List<AppFilter> filters = null)Task<IEnumerable<SlackUserGroup>>SlackUserGroup
PostMessagePostMessageAsync(SlackMessage message)Task<IEnumerable<SlackMessage>>SlackMessage
CreateChannelCreateChannelAsync(SlackChannel channel)Task<IEnumerable<SlackChannel>>SlackChannel
CreateUserGroupCreateUserGroupAsync(SlackUserGroup userGroup)Task<IEnumerable<SlackUserGroup>>SlackUserGroup
UpdateUserGroupUpdateUserGroupAsync(SlackUserGroup userGroup)Task<IEnumerable<SlackUserGroup>>SlackUserGroup

Model types

TheTechIdea.Beep.Connectors.Slack.Models — SlackChannel, SlackMessage, SlackUser, SlackFile, SlackTeam, SlackUserGroup, and related DTOs used for API JSON.

Connection

Bot tokens or workspace OAuth tokens are supplied through connection properties; scopes must match the methods you call. Details vary by Slack app configuration.

Also read