Slack Audit Logs
Slack audit logs provide comprehensive visibility into user activities and administrative actions within your Slack workspace. These logs capture events such as user logins, message deletions, channel modifications, app installations, and permission changes. They help administrators monitor workspace activity, ensure compliance, and investigate security incidents.

RunReveal will backfill your audit logs since March 2018 (the earliest available from Slack). Once the processor has caught up, RunReveal imports new audit logs roughly every 60 seconds.
Slack audit logs require a Pro plan subscription in RunReveal and any Enterprise-level plan in Slack (e.g. Enterprise Select, Enterprise Grid). Make sure your Slack workspace meets these requirements before proceeding with setup.
Prerequisites
Before setting up Slack audit logs, ensure you have:
- A RunReveal Pro plan subscription
- A Slack Enterprise workspace subscription (any Enterprise plan, e.g. Enterprise Select or Enterprise Grid)
- Administrative access to your Slack workspace, including the ability to install apps at the organization level
- Permission to create and configure Slack apps
Access
RunReveal authenticates using a Slack user token obtained through OAuth. Configure your Slack app with the following scopes:
| Scope | Type | Purpose |
|---|---|---|
auditlogs:read | User Token Scope | Read audit events from your Enterprise organization |
users:read | Bot Token Scope | (Enterprise Grid only) Required when the app is installed as an org-level app |
The auditlogs:read token must be granted by an Owner of the Enterprise organization. Audit logs are org-wide rather than per-workspace, so the OAuth flow must install the app on the organization, not just a single workspace.
Infrastructure
RunReveal connects to Slack using the domain that matches your organization. For commercial Slack, leave Use GovSlack unchecked. For GovSlack, enable the Use GovSlack checkbox on the source page so RunReveal uses the slack-gov.com endpoints for OAuth and audit log polling.
| Environment | Slack domain | OAuth authorize | Audit logs API |
|---|---|---|---|
| Commercial (default) | slack.com | https://slack.com/oauth/v2/authorize | https://api.slack.com/audit/v1/logs |
| GovSlack | slack-gov.com | https://slack-gov.com/oauth/v2/authorize | https://api.slack-gov.com/audit/v1/logs |
GovSlack runs on a separate, isolated domain from commercial Slack. Create your Slack app on api.slack-gov.com/apps for GovSlack tenants — apps and credentials from commercial Slack cannot be used across environments.
Setup
Step 1: Create a Slack App
- Navigate to the Slack apps dashboard for your environment:
- Commercial: api.slack.com/apps
- GovSlack: api.slack-gov.com/apps
- Sign in with your Slack workspace credentials.
- Click "Create New App" and select "From scratch".
- Give your app a descriptive name (e.g., "RunReveal Audit Logs") and select the workspace you wish to use for audit log collection.
- Click "Create App" to proceed.
Step 2: Configure OAuth Scopes
- In your newly created Slack app, navigate to "OAuth & Permissions" in the left sidebar.
- Scroll down to "Scopes" section and expand "User Token Scopes".
- Click "Add an OAuth Scope" and select "auditlogs:read" from the list.
- Click "Save Changes" to apply the configuration.
Step 3: Get App Credentials
- Navigate to "Basic Information" in the left sidebar of your Slack app.
- Copy the "Client ID" and "Client Secret" values - you'll need these for the RunReveal configuration.
Keep your Client Secret secure and never share it publicly. This credential provides access to your Slack audit logs.
Step 4: Start RunReveal Source Creation
- Navigate to the RunReveal UI and go to the source creation page.
- Select "Slack" as your source type.
- Provide a descriptive name for your Slack source.
- Enter the Client ID and Client Secret from your Slack app.
- If your organization uses GovSlack, check Use GovSlack so RunReveal connects to
slack-gov.cominstead ofslack.com. - RunReveal will provide you with a redirect URL — copy this URL.

Step 5: Configure OAuth Redirect URL
- Return to your Slack app's "OAuth & Permissions" page.
- Under "Redirect URLs", click "Add New Redirect URL" and paste the redirect URL provided by RunReveal.
- Click "Save Changes".
Step 6: Complete OAuth Flow
- Return to the RunReveal source creation page and continue with the setup.
- Click "Connect Source" to finish the setup.
- This should redirect you to Slack to allow permission for the integration. Click "Allow" and it should redirect back to RunReveal.
Enterprise Grid: Org-Level App Steps
If you're using Slack Enterprise Grid (or another Enterprise plan with org-level apps), complete these additional steps so the app can read audit logs across your organization:
Add Bot Scope
- In your Slack app, navigate to "OAuth & Permissions" in the left sidebar.
- Scroll down to "Scopes" section and expand "Bot Token Scopes".
- Click "Add an OAuth Scope" and select "users:read" from the list.
- Click "Save Changes" to apply the configuration.
Make the App an Org-Level App
- In your Slack app, navigate to "Org Level Apps" in the left sidebar under the "Features" section.
- Click the "Enable Org-Readiness" button.
- This makes your app an organization-level app, allowing it to function properly across your Enterprise Grid organization.

Verify It's Working
Once added, the source logs should begin flowing within a minute.
You can validate we are receiving your logs by running the following SQL query:
Schema
The following columns are exposed for this source. RunReveal applies schema normalization across all sources, ensuring uniform field names and data types for cross-source queries and reusable detection logic.
Table: slack_logs (59 columns)
slack_logs (59 columns)| Column | Type |
|---|---|
workspaceID | String |
sourceID | String |
sourceType | String |
sourceTTL | UInt32 |
receivedAt | DateTime |
id | String |
eventTime | DateTime |
eventName | String |
eventID | String |
srcIP | String |
srcASCountryCode | String |
srcASNumber | UInt32 |
srcASOrganization | String |
srcCity | String |
srcConnectionType | String |
srcISP | String |
srcLatitude | Float64 |
srcLongitude | Float64 |
srcUserType | String |
dstIP | String |
dstASCountryCode | String |
dstASNumber | UInt32 |
dstASOrganization | String |
dstCity | String |
dstConnectionType | String |
dstISP | String |
dstLatitude | Float64 |
dstLongitude | Float64 |
dstUserType | String |
actor | Map(String, String) |
| Column | Type |
|---|---|
tags | Map(String, String) |
resources | Array(String) |
serviceName | String |
enrichments | Array(Tuple(data Map(String, String), name String, provider String, type String, value String)) |
readOnly | Bool |
rawLog | String |
slackId | String |
dateCreate | DateTime |
action | String |
actorType | String |
actorUserId | String |
actorUserName | String |
actorUserEmail | String |
entityType | String |
entityUserId | String |
entityUserName | String |
entityUserEmail | String |
entityFileId | String |
entityFileName | String |
entityFileTitle | String |
entityFileType | String |
locationType | String |
locationId | String |
locationName | String |
locationDomain | String |
userAgent | String |
ipAddress | String |
sessionId | String |
details | String |
Troubleshooting
If you encounter issues with the setup:
- Ensure your Slack workspace has an Enterprise plan (e.g. Enterprise Select or Enterprise Grid)
- Verify the OAuth redirect URL is correctly configured in both Slack and RunReveal
- Check that the
auditlogs:readscope is properly added to your Slack app - Confirm the token was granted by an Owner of the Enterprise organization (org-wide install, not a single workspace)
- For GovSlack, confirm Use GovSlack is checked and your app was created on api.slack-gov.com/apps — commercial Slack apps and credentials do not work with GovSlack
- Confirm your RunReveal account has a Pro plan subscription
Helpful Links
- Using the Audit Logs API — Slack's overview of audit log access requirements
- Audit Logs API methods & actions — Reference for the endpoint RunReveal polls and the events it returns
- Slack API apps dashboard (commercial) — Where you create and configure a commercial Slack app
- GovSlack overview — How GovSlack differs from commercial Slack and which endpoints to use
- GovSlack API apps dashboard — Where you create and configure a GovSlack app
For additional help, contact RunReveal support.