Webhooks and APIIntegrations

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 typeJSON path
Email$.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

SymptomFix
URL verification failsWexio returns the url_verification challenge automatically. If it still fails, check Wexio history for a 401
UNAUTHORIZED: Slack signature mismatchYou copied the wrong secret (OAuth token instead of Signing Secret). Re-copy it from Basic Information
Slash command does not respond visibly in SlackSlack 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

Was this page helpful?

On this page