After this article
You will be able to connect Slack to Lumos to sync and provision users, user groups, teams, workspace roles, and channels. You can create, activate, deactivate, and delete Slack user accounts and assign or remove their entitlements, or connect read-only for visibility.Capabilities
Provisioning behavior:
- Create: Lumos creates the user through SCIM (
POST /Users) with a username, email, and optional first and last name. Before creating, Lumos searches SCIM by username and then by email. If a match exists, Lumos links that account instead of creating a duplicate, and a conflict response from Slack is handled the same way. New users are created active. - Activate or deactivate: Lumos sets the SCIM
activeflag. If the account is already in the requested state, the action is a safe no-op. - Delete: Lumos deletes the user through SCIM. Deleting a user who is already gone is a safe no-op.
- User groups: Lumos reads the group’s current members and writes the updated list via
usergroups.users.update. Adding an existing member or removing a non-member is a safe no-op. Your workspace settings must allow the connecting user to manage user groups. - Teams (Enterprise Grid): Lumos adds or removes the user with
admin.users.assignandadmin.users.remove. Already-assigned and already-removed states are safe no-ops. - Roles (Enterprise Grid): Workspace roles use
admin.users.setOwner,admin.users.setAdmin, andadmin.users.setRegular. Removing the Owner or Admin role downgrades the user to Member. The Member role itself can’t be unassigned, use Deactivate or Delete instead. Grid system roles useadmin.roles.addAssignmentsandadmin.roles.removeAssignments, and some Grid roles aren’t assignable through the API. - Channels: Lumos invites or removes the user with
conversations.inviteandconversations.kick. Already-in-channel and not-in-channel states are safe no-ops. Users can’t be removed from the #general channel. - Create Channel and Delete Channel: custom actions that create or delete channels via
admin.conversations.createandadmin.conversations.delete. Both require Enterprise Grid and channel provisioning enabled.
Unassign Entitlement (remove roles, groups, teams, or channel access) is also supported in read + write mode. On non-Enterprise-Grid workspaces, role and team provisioning is unavailable, but account and group actions still work. Guest users have limited data.
Required plan and roles
- Lumos plan: no minimum plan needed to connect.
- Slack plan: creating, deleting, activating, and deactivating Slack user accounts uses Slack’s SCIM API, which requires Business+ or Enterprise Grid. Workspace role, organization role, and team membership provisioning uses Slack’s Admin API, which requires Enterprise Grid. User group membership changes work on non-Grid workspaces. Channel access provisioning requires Business+ or above and channel provisioning enabled for your Lumos tenant. Detailed audit logs require Enterprise Grid.
- Slack role: your Slack user must be a Workspace Admin at the Workspace level and Org Primary Admin/Org Owner at the Organization level.
- Bot Token scopes (required to initialize the bot user, needed for the OAuth-flow provisioning):
channels:manage,channels:read,channels:write.invites,groups:read,groups:write,groups:write.invites,usergroups:read,usergroups:write,users:read,users:read.email - User Token scopes (required for full functionality):
channels:read,channels:write,channels:write.invites,groups:read,groups:write,groups:write.invites,usergroups:read,usergroups:write,users:read,users:read.email - The
users:*,usergroups.*, andteam:readscopes are required for integration with Slack Workspaces. - The
adminscope is required for SCIM access, andadmin.*scopes are required on Enterprise Grid. Skip these on non-Enterprise workspaces.
User Token scopes
If you don’t require or allow admin scopes for Slack, you can connect with only the read scopes for users (
admin.users:read) and teams (admin.teams:read) to send notifications to those users. You won’t be able to auto-provision or deprovision via Slack with this scope. To use this non-admin scope, contact Lumos Support via Slack or at support@lumos.com.
Instructions
Phase 1: Create a Slack OAuth app- In Slack, go to View Your Apps → Create New App → From scratch, enter an App Name, select your workspace, and click Create App.
- Copy the app’s Client ID and Client Secret.
- Under OAuth & Permissions → Scopes, add the Bot Token and User Token scopes listed in Required plan and roles above (read versions only for read-only mode).
- Under OAuth & Permissions → Redirect URLs, add
https://app.lumosidentity.com/integrations/ics_oauth2_callback.
- Find the Slack Provisioning card in your Lumos integrations (Reconnect or add new).
- Paste the Client ID and Client Secret from your Slack app.
- Enterprise Grid only: mark the Enterprise Grid checkbox, then approve the Lumos app for your org and add it to the workspaces where you want to use it.
- Click Connect.