Slack Integration
Slack Integration
Challenge integrates with Slack to enable identity verification via slash commands and programmatic API calls.
Overview
The Slack integration allows you to:
- Use the
/challengeslash command to request identity verification from any user - Create Slack-based challenges programmatically via webhook API
- Receive notifications when challenges complete
Setup
Option 1: OAuth Installation (Recommended)
- Log in to the Challenge admin console at challenge.veraproof.io
- Navigate to Integrations → Slack Integrations
- Click Add Slack Integration
- Follow the OAuth flow to authorize the Challenge app in your Slack workspace
- Select the Slack workspace and channels where you want to use the integration
- Complete the authorization
The OAuth flow automatically configures all required permissions and URLs.
Option 2: Manual Installation via Manifest
If you prefer to install the Slack app manually using a manifest:
- Log in to the Challenge admin console at challenge.veraproof.io
- Navigate to Integrations → Slack Integrations
- Click Add Slack Integration
- Copy your Tenant ID and Instance ID from the integration setup page
- Go to Slack API Apps and click Create New App → From manifest
- Select your workspace
- Paste the following manifest, replacing
YOUR_TENANT_IDandYOUR_INSTANCE_IDwith your actual values:
{ "display_information": { "name": "Veraproof Challenge", "description": "Identity verification challenges via Slack", "background_color": "#1f2937", "long_description": "Veraproof Challenge enables secure identity verification requests through Slack. Use the /challenge command to request identity verification for team members. Visit https://veraproof.io/challenge for more information." }, "features": { "bot_user": { "display_name": "Veraproof Challenge", "always_online": false }, "slash_commands": [ { "command": "/challenge", "description": "Request an identity verification challenge for a user", "usage_hint": "@username [reason]", "should_escape": false, "url": "https://challenge.veraproof.io/api/v1/slack/events/YOUR_TENANT_ID/YOUR_INSTANCE_ID" } ], "interactivity": { "is_enabled": true, "request_url": "https://challenge.veraproof.io/api/v1/slack/events/YOUR_TENANT_ID/YOUR_INSTANCE_ID" } }, "oauth_config": { "scopes": { "bot": [ "chat:write", "im:write", "users:read", "users:read.email", "commands" ] } }, "settings": { "org_deploy_enabled": false, "socket_mode_enabled": false, "token_rotation_enabled": false }, "_metadata": { "major_version": 2, "minor_version": 1 }}Important: Before using the manifest, you must replace
YOUR_TENANT_IDandYOUR_INSTANCE_IDin both URL fields with your actual tenant and instance IDs from the Challenge admin console. The URLs should look like:
https://challenge.veraproof.io/api/v1/slack/events/550e8400-e29b-41d4-a716-446655440000/660e8400-e29b-41d4-a716-446655440001
- Click Create to create the app
- On the OAuth & Permissions page, click Install to Workspace
- Copy the Bot User OAuth Token (starts with
xoxb-) - Navigate to Basic Information in the left sidebar
- Scroll down to App Credentials section and copy the Signing Secret
- Obtain your Workspace ID (aka Team ID) from your Slack workspace client URL. Open your Slack workspace in a browser (e.g.,
https://your-workspace.slack.com) and copy the workspace ID from the URL (it’s a unique string of characters starting with a T) - Return to the Challenge admin console and paste the Bot User OAuth Token, Signing Secret, and Workspace ID to complete the integration
Required Slack Permissions
The Challenge Slack app requires the following permissions:
chat:write- To send challenge messages to usersim:write- To send direct messages to userscommands- To enable the/challengeslash commandusers:read.email- To look up users by email addressusers:read- To retrieve user profile information
These permissions are automatically requested during the OAuth flow, or configured via the manifest.
Using the Slash Command
Basic Usage
In any Slack channel or direct message, type:
/challenge @usernameThis will create an identity verification challenge for the specified user.
With Context
You can include a context message explaining why the challenge is needed:
/challenge @username Access request for production databaseExample Workflow
- A user requests access to a sensitive system via Slack
- An administrator types
/challenge @username Access request for production database - The target user receives a Slack message with a verification link
- The user clicks the link and completes identity verification via IdP SSO
- The administrator receives a notification when verification completes
Programmatic Slack Challenges
You can also create Slack-based challenges programmatically using the webhook API. This is useful for:
- ITSM system integrations
- Automated security workflows (SOAR playbooks)
- Custom applications
See the Webhook Integration guide for details on creating Slack challenges via API.
Example: Create Slack Challenge via API
curl -X POST https://challenge.veraproof.io/api/v1/challenges \ -H "X-API-Key: your-api-key-here" \ -H "Content-Type: application/json" \ -d '{ "integration_type": "slack", "requester_email": "admin@example.com", "target_user_email": "user@example.com", "context": "Automated security check" }'Note: You can use email addresses instead of Slack user IDs - the system will automatically look up the corresponding Slack user IDs.
Multiple Slack Workspaces
If your organization uses multiple Slack workspaces, you can configure multiple Slack integrations:
- Each integration is associated with a specific Slack workspace
- When creating challenges via API, you can specify which workspace to use with the
slack_instance_idparameter - If not specified, the system will use the first available Slack integration for your tenant
Troubleshooting
Slash Command Not Appearing
- Ensure the Challenge Slack app is installed in your workspace
- Check that the app has been added to the channels where you want to use it
- Verify the app has the required permissions
Users Not Receiving Challenge Messages
- Verify the target user is a member of the Slack workspace
- Check that the Slack integration is properly configured
- Ensure the user’s email address matches their Slack account email
API Errors
- Verify your API key is correct
- Check that at least one Slack integration is configured for your tenant
- Ensure email addresses match Slack account emails
Support
For issues or questions, contact support@veraproof.io or refer to the Webhook Integration guide for API details.