# User Groups Lists all user groups within a Slack workspace for role-based context. **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 `usergroups: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/usergroups.list](https://api.slack.com/methods/usergroups.list) - [https://api.slack.com/methods](https://api.slack.com/methods) ## Sample Record ```json { "id": "Sd30d8802-929c-d7b4-738d-4e0aa5a47f01", "team_id": "T18995190-f1a9-687e-02af-0bd1a5fa8505", "is_usergroup": true, "name": "Product Team", "description": "eu do ad est incididunt commodo id culpa ut ut", "handle": "product", "is_external": false, "date_create": 1754956013, "date_update": 1754956013, "date_delete": 0, "auto_type": "admin", "created_by": "USLACKBOT92b62f4a-7275-4724-e12f-b98d738dbe8c", "updated_by": "Uab69acad-7f7e-f7c1-972e-5f48f0a1a4a7", "deleted_by": null, "prefs": { "channels": [], "groups": [] }, "user_count": "36" } ```