Connecting to Slack

EmpowerID Slack connector supports the following Slack versions:

  • Slack Plus

  • Slack Enterprise Gold

EmpowerID Slack connector integrates with the Slack SCIM API to allow organizations to bring the user and group data in their Slack system to EmpowerID, where it can be managed and synchronized with data in any connected back-end user directories. Once connected, you can manage this data from EmpowerID in the following ways:

  • Account Management

    • Inventory Slack user accounts as EmpowerID accounts

    • Create Slack user accounts — Calls HTTP POST /Users containing new user information. Requires username and email. You may provide an email address in the userName field, but it will be automatically converted to a Slack-appropriate username. 

    • Update Slack user accounts — Calls HTTP PATCH /Users/{id} with new user information in JSON format.

    • Enable Slack user accounts — Calls HTTP PATCH /Users/{id} sending JSON with the active attribute set to True

    • Disable Slack user accounts — Calls HTTP DELETE /Users/{id}, which will set the active attribute of the user to False

    • Reset and change Slack passwords — Calls HTTP PATCH /Users/{id} sending JSON with a password attribute set to the new password

  • Group Management

    • Inventory Slack groups as EmpowerID groups

    • Inventory Slack group memberships as EmpowerID group accounts

    • Add members to Slack groups — Calls HTTP PATCH /Groups/{id} sending JSON with a complex attribute Members a list of members with value attribute set to user id.

    • Remove members from Slack groups — Calls HTTP PATCH /Groups/{id} sending JSON with a complex attribute Members A list of members with value attribute set to user id and operation attribute set to “delete”.

  • User Account Attribute Flow
    Users in Slack are inventoried as accounts in EmpowerID. The below table shows the attribute mappings of Slack user attributes to EmpowerID Person attributes.

Slack Attribute

Slack Table

Corresponding EmpowerID Attribute

Description

Slack Attribute

Slack Table

Corresponding EmpowerID Attribute

Description

Id

User

SystemIdentifier

Unique System Identifier of the user

UserName

User

LogonName

User name of the user

familyName

User

LastName

First name of the user

givenName

User

FirstName

Last name of the user

honorificPrefix

User

PersonalTitle

The honorific prefix(es) of the User

Email

User

PrimaryEmail

Primary Email of the user

Primary Photo URL

User

PhotoURL

 A fully qualified URL to a page representing the User's online profile

StreetAddress

User

StreetAddress

Street of the user

Locality

User

City

City of the user

Region

User

State

State of the user

PostalCode

User

PostalCode

Postal Code of the user

Country

User

Country

Country of the user

phoneNumber

User

Telephone

Phone number of the user

DisplayName

User

DisplayName

Name displayed to other end-users

Active

User

Disabled

Status of the user

Profile URL

User

URLPersonal

A fully qualified URL to a page representing the User's online profile

userType

User

EmployeeType

Organization to user relationship

Title

User

CustomAttribute3

The user’s title

Locale

User

CustomAttribute4

Indicates the User's Date, time format

PreferredLanguage

User

PreferredLanguage

Indicates the User's preferred written or spoken language

Time Zone 

User

CustomAttribute2

The User's time zone

Role

User

Title

Role name of the user

EmployeeNumber

User

PositionID

Employee ID of User

CostCenter

User

CostCenter

Cost Center of the User

Organization

User

Company

Company name of the user

Division

User

Division

Division name of the user

Department

User

Department

Department name of the user

ManagerID

User

ManagerPersonID

Unique System Identifier of the users Manager

 

  • Group Attribute Flow
    Groups in Slack are inventoried as Groups in EmpowerID. The below table shows the attribute mapping of Slack Group attributes to EmpowerID Group attributes.

Slack Attribute

Slack Table

Corresponding EmpowerID Attribute

Description

Slack Attribute

Slack Table

Corresponding EmpowerID Attribute

Description

displayName

Group

Name

Name of the group.

Id

Group

SystemIdentifier

Unique Identifier of the group.

 

  • Inventory
    Slack inventory runs on a scheduled basis to get users, groups and group memberships from Slack system.

Additionally, EmpowerID provides Provisioning policies or Resource Entitlements that allow you to automatically provision Slack accounts for any person within your organization based on your policy requirements.

In order to connect EmpowerID to Slack, the following prerequisites need to be met:

  1. Your organization must have either a Slack Plus or Slack Enterprise Grid account.

  2. You must register EmpowerID as an application in Slack.

  3. You must supply the credentials for the Slack administrator account. EmpowerID uses this account as a connection proxy to manage Slack on your behalf.

Register EmpowerID as an application in Slack

  1. Log in to Slack and navigate to https://api.slack.com/apps.

  2. Click Create New App.

  3. Name the app and select the workspace where you want to create the app.

  4. Click Create App.

     

  5. Expand Add features and functionality and click Permissions.

     

  6. Scroll to Scopes.

  7. Under User Token Scopes, add the admin scope.

  8. Under OAuth Tokens & Redirect URLs, click Install App to Workspace.

  9. In the <App Name> is requesting permission dialog that appears, click Allow.

     

  10. Copy the OAuth Access Token generated for the app.

     

  11. Save the token. The EmpowerID Slack connector uses it to authenticate to Slack on your behalf.

Create a Slack account store in EmpowerID

  1. On the navbar, expand Admin > Applications and Directories and then click Account Stores and Systems.

  2. On the Account Stores page, click Create Account Store.

     

  3. Under System Types, search for Slack.

  4. Click Slack to select the type and then click Submit.

     

  5. On the Slack Settings page that appears, enter the following information:

    • Name — Enter a name for the account store

    • Service Token — Enter the token created for the application.

  6. Click Submit.

     

  7. EmpowerID creates the account store and the associated resource system. The next step is to configure the attribute flow between the account store and EmpowerID.


Now that the attribute flow has been set, the next steps include configuring the account store and enabling EmpowerID to inventory it.

Configure account store settings

  1. On the Account Store and Resource System page, click the Account Store tab and then click the pencil icon to put the account store in edit mode. This opens the edit page for the account store. This page allows you to specify the account proxy used to connect EmpowerID to your Slack account as well as how you want EmpowerID to handle the user information it discovers in Slack during inventory. Settings that can be edited are described in the below table.

  2. Edit the account store as needed and then click Save to save your changes.

Next, enable the Account Inbox permanent workflow to allow the Account Inbox to provision or join the user accounts in Box to EmpowerID Persons as demonstrated below.

EmpowerID recommends using the Account Inbox for provisioning and joining.