Hi all,
I'm configuring a Slack Event Listener in integrator.io to receive Events API notifications, and I can't get past Slack's URL verification handshake. I'd like to know whether this is a known issue, a known limitation of Slack-native listeners, or whether I've missed a configuration step.
Symptom: Slack consistently returns challenge_failed during URL verification.
What Slack sends (the listener receives it fine — I can see the full body, including challenge, in the debug logs):
json
{
"token": "...",
"challenge": "ZokfTcncoHABNTq1PB71...",
"type": "url_verification"
}
What the listener returns — HTTP 200, but with an empty body and empty headers, so Slack never sees the echoed challenge:
json
{
"statusCode": 200
}
The part that looks like the root cause: every time I open the listener, set values under "Configure response for challenge requests", Save & Close, and then re-open it, the configuration is gone — override response media type reverts, response headers disappear, and the response body is blank again. The challenge-response settings don't appear to persist across a save.
Already tried:
- Response body set to
{{record.challenge}}, and as static values - Plain-text response media type /
Content-Type: text/plain - Detection rules on
record.challenge is not empty,record.type = url_verification, and request headers - Re-validated the Slack Signing Secret
- Confirmed Slack is hitting the correct listener URL and that the listener receives the verification request
Working hypothesis: the challenge-response configuration is either not being saved or being ignored at runtime, so the listener returns 200 with an empty body instead of echoing the challenge.
My questions:
- Is this a known issue or limitation with Slack-native Event Listeners?
- Are Slack-native listeners supposed to handle the
url_verificationhandshake automatically, with no manual challenge-response config? - Is "Configure response for challenge requests" actually supported/persisted for Slack-native listeners, or is it intended only for generic HTTP listeners?
- Has anyone completed Slack URL verification with this listener recently — and if so, what does a working config look like?
Happy to share listener exports, screenshots of the blank challenge-response config after re-opening, and debug logs. Any acknowledgment of whether this is known, or a working reference config, would be appreciated.
Thanks!


