We tried out a handful of communication tools including Slack, Microsoft Teams, and Google Hangouts Chat, before settling with Mattermost.
The customisability offered through your server's system console is unrivalled and in some ways overwhelming with the sheer amount of options that you're provided with.
All communication tools share 99% of their UI with each other, and Mattermost is no different, but that's not a bad thing. It also seems to have a less cluttered interface than the others we had tried, although I can't pinpoint the specific design choice that is the reason for this.
The fact that we can have control over all of our data (we're self-hosting it through AWS on a single EC2 instance) is also a great plus which none of the options that we looked into offered.