Skip to main content

πŸš€ Quickstart

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

Create the integration

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

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.
3

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 secret key, integration ID, and connection ID:
curl "https://api.nango.dev/proxy/conversations.list?limit=10" \
  -H "Authorization: Bearer <NANGO-SECRET-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 Nango to inspect requests.
4

Implement Nango in your app

Follow our quickstart to integrate Nango in your app.To obtain your own production credentials, follow the setup guide linked below.

πŸ“š Slack Integration Guides

Nango maintained guides for common use cases. Official docs: Slack API docs

🧩 Pre-built syncs & actions for Slack

Enable them in your dashboard. Extend and customize to fit your needs.

Actions

Function nameDescriptionTypeSource code
get-dnd-infoGets Do Not Disturb settings for a user.ActionπŸ”— Github
get-file-infoRetrieves details about a specific file.ActionπŸ”— Github
get-reactionsGets all reactions for a single message or file.ActionπŸ”— Github
get-team-infoRetrieves information about the workspace.ActionπŸ”— Github
get-upload-urlGets a URL for uploading files to Slack.ActionπŸ”— Github
list-custom-emojiLists all custom emoji for the workspace.ActionπŸ”— Github
list-pinsLists all items pinned to a channel.ActionπŸ”— Github
list-user-groupsLists all user groups in the workspace.ActionπŸ”— Github
list-user-reactionsLists all items with reactions made by the user.ActionπŸ”— Github
pin-messagePins a message to a channel.ActionπŸ”— Github
unpin-messageRemoves a pinned item from a channel.ActionπŸ”— Github

Channels

Function nameDescriptionTypeSource code
archive-channelArchives a conversation making it read-only.ActionπŸ”— Github
create-channelCreates a new public or private channel.ActionπŸ”— Github
get-channel-infoRetrieves detailed information about a conversation.ActionπŸ”— Github
get-channel-membersLists members of a conversation with pagination.ActionπŸ”— Github
get-conversation-historyFetches message history from a channel or conversation.ActionπŸ”— Github
get-thread-repliesRetrieves a thread of messages posted as replies to a message.ActionπŸ”— Github
invite-to-channelInvites 1-1000 users to a public or private channel.ActionπŸ”— Github
join-channelJoins a public or private channel.ActionπŸ”— Github
leave-channelLeaves a public or private channel.ActionπŸ”— Github
list-channelsLists all channel-like conversations in a workspace.ActionπŸ”— Github
mark-as-readMoves the read cursor in a conversation.ActionπŸ”— Github
remove-from-channelRemoves a user from a channel.ActionπŸ”— Github
rename-channelRenames a conversation with proper permissions.ActionπŸ”— Github
set-channel-purposeUpdates a channel’s description or purpose.ActionπŸ”— Github
set-channel-topicUpdates a channel’s topic.ActionπŸ”— Github
unarchive-channelRestores an archived conversation.ActionπŸ”— Github

Conversations

Function nameDescriptionTypeSource code
open-dmOpens a direct message or multi-person direct message.ActionπŸ”— Github

Files

Function nameDescriptionTypeSource code
list-filesLists files in a workspace with optional filtering.ActionπŸ”— Github

Messages

Function nameDescriptionTypeSource code
delete-messageRemoves a message from a conversation.ActionπŸ”— Github
list-scheduled-messagesRetrieves pending scheduled messages from workspace.ActionπŸ”— Github
post-messagePosts a message to a public channel, private channel, or direct message.ActionπŸ”— Github
schedule-messageSchedules a message for future delivery up to 120 days ahead.ActionπŸ”— Github
send-messageAn action that sends a message to a slack channel.ActionπŸ”— Github
update-messageModifies an existing message in a channel.ActionπŸ”— Github
messagesSyncs Slack messages, thread replies and reactions from messages & thread replies for all channels, group dms and dms the bot is a part of. For every channel it will do an initial full sync on first detection of the channel. For subsequent runs it will sync messages, threads & reactions from the last 10 days. Scopes required: channels:read, and at least one of channels:history, groups:history, mpim:history, im:historySyncπŸ”— Github

Reactions

Function nameDescriptionTypeSource code
add-reactionAdds an emoji reaction to a message.ActionπŸ”— Github
remove-reactionRemoves an emoji reaction from a message.ActionπŸ”— Github
Function nameDescriptionTypeSource code
search-filesSearches for files matching a query in Slack workspace (requires user token).ActionπŸ”— Github
search-messagesSearches for messages matching a query in Slack workspace (requires user token).ActionπŸ”— Github

User Groups

Function nameDescriptionTypeSource code
list-user-group-membersLists users within a specific user group.ActionπŸ”— Github

Users

Function nameDescriptionTypeSource code
get-user-infoRetrieves information about a specific user.ActionπŸ”— Github
get-user-presenceGets a user’s current presence status and activity.ActionπŸ”— Github
get-user-profileRetrieves detailed user profile including custom fields.ActionπŸ”— Github
list-usersLists all users in a workspace including active and deactivated.ActionπŸ”— Github
lookup-user-by-emailFinds a user by their registered email address.ActionπŸ”— Github
set-user-presenceSets the calling user’s manual presence status.ActionπŸ”— Github

Others

Function nameDescriptionTypeSource code
channelsSyncs information about all Slack channels. Which channels get synced (public, private, IMs, group DMs) depends on the scopes. If joinPublicChannels is set to true, the bot will automatically join all public channels as well. Scopes: At least one of channels:read, groups:read, mpim:read, im:read. To also join public channels: channels:joinSyncπŸ”— Github
messagesSyncs Slack messages, thread replies and reactions from messages & thread replies for all channels, group dms and dms the bot is a part of. For every channel it will do an initial full sync on first detection of the channel. For subsequent runs it will sync messages, threads & reactions from the last 10 days. Scopes required: channels:read, and at least one of channels:history, groups:history, mpim:history, im:historySyncπŸ”— Github
messagesSyncs Slack messages, thread replies and reactions from messages & thread replies for all channels, group dms and dms the bot is a part of. For every channel it will do an initial full sync on first detection of the channel. For subsequent runs it will sync messages, threads & reactions from the last 10 days. Scopes required: channels:read, and at least one of channels:history, groups:history, mpim:history, im:historySyncπŸ”— Github
usersSyncs information about all Users on the Slack workspaceSyncπŸ”— Github