# 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
}
```