Set up Slack notifications using the discourse-chat-integration plugin

(RK) #25

Got it. I thought there was something wrong with my setup. I’m using the latest version of Discourse (v2.0.0.beta5+149).


(David Taylor) #26

I’ve just created a PR to fix slash commands in private channels, and add support for transcripts in private channels and direct messages:

This will require adding two new ‘scopes’ to the slack app, which I’ve added to the #howto above:

  • groups:history
  • im:history

(RK) #27

Awesome! Looking forward to testing it :slight_smile: We actually use wisemonk on our Slack as well but we never could trigger it no matter how busy our channels get.


(RK) #28

Just noticed that there’s a new version of the chat integration plugin but this fix isn’t included. Will this be merged anytime soon?


(Jeremy M) #29

From what I can tell on the settings, it doesn’t look like there’s a way to send a notifications as a slack PM… is that possible? Or does that need to be developed/implemented?


(David Taylor) #30

You should be able to send notifications as a PM by specifying the channel name as something like @jerdog.

Slash commands do not currently work within private channels or private messages, but will do once this PR is merged by the team:


(Heroic Eric) #31

Is there any way to configure this so that the messages posted in slack are posted by a Bot (other than slackbot)?


(David Taylor) #32

Messages are posted by a bot. You can configure the name and picture of the bot in your slack app settings. Notifications look something like this:

1 Like

(Heroic Eric) #33

Hmm, maybe this is just some kind of caching issue with Slack?

Our slack community is called “Envoy”. I can see the correct name when I click on “Envoy” there but ideally the message comes in appearing from “Discourse”.

I will wait a bit and see if it resolves itself.

1 Like


Hi all,

I’ve tried to add slack integration on my Discourse self-hosted app but I’m encountering an error when a new topic is created on a category … When I run a test on my channel rule, I get a “500 error” …

Here is the log I’ve received :
URI::InvalidURIError (can not set host with registry or opaque) /usr/local/lib/ruby/2.4.0/uri/generic.rb:592:in 'check_host'

And here is an extract of the error backtrace :

/usr/local/lib/ruby/2.4.0/uri/generic.rb:592:in 'check_host'
/usr/local/lib/ruby/2.4.0/uri/generic.rb:636:in 'host='
/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message_formatter.rb:44:in 'absolute_url'
/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_message_formatter.rb:21:in 'start_element'
/var/www/discourse/vendor/bundle/ruby/2.4.0/gems/nokogiri-1.8.2/lib/nokogiri/html/sax/parser.rb:36:in 'parse_with' [...]

Has anyone ever had this error?


(Nick Shearer) #35

when i used the slash command from a private channel i.e
#my-special-channel -> /discourse watch site-feedback

the entry in the discourse plugins settings had the channel #privategroup


works fine if i go and edit the channel name, but this isn’t ideal for users who aren’t also discourse admins :-[

1 Like

(Sakshi Gupta) #36

A few issues i have had -

  • This gets posted in a channel with name as sakshi. Have I missed some configuration here ?
  • slash commands aren’t working for me. The redirect urls that you have told above

/chat-integration/slack/interactive and command do not seem to be valid :confused:

 curl -vL localhost/chat-integration/slack/command > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying ::1...
* connect to ::1 port 80 failed: Connection refused
*   Trying
* Connected to localhost ( port 80 (#0)
> GET /chat-integration/slack/command HTTP/1.1
> Host: localhost
> User-Agent: curl/7.47.0
> Accept: */*
< HTTP/1.1 404 Not Found
< Server: nginx
< Date: Thu, 23 Aug 2018 16:57:58 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Request-Id: cf210d9f-4e18-465e-bec5-77f656095a3f
< X-Runtime: 0.027693
{ [4703 bytes data]
100  4695    0  4695    0     0   124k      0 --:--:-- --:--:-- --:--:--  127k
* Connection #0 to host localhost left intact

(Sakshi Gupta) #37

Sorry, the issue was with our server, it is accessible only through our vpn. As slack could not contact the server it raised 503_service_error.

1 Like

(Pooja) #38

when i use slash command on slack channel /discourse status i got error ‘Peer certificate cannot be authenticated with the given CA certificate’ . Kindle provide suggestions asap.


(David Taylor) #39

It sounds like Slack doesn’t like the SSL certificate of your Discourse server. Can you share your Discourse URL here?




I advertise Discourse using your plugin on our company Slack. :+1:

However I noticed, that unlisted topics are also mentioned by the bot. Could you tweak it to not blurt those without explicit command?

And the same thoughts about not public categories.


1 Like

(David Taylor) #41

Having an option to prevent posting of unlisted topics sounds like a good idea.

For private categories, you can already control that. See the “Security/Permissions” section of this topic: Chatroom Integration Plugin (discourse-chat-integration)



Thanks for the link.

As I understand, all notifications will be fired using one discourse user. For me that’s a bit rigid. Ideally I need different users for different channels. Our discourse will serve company wide purposes, andalso support projects, which are kind of private.

But, as a workaround / simple solution I can live with a setup, where there are implicit rules like: mute all categories, which are not public. That way if I create a new category for a new project, posts from that new category won’t appear in the company wide channel.

1 Like

(Pooja) #43

Yes, the issue was related to the SSL certificate. It has been solved. Thanks for the immediate help :slight_smile:
Another big thing is, I am embedding the discourse subdomain into our react product. Whenever a user clicks on slack notification of topic/post creation , our intended goal is to redirect user to our product’s domain, instead of discourse subdomain. I am not able to set this redirection. Kindly suggest any way.


(Ingo Claro) #44

I created the slack app as per the instructions. The issue I’m having is that other users want to add notifications to private channels I don’t have access to.
Is there a way to notify private slack channels that the creator of the slack app doesn’t have access too?
Or how can other users grant permissions to the app?

Also if I understand correctly, those slack app tokens that are entered into the Discourse’s plugin configuration allow access to my private channels, correct? This might be undesirable since any Discourse admin can see those tokens in the settings section. Would be good to warn about that, or remove from the instructions the groups:history and im:history grants.