Slack
Receive Slack Events API, slash commands, and interactive payloads
Wexio verifies Slack signatures natively. Paste the app's Signing Secret and Wexio handles the X-Slack-Signature and X-Slack-Request-Timestamp headers.
Provider docs: Setting up webhooks in Slack
Setup
1. Connect It in Wexio
Go to New connection → Inbound and click the Slack chip under Dedicated providers, or set Authentication mode to Slack manually. Copy the Wexio endpoint URL.
2. Set Up the Provider
Go to api.slack.com/apps, select your app and paste the Wexio URL into any of these.
- Event Subscriptions → Request URL for the Events API
- Slash Commands → Request URL for
/commands - Interactivity & Shortcuts → Request URL for button clicks and modal submissions
Slack verifies the URL with a handshake. Wexio handles the url_verification challenge automatically.
Copy the Signing Secret from Basic Information → App Credentials and paste it into the Wexio Signing secret field. Use the Signing Secret, not an OAuth token.
3. Resolve Contacts
Slack events are team-internal, so you normally don't map them to a messaging contact. To notify the team, add the chat ID of a shared team contact on Telegram or WhatsApp to the body through a proxy, and set Contact identifier type to Chat ID.
To map Slack users to Wexio contacts, for example to escalate from Slack to WhatsApp, use this mapping.
| Identifier type | JSON path |
|---|---|
$.event.user_profile.email (after enriching via users.profile.get) |
4. Capture the Schema and Bind a Flow
Capture the schema, then attach a Webhook Received trigger. Branch on {{webhook.event.type}} for the event subtype.
Timestamp Tolerance
Slack rejects signatures older than ±5 minutes, and Wexio mirrors that tolerance. Old replays fail auth and land in history as UNAUTHORIZED: Slack signature timestamp outside ±5 min tolerance.
Troubleshooting
| Symptom | Fix |
|---|---|
| URL verification fails | Wexio returns the url_verification challenge automatically. If it still fails, check Wexio history for a 401 |
UNAUTHORIZED: Slack signature mismatch | You copied the wrong secret (OAuth token instead of Signing Secret). Re-copy it from Basic Information |
| Slash command does not respond visibly in Slack | Slack expects a response within 3 seconds. Wexio returns 200 immediately and runs the flow async. Use response_url from the payload inside the flow to post delayed replies to Slack |
Related
- Inbound Webhooks - auth modes, contact resolution and response codes
- Webhook Received - the trigger that starts your flow
- Webhook History - check why a request failed