Hello, can I check if any other teams are facing a...
# announcements
f
Hello, can I check if any other teams are facing any issues integrating GrowthBook to Slack on their self-hosted version? I followed the instructions and I am able to curl the incoming webhook. When I use the cloud-hosted version, I am able to send event notifications. But I am unable to do so on my self-hosted version.
Hello, some updates on this. We have an internet proxy sitting in between our apps and external apps. From our logs, it does not look like GrowthBook is hitting the proxy. Is there any config that needs to be done on GrowthBook’s side?
f
What did you set as the sdk endpoint?
f
Are you referring to the client key sdk in growthbook?
f
well, growthbook will make a request (by default) to get the feature payload
you want that to hit the proxy?
f
Hmm sorry but how does this interact with the Slack integration? The issue we are facing is that when we trigger events, they are not sent to Slack
f
oooh
just slack
f
Yes yes. But our webhook works, and it works on the cloud-hosted version.
f
@better-magician-65629 can help you when she is back
👍🏽 1
f
Thank you!
b
hi andy, without seeing your slack integration configuration, i suspect one of the following: • network configuration issue with regards to the proxy setup • too many filters added, resulting in no events matching the criteria to be sent i am more leaning towards suspect that you may have a configuration issue with your networking proxy setup since i'm guessing you're using the same configuration that you tested on cloud. when creating a slack integration, you'd provide all the slack data (slack app ID, slack webhook URL, and webhook signing secret). when a relevant event occurs (e.g. you toggle a feature) the growthbook app will send a request to the URL. if you've done anything to limit the networking of the self-hosted growthbook instance, that could potentially be a problem with this functionality as well as other functionality. for example, if your instance of growthbook isn't allowed to call out to the internet, that would be a problem. if you need to add URL's specifically to an allowlist, you can try adding the slack webhook URL to the allowed list of URL's it's allowed to send to. do you have any environment, project, or event filters? if so, try removing them all in case the issue is there. the deployment for self-hosted is the same setup we use for the production cloud instance, and it works there, as you've tried out. so I suspect this might be a networking configuration issue. in the attached screenshot, i've created a slack integration with no filters. i want to rule out the possibility that maybe an unintended filter was added, can you try removing all filters?
f
Hello Tina, thanks for the clarification. I think it is because we are hosting GrowthBook in a private network, and the only way to reach the Internet is via a proxy server. This is also currently how we are integrating GA4 with GrowthBook. May I know how we might be able to do the same for the Slack integration?
b
it sounds like you may need to allow outgoing connections to slack from your network. i'm not sure about your configuration, but i'm guessing there's somewhere you can configure outgoing firewall rules and add URL's to an allowlist. if not, perhaps instead of the slack URL, you can have a route that's accessible within your internal network to an endpoint that is allowed to call out to the rest of the world, and use that URL instead of the slack webhooks URL and forward the post payload data to slack. i don't have expertise in configuring private networks but my thoughts are that you're blocking the growthbook app from making the necessary network connections, so you'll need to find a workaround for it based on your configuration.
f
Hmm our proxy is allowed to forward traffic to any URL including slack’s webhook URL. I think it could be because the current
cancellableFetch
method here doesn’t include proxy support. In contrast, our self-hosted app is still able to connect to GA4 as the googleapis HTTP client has proxy support, as seen here.
b
thanks for digging into this. it looks like there are ways we can add support for proxies with fetch. i've added a ticket for us to address this: https://github.com/growthbook/growthbook/issues/1187 in the meantime, as a workaround, are you able to create an endpoint that's accessible within your network that forwards to slack? and instead of the slack webhook URL in the configuration, use that link? maybe something like
<http://my-internal-app.acme.com?url=|my-internal-app.acme.com?url=><url-encoded-slack-webhook-url>
and then your endpoint (that has proxy support) forwards the post payload and relevant headers to slack.
f
Yup I’ll see if we can use the workaround in the meantime. Thank you Tina! 😄