I have an Admin permissions on Slack. I created a bot that should monitor messages in Slack. On the Scopes, i able thus options on the workspace and Bot:
message.channels (message was posted to a channel)
message.groups (message was posted to a private channel)
message.im (A message was posted in a direct message channel)
message.mpim (message was posted in a multiparty direct message channel)
But, When I tried to monitor the messages, I can monitor only public channels (even if my user is not a member of them) or channels that I member at. That's it.
What should I do if I want to monitor any connection in any channel?
You can't. Its part of Slack's security architecture, that one can only ever see channels that he (or the user that the access token is created from) is a member of (except for public channels of course). That includes admins and owners.
I agree that this may seam a bit unusual, since on many platforms a admin or superuser has access to everything. But that is not how it works with Slack.
If you want to have more control over your private channels you can address this with a process based workaround. Its not pretty, but its works:
With this approach @slackadmin and all apps installed by this user can have full access to all private channel (with the correct scopes). However, an obvious disadvantage is that it creates more work for the admin team (which could partly be compensated by automating with scripts). It also does not work for direct messaging channel or existing private channel.