# User Directory Lists all users within a Slack workspace for identity resolution and user monitoring. **Sync Type: Full Synchronisation** ## Requirements - Before you connect Monad to Slack, you need an API token. - Your API token needs to scoped to `users:read` to run this input connector. - To obtain an API Token, you need to have a slack app. **To create a Slack app:** - On the Your [Apps page](https://api.slack.com/apps), select Create New App. - Select From scratch. - Enter your appropriate App Name. - Select the Workspace where you'll be developing your app. You'll be able to distribute your app to other workspaces later if you choose. - Select Create App. After creating your slack app, you now need a token with appropriate scopes. **Configuring Permissions within your app**: - Within OAuth & Permissions, scroll down to Scopes. - Under Bot/User Token Scopes, select Add an OAuth Scope. - To allow connection of Monad to Slack for this input connector, add the `users:read` scope. - Once that's done, install the slack app to your workspace from the section in the image below, after which you will receieve your slack token to connect to Monad. ## Details Monad uses the `cron` field to schedule the input at specific intervals, returning all users across teams if no team ID is specified, or limiting the scope to a specific team if a team ID is provided. In both cases, a full data sync is performed each time. ## Configuration The following configuration defines the input parameters. Each field's specifications, such as type, requirements, and descriptions, are detailed below. #### Settings | Setting | Type | Required | Description | |---------|------|----------|-------------| | Cron | string | Yes | Cron string for scheduling tasks. Ex: '0 0 * * *' for daily execution at midnight. | | Team ID | string | No | Team ID to filter user results by. | #### Secrets | Secret | Type | Required | Description | |---------|------|----------|-------------| | Token | string | Yes | Authentication Token for the Slack API. This is required to authenticate requests. | ## Custom Schema Handling If the source data doesn't align with any of the [OpenSecurityControlFramework (OSCF) schemas](https://schema.ocsf.io/), you can create a custom transformation using our JQ transform pipeline. For example: ```jq { metadata: { schema_version: "1.0.0", custom_framework: "my_framework" }, controls: .[] } ``` For more information on JQ and how to write your own JQ transformations see the JQ docs [here](https://jqlang.github.io/jq/). If you believe this data source should be included in the standard OSCF schema set, please reach out to our team at [support@monad.com](mailto:support@monad.com). We're always looking to expand our coverage of security control frameworks based on community needs. ## Related Articles - [https://api.slack.com/methods/users.list](https://api.slack.com/methods/users.list) - [https://api.slack.com/methods](https://api.slack.com/methods) ## Sample Record ```json { "id": "W38ac6a51-78b6-6fb7-598a-ef10158aea61", "team_id": "T3082c79b-49ce-e105-70e5-8a8717d34384", "name": "Jane Jones", "deleted": false, "color": "e769e7", "real_name": "Sarah Johnson", "tz": "America/Los_Angeles", "tz_label": "British Summer Time", "tz_offset": 36000, "profile": { "avatar_hash": "5a808e5d-b55b-23a6-ba58-629b73889574", "status_text": "commodo ad nostrud exercitation excepteur", "status_emoji": ":books:", "real_name": "John Miller", "display_name": "Peter Johnson", "real_name_normalized": "Sarah Williams", "display_name_normalized": "Jane Brown", "email": "Alice Johnson@team.example.com", "image_24": "https://secure.gravatar.com/avatar/c56d38e4-3763-0282-c2a1-de907bb7ce4b.jpg", "image_32": "https://secure.gravatar.com/avatar/ba5363db-5afe-6378-e7b6-b86ac7872166.jpg", "image_48": "https://secure.gravatar.com/avatar/bd4b3448-2d6d-7d80-5c97-26383ec25fc3.jpg", "image_72": "https://secure.gravatar.com/avatar/d081f34d-d6ff-dc4f-62e5-f4a6b477e726.jpg", "image_192": "https://secure.gravatar.com/avatar/8fcede36-6f0b-2e95-9765-85d5ecb391a0.jpg", "image_512": "https://secure.gravatar.com/avatar/8c72ad16-9b6f-06e8-3e34-9c1fcafa5e02.jpg", "team": "T3c6e0cb7-8588-bbb9-e8ab-f6544f28edc4" }, "is_admin": false, "is_owner": false, "is_primary_owner": false, "is_restricted": true, "is_ultra_restricted": false, "is_bot": true, "updated": 1754956013, "is_app_user": true, "has_2fa": true } ```