Skip to main content

Slack Connector

Prerequisites

  • A Slack workspace
  • Workspace Admin or Owner access to approve app installations

Authentication

Slack uses OAuth 2.0. Landed handles the OAuth flow automatically -- you will be redirected to Slack to authorize access.

Step 1: Connect via OAuth

  1. In Landed, click Add Connector and select Slack
  2. Click Connect to Slack
  3. You will be redirected to Slack's authorization page
  4. Select the workspace you want to connect
  5. Review the permissions and click Allow
  6. You will be redirected back to Landed

Note: Workspace Admin approval may be required if your workspace restricts app installations.

Required Slack Scopes

Landed requests the following bot token scopes:

ScopeStreams
channels:readchannels
channels:historymessages, message_reactions
groups:readPrivate channels in channels
groups:historyPrivate channel messages
users:readusers
users:read.emailUser email addresses
files:readfiles
usergroups:readusergroups, usergroup_members
team:readteam

Configuration in Landed

FieldValue
Channels to sync (optional)Channel names (without #) to limit message sync. Leave empty to sync all channels.

Available Streams

StreamDescriptionSync Mode
channelsPublic and private channels with topic, member countFull refresh
channel_membersChannel membership (user-channel pairs)Full refresh
usersUser records with name, email, bot statusFull refresh
messagesChannel messages with text, user, thread infoIncremental
message_reactionsReactions on messages (emoji, user)Incremental
filesShared files with name, type, sizeIncremental
usergroupsUser group definitions (e.g., @engineering)Full refresh
usergroup_membersUser group membershipFull refresh
teamWorkspace/team informationFull refresh

Common Issues

SymptomCauseFix
not_authedOAuth token expired or revokedDisconnect and reconnect the Slack connector in Landed
missing_scopeBot lacks required scopeReconnect to re-authorize with all required scopes
No private channel dataBot not added to private channelsInvite the Landed bot to private channels: /invite @Landed
Missing messagesMessages from channels not in sync listAdd channel names to the "Channels to sync" configuration, or leave empty to sync all
ratelimitedToo many API callsLanded handles rate limiting automatically

Data Notes

  • Slack timestamps are POSIX epoch integers (e.g., 1609459200)
  • Message ts values are unique identifiers, not just timestamps
  • Thread replies are linked to parent messages via thread_ts
  • The bot must be a member of private channels to read their messages and members

Static IPs for Allowlisting

If your Slack configuration requires IP allowlisting:

  • Production: 34.170.185.84, 35.192.90.94
  • Staging: 34.171.93.34