Can a primary owner of a Slack work space force join a private channel? - slack

As the primary owner of a Slack work space, can I force join a private channel? Can I even see the list of private channels I am not a member of?
I want to create a new channel called "unity" in my work space. Apparently, it is taken. No one else knows about that channel thereby I am guessing an employee no longer working here has created it as a private channel making it inaccessible. If so, is there any way to retake control of that channel?

No. You can not get access to or "take control" of a private channel, which you are not a member of. Does not matter if you are admin or owner.

According to Slack,
"Workspace Owners and Admins can delete any channel they've joined, except for the #general channel."
Unfortunately, the owner explicitly needs to be a member of the channel in order to delete it, and owners of Slack workspaces can only see the private channels that they are already a member of.
However, if you have an application integrated with your Slack channel using a workspace token, that app is able to access each of the private channels. Note that this is a legacy feature in Slack, and you can no longer create workspace tokens, though existing workspace tokens will still function.
If you do not have any existing workspace tokens, another option would be to run an export. As of May 2019, workspace owners can now request an export of all channel content and private messages, as needed and permitted by law.
Note that you also need to be on the Slack Plus plan (or higher) to export private channels using the automated tool; the Free and Standard plan can only export from public channels without explicit approval from Slack themselves.
*Workspace Owners on the Free and Standard plans must contact Slack and apply to export content from private channels and one to one and group direct messages. We will reject applications, unless Workspace Owners show in each instance (a) valid legal process, or (b) consent of members, or (c) a requirement or right under applicable laws in order to export data.
Outside of the above options, your only option is to contact Slack themselves.

Related

How to add another Team as a member in a new Team's Channel - Power Automate

I am trying to create a flow in Power Automate that creates a Teams channel, then adds members to the newly created team. In Microsoft Teams, you are able to add a Channel as a "member", so that anyone who had permissions in the other channel would have the same permissions in the new channel (as I understand it).
I am trying to do the same thing in Power Automate, but I am having troubles figuring out how to add a Channel as a member, rather than just specific people.
The reason for this, is instead of deleting people 1 by 1, I want to be able to use a template Channel, and if I remove one person from the template, they lose access to all other channels.
This is my workflow so far:
I am using the input from ChannelID directly from Teams. (Clicking the "...", Get Link to Team, and copying code after URL).
I am getting an error stating that it does not exist. How can I go about fixing this?
Any and all help is greatly appreciated!

Prevent others from changing our Custom Integrations Incoming WebHooks configuration

We have created a Custom Integrations Incoming WebHooks configuration so that we can post notification from our CI pipeline into our slack channel. This works great so far, but today a colleague accidentally broke it by changing the target channel. Fortunately, there was a notification about this in our channel ("removed an integration from this channel: incoming-webhook"), so we were able to revert this quickly. But things would have been worse if the colleague only had regenerated the webhook URL... Naturally, we'd like to avoid this.
So, I am wondering if it is possible to restrict write access to our Incoming WebHooks configuration?
There seems to be a restriction if the target channel is private ‒ but I'd prefer that we can leave our channel public.
Incoming Webhooks count as Apps and the permission to modify them can be restricted to members with certain roles in the Slack workspace settings.
Most Slack admins will restrict access to managing apps to owners only and give that critical role to a few trusted members only.
If your incoming webhooks are Internal integrations and not Slack apps, then restricting them can be a problem. A solution would be to embed the incoming webhooks in a regular Slack app, which can be restricted.
Today I got a response from Slack support, and they say that they don't have a fine-grained permission model for controlling access to specific configurations. The only options are "everyone can change the configuration" or "only one person can edit the configuration".
The "only one" option is enabled by changing the "Post to Channel" property to a private channel (or direct message). Note that this doesn't mean that the configuration is restricted to the specified channel. Custom Integrations Incoming WebHooks allow the sender to override the channel, so the configuration may still be used to post to public channels.

How can I deactivate an slack user via slash-commands?

I want to create a bot that deactivates users under some criteria. I can not find any slash command that deactivates user accounts for free slack groups. I only see the option to kick from channel.
For paid versions the following can be used:
https://github.com/ErikKalkoken/slackApiDoc/blob/master/users.admin.setInactive.md
You can't do that. Slack exposes a SCIM API for user management, but it is not available for free teams.
To my knowledge there is no API methods to "kick" users automatically that works for free slack teams, so you will have to manually deactivate users you want to kick.
As a workaround I have a small bot running on my slack teams that report daily in a special admin channel which users need to be manually deactivated. That works of course only if you have a hard criteria that you can use to can test if a user is still eligible to be member of your Slack team.

Read-only Slack channel (except threads)

I want to have channel where users can ONLY send messages in threads. Is it possible? I tried with Stacktodo, but I did not found a way to do it.
Yes, Slack allows to restrict write access to channels, but only for the #general channel. There you can restrict access to admins only or even owners only.
If you want to restrict write access to other channels or use a more granular access list you need to use a Slack app like Stacktodo (with their so called Block Bot) or build your own Slack bot that provides that additional functionality.
Please contact the support team from Stacktodo if you can not get it to work.

How do I correlate user between channels?

From what I see, Bot Framework is providing an abstraction over users in different channels by providing a ChannelAccount class that has ChannelId/Address pair to identify user via its account and Id property, which is... okay, here's the question.
I suppose that the idea behind Id is to provide a unique and persistent identifier that can be used to cross-correlate users between account (i.e., I can say that Slack user #alpha is also email user alpha#company.con). This idea is supported by the fact that ChannelAccount for my bot always has same Id regardless of the channel (and Address is different between channels, obviously).
If this is right, and I hope it is, is there any way to provide BotConnector with the correlation information? I.e., I want BotConnector to give me ChannelId/Address, and I'd give back user Id which I'd the get back in incoming message.
The purpose of this is quite simple: I want the code inside my bot to use the Id as already correlated identifier so that I can log it, build logic from it and so on.
BotFramework does not yet support linking of accounts. In the interim, take a look at this post for one way you might implement a solution:
Why isn't BotUserData persisting and retrievable in my Bot Framework bot?

Resources