Slack connector setup
Polls the Slack Web API for workspace messages, access logs, and daily inventory snapshots.
What you need first
| Requirement | Details |
|---|---|
| Slack plan | Free, Pro, Business+, or Enterprise Grid |
| Slack app install | Workspace install (Install to Workspace) |
Commercial Slack only. This connector calls slack.com / api.slack.com. GovSlack uses separate endpoints and is not supported yet.
For Enterprise Grid audit logs, use the separate Slack Audit connector with an org-level Slack app.
1. Create a Slack app
- Open the Slack API apps dashboard and sign in.
- Create New App → From scratch.
- Name the app (e.g.
Perpetual Slack) and select the workspace you want to monitor. - Click Create App.
OAuth scopes
In the app, go to OAuth & Permissions → Scopes → User Token Scopes (not Bot Token Scopes) and add the scopes needed for the streams you will enable.
| Stream(s) in Perpetual | User token scopes |
|---|---|
| Messages, Conversations list | channels:read, channels:history |
| Access logs | admin |
| Team info | team:read |
| Users list | users:read, users:read.email |
| Billable info | admin |
Typical bundle:
admin, team:read, users:read, users:read.email, channels:read, channels:history
Screenshot from source not yet imported: "Slack OAuth & Permissions — User Token Scopes list" — a screenshot of the Slack app's OAuth & Permissions page showing the User Token Scopes list populated with the scopes above.
Save changes.
2. Install the Slack app and copy the token
- Install App → Install to Workspace and approve the scopes.
- On OAuth & Permissions, copy the User OAuth Token (
xoxp-…). You will paste this into Perpetual as a Text credential.
3. Perpetual credential
- Log in to Perpetual. Open Settings from the user/org control at the bottom left of the sidebar (click your name → Settings), then go to Credentials → New Credential.
- Choose Text.
- Fill in:
| Field | Value |
|---|---|
| Name | Unique identifier using letters, digits, and underscores only (e.g. slack). |
| Allowed URL patterns | *.slack.com |
| Value | User OAuth Token from step 2 (xoxp-…) |
- Save the credential.
4. Create the Slack connector
- Go to Datasets → Connectors → Create Connector.
- Select Slack.
- Connector name: unique identifier (letters, numbers, underscores; becomes
connector.<name>). - Space: optional scope for the connector resource.
- Configure:
- Slack API access: select the credential from step 3.
- Poll interval (minutes): default
5. Controls incremental streams (messages, access logs). Snapshot streams (team info, users list, etc.) run at most once per 24 hours regardless of interval. - Enable only the streams you scoped for:
| Setting | Default | Slack API | Notes |
|---|---|---|---|
| Messages | On | conversations.list, conversations.history, conversations.replies | Public channels only. No private channels, DMs, or archived channels. |
| Access logs | On | team.accessLogs | Workspace login events |
| Team info | On | team.info | Daily snapshot |
| Users list | On | users.list | Daily paginated roster |
| Conversations list | On | conversations.list | Daily public channel metadata |
| Billable info | On | team.billableInfo | Daily seat counts |
At least one stream must stay enabled.
- Optionally check Deploy to schedule the connector immediately after save.
- Save.
First run backfills roughly the last 24 hours for time-based streams, then advances cursors on subsequent polls.
Operational notes
- Rate limits: Message collection walks every non-archived channel each poll. Large workspaces can exceed Tier 3 limits (50+ calls/minute); polls may span multiple invocations. Archive unused channels in Slack.
- Multiple workspaces: Create a separate Slack app, credential, and connector per workspace you monitor.