Public channels (also called channels for short) act as a base for all channel types. Use channels for conversations that are open to your entire team. Anyone on your team can join a channel.
Channels make it easy to find what's going on with your team. New team members can join a channel and read all the information previously shared by other users.
When in doubt, create a channel. Public conversations help you build a knowledge base of your organization with minimal effort. For example, create a channel for a company department or to discuss a specific programming language.
Private groups are closed channels. They are visible only to their members. Use private groups for subjects that are sensitive, confidential, or limited to a small group of team members.
Private groups are joined through invitation only. The administrator sets the permissions that determine who can invite others to a private group. By default, only administrators, room owners, and moderators can invite others to private rooms.
Direct messages (DMs) are a private 1-on-1 conversation between team members. They can be sent to any user on your server.
Direct Messages Between Multiple Users There is a feature that allows you to chat with multiple users inside a DM. For more info check: Direct Messages Between Multiple Users.