Convert a private channel to public channel and vice versa


Sometimes we want to convert a private channel to a public one when we decide to discuss the topic publicly. And also we may want to cancel it if the decision was mistake.

Slack supports this feature:

Need to transform public channel into private group

This feature is also necessary to import private channels from slack. (Convert private channels to public channels in Slack -> Import the channels into mattermost -> Convert them to private channels)


Thanks @eungjun.yi, added a ticket tracking this as part of Slack import,


Just as important: converting a private group into a public channel.

We often use slack/mattermost as a living, ad hoc wiki and documentation tool.

Oftentimes we work on projects or research with a small private group to keep the conversation focused, but later when the project matures we like to make the channel open for anyone to participate and benefit.

(Maddeningly slack does not allow this.)


I agree

I’m looking for that exact feature too :slight_smile:


for now I just go into the database, and update the channel type to ‘P’
update channels set type = 'P' where name = 'channelname'


Thought about this for a while, we should probably create a ticket for community to add, but in my mind we’d only offer public channel to private group.

Current thinking is the damage that could be caused by turning a private group into a public channel is massive compared to the limited administrative benefit it offers.

Also, per above. a System Admin could do it in the database (and perhaps we add a CLI tool option for this in future).

Having the option in the user interface doesn’t seem worth the risk–it’s really difficult to review content might have been shared in an old or busy private group.


Hey Ian, I also thought about it for a bit, and I agree. We’re going to just do public to private for now, and think about the other one (CLI, etc.) at a later time.


I understand this rationale, and I think that as long as a CLI option is provided to go in the other direction, it seems like an acceptable solution.

In the meantime could someone confirm that the query posted by @hishammalik is a safe, correct and complete way to manually convert a private group into a public channel?

update channels set type = 'P' where name = 'channelname'

All our groups were created as private as we occasionally have guest users which should only be able to access specific channels. Once single-channel guest accounts are implemented we will want to migrate these private channels to being public.


Hey @MarkMaldaba, the query should work, but it would make a channel private.

update channels set type = 'O' where name = 'channelname' would make it public.

Hope that helps!

EDIT: We don’t recommend any changes to the database so I would hesitate to call it “safe”. But it would be possible to do. Manual database modification bypass checks in the code and could make a system unrecoverable. It’s not recommended and if you do make a change, make sure to back up your DB, and verify changes carefully.


As I could see this is still the case: there is no safe/official way to convert a private channel into public. Any plans to correct this? Any concerns why it would be not desirable? May be it should be restricted to admins and owners only to make it safer? Or if taken this approach to make access restriction configurable on team level?


Hey @ivolvo! Good questions. As @it33 mentioned, we feel that there isn’t a good way of reviewing content (messages, files, images, etc.) that’s posted in a public channel, even for admins and owners. As such, converting private channels to public is currently more of a security risk that outweighs the benefits. Inviting new people to private channels, or opening new public channels is what we recommend for the use cases brought up. We may look at having this implemented as a CLI tool in the future!


I would suggest that private channels should be allowed to be made public. I would then add a new channel type: Secret. Secret channels would be more appropriate for discussions involving secret stuff, and these channels would not be allowed to be made private or public. Private channels could serve a useful purpose as they would not clutter up the list of channels, but could become public if their purpose becomes more broad.

Also, technically I can still invite everyone into a private channel so there’s really very little protection there.


+1 for the request to convert public to private channels. For many of the same reasons discussed, I’m working in an innovation group and most concepts are held privately until the idea/concept has matured. At that point we would like to open up the channel to a public audience. Like the DoD we would like to have a control to make posts going forward public or all previous posts public. Additionally, we create channel names privately so that they are ear marked… kinda like taking a domain name so that someone else doesn’t grab it.


I “just” accidentally created a channel as “public”, but cannot see option to change to “private”. Noting some comments that it’s dangerous to convert after it’s been pubic. In this case, would be nice to convert before we starting using it, but not seeing option to do that.


FYI, Mattermost 4.2 added a CLI command platform channel modify to convert a public channel to private, and vice versa.