Slack

Integrate your application with the Slack API

🚀 Quickstart

Connect to Slack with Tenklo and see data flow in 2 minutes.

Create the integration

In Tenklo (free signup), go to Integrations -> Configure New Integration -> Slack.

Authorize Slack

Go to Connections -> Add Test Connection -> Authorize, then log in to Slack. Later, you'll let your users do the same directly from your app.

Call the Slack API

Let's make your first request to the Slack API (fetch a list of channels in a Slack team). Replace the placeholders below with your Environment API key, integration ID, and connection ID:

curl "https://api.tenklo.dev/proxy/conversations.list?limit=10" \
  -H "Authorization: Bearer <NANGO-API-KEY>" \
  -H "Provider-Config-Key: <INTEGRATION-ID>" \
  -H "Connection-Id: <CONNECTION-ID>"

Or fetch credentials with the Node SDK or API.

✅ You're connected! Check the Logs tab in Tenklo to inspect requests.

Implement Tenklo in your app

Follow our Auth implementation guide to integrate Tenklo in your app.

To obtain your own production credentials, follow the setup guide linked below.

📚 Slack Integration Guides

Tenklo maintained guides for common use cases.

Official docs: Slack API docs

🧩 Pre-built syncs & actions for Slack

Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.

Channels

Function nameDescriptionTypeSource code
channelsSync conversations allowed by granted scopes - public/private channels, DMs, and group DMsSync🔗 Github

Messages

Function nameDescriptionTypeSource code
messages-receivedSync messages, thread replies, and reactions for conversations the bot can access; fully backfill new channels, then resync the last 10 days using channelsLastSyncDate metadata.Sync🔗 Github

Users

Function nameDescriptionTypeSource code
usersSync all workspace users including deactivated accounts with email and profile fieldsSync🔗 Github

Others

Function nameDescriptionTypeSource code
add-reactionAdd an emoji reaction to a specific Slack messageAction🔗 Github
archive-channelArchive a Slack channelAction🔗 Github
create-channelCreate a new public or private Slack channel by name; does not create DMs or other conversation types.Action🔗 Github
create-reminderCreate a reminder for a userAction🔗 Github
delete-messageDelete a message from a channelAction🔗 Github
delete-scheduled-messageCancel a scheduled messageAction🔗 Github
search-messagesSearch for messages matching a queryAction🔗 Github
lookup-user-by-emailLook up a user by email addressAction🔗 Github
get-channel-infoRetrieve conversation details including topic, purpose, and membership stateAction🔗 Github
get-conversation-historyFetch paginated message history for a conversation within optional time boundsAction🔗 Github
get-dnd-infoGet a user's Do Not Disturb status and next scheduled DND windowAction🔗 Github
get-message-permalinkGet a permanent URL for a messageAction🔗 Github
get-reactionsRetrieve all reactions attached to a specific messageAction🔗 Github
get-team-infoRetrieve workspace details such as name, domain, and iconAction🔗 Github
get-thread-repliesFetch paginated thread replies and parent message for a conversation threadAction🔗 Github
get-upload-urlGenerate an external upload URL and file ID for Slack uploadsAction🔗 Github
get-user-infoRetrieve a user's account details, including profile and avatar fieldsAction🔗 Github
get-user-presenceCheck if a user is online or awayAction🔗 Github
get-user-profileRetrieve a user's detailed profile, status, and custom fieldsAction🔗 Github
invite-to-channelInvite users to a Slack channelAction🔗 Github
join-channelJoin a public or private channel and return its conversation detailsAction🔗 Github
leave-channelLeave a channelAction🔗 Github
get-channel-membersList members in a Slack channelAction🔗 Github
list-channelsList Slack conversations with optional type filters and cursor pagination.Action🔗 Github
list-custom-emojiList workspace custom emoji mappings, including alias-based emoji entriesAction🔗 Github
list-filesList files shared in the workspaceAction🔗 Github
list-pinsList all items pinned in a specific channelAction🔗 Github
list-scheduled-messagesList pending scheduled messagesAction🔗 Github
list-user-group-membersList member user IDs for a specific Slack user groupAction🔗 Github
list-user-groupsList workspace user groups with optional disabled and membership countsAction🔗 Github
list-user-reactionsList items the user reacted to with cursor-based paginationAction🔗 Github
list-usersList all users in the workspaceAction🔗 Github
mark-as-readMove a conversation's read cursor to a specific message timestampAction🔗 Github
open-dmOpen a direct or multi-person DM for specified usersAction🔗 Github
pin-messagePin a specific message in a channelAction🔗 Github
post-messagePost a message to a channel, DM, or threadAction🔗 Github
remove-reactionRemove an emoji reaction from a specific messageAction🔗 Github
remove-from-channelRemove a user from a channelAction🔗 Github
rename-channelRename a Slack channelAction🔗 Github
schedule-messageSchedule a Slack message to a channel or thread, subject to Slack's 120-day scheduling limit.Action🔗 Github
search-filesSearch workspace files with paginationAction🔗 Github
send-ephemeral-messageSend a message visible only to one user in a channelAction🔗 Github
send-messageSend a message to a channelAction🔗 Github
set-channel-purposeUpdate a channel's purpose text for a conversationAction🔗 Github
set-channel-topicSet the topic of a channelAction🔗 Github
set-statusSet a user's statusAction🔗 Github
set-user-presenceSet a user's presence to online or awayAction🔗 Github
start-streamPost a new message and open it for incremental streamed updates (e.g. an AI response typed in over time). Confirmed live: only works in DM/IM channels - public and private channels return channel_type_not_supported.Action🔗 Github
append-streamAppend another chunk of content to a message previously opened with start-stream.Action🔗 Github
stop-streamFinalize a streamed message, optionally attaching closing blocks/metadata and setting its session status.Action🔗 Github
unarchive-channelRestore an archived conversation so members can use it againAction🔗 Github
unpin-messageRemove a pinned message from a channelAction🔗 Github
update-messageEdit an existing message in a Slack channelAction🔗 Github
conversationsSync Slack conversations including channel membersSync🔗 Github

On this page