Platform Overview

8 pages

func (a * App) CreateChannel (c * request.Context, channel * model.Channel, addMember bool) (*model.Channel, *model.AppError) { channel.DisplayName = strings. TrimSpace (channel.DisplayName) sc , nErr := a. Srv().Store. Channel (). Save (channel, * a. Config ().TeamSettings.MaxChannelsPerTeam) if nErr != nil { var invErr * store.ErrInvalidInput var cErr * store.ErrConflict var ltErr * store.ErrLimitExceeded var appErr * model.AppError switch { case errors. As (nErr, & invErr): switch { case invErr.Entity == "Channel" && invErr.Field == "DeleteAt" : return nil , model. NewAppError ( "CreateChannel" , "store.sql_channel.save.archived_channel.app_error", ni l, "", http.StatusBadRequest) case invErr.Entity == "Channel" && invErr.Field == "Type" : return nil , model. NewAppError ( "CreateChannel" , "store.sql_channel.save.direct_channel.app_error", nil, "", http. StatusBadRequest) case invErr.Entity == "Channel" && invErr.Field == "Id" : return nil , model. NewAppError ( "CreateChannel" , "store.sql_channel.save_channel.existing.app_error", nil, "i d="+invErr.Value.(string), http.StatusBadRequest) } case errors. As (nErr, & cErr): return sc, model. NewAppError ( "CreateChannel" , store.ChannelExistsError, nil, cErr.Error(), http.StatusBadRequest) case errors. As (nErr, & ltErr): return nil , model. NewAppError ( "CreateChannel" , "store.sql_channel.save_channel.li mit.app_error", nil, ltErr.Error(), http.StatusBadRequest) case errors. As (nErr, & appErr): // in case we haven't converted to plain error. return nil , appErr default : // last fallback in case it doesn't map to an existing app error. return nil , model. NewAppError ( "CreateChannel" , "app.channel.create_channel.internal_er ror", nil, nErr.Error(), http.StatusInternalServerError) } } Make your work flow PLATFORM OVERVIEW An open source collaboration platform to help R&D teams align people, processes, and tools across the full software development lifecycle.

Ship fast and stay aligned Building and operating software is hard work. Developers can be frustrated with fragmented tools and fragile workflows. Teams need to integrate critical systems, automate routine tasks and build customized workflows for effective digital operations. We help you stay productive and collaborate outside of code by aligning your tools, people, and processes all in one place. Industry challenges Time: You’re moving fast, being interrupted, losing momentum on mundane tasks, and can’t find key documents when you need them. Te ams: It’s easy to lose sight of long- term plans in dynamic environments where people and data are siloed and there’s information overload. To ols: Complex technology stacks and multi-step, manual workflows result in integration workarounds and fragile processes that break constantly. Why developers Mattermost Developer- Centric Design Data Control & Security Open Source & Yours to Customize Integrates with Your Tool Chain Mattermost brings together communication, collaboration, and workflow management across your tools with features that help you collaborate when coding, sprint planning, deploying, and during outages and support escalations. From safeguarding intellectual property to ensuring national security, Mattermost is designed to help developers work faster and smarter while maintaining security and compliance. Mattermost provides a single point of collaboration that connects the best-of- breed developer tools your team uses every day and can be customized to fit your specific needs. Spend less time toggling between tools and more time coding and building. Open source for investment protection with no lock-in and a force-multiplying community of over 4500 contributors. Community innovation and a transparent roadmap build trust and a culture of sharing and support. 2 Try it Now or Connect with an Expert

Unified user interface Connections Controls Playbooks Workflows & automation Boards Task & project management Channels Sync & async communications CCPA A Collaboration Platform Built for Developers Give your teams space to excel by removing operational obstacles across the entire development lifecycle. Centralize knowledge sharing in a single integrated and extensible platform with conversations, checklists, and kanban-style boards. Create, run, update, and repeat processes of any scope and scale with a central source of truth for transparent and low friction collaboration across teams and tools. 3 Try it Now or Connect with an Expert

All of your team’s communication in one place Channels go beyond team messaging to connect your R&D tools and processes. Channels are built specifically for developer collaboration and can be customized from the UI down to the extensions that developers rely on to work effectively. Playbooks make any structured processes repeatable and predictable using checklists, triggers, automation, and tool integrations. Use templates to quickly codify best practices, or build a playbook from scratch with capabilities to adjust on the fly during dynamic situations. Orchestrate workflows across tools and teams Unlimited teams and channels 1:1 and group messaging and calls Native audio calls and screenshare Continuous message archive Full history search Automation, slash commands, bot integrations Rich Markdown formatting and code snippets Code syntax highlighting Use like a CLI with integrated tools Bot accounts Customizable playbooks Prescribed and ad-hoc task checklists Automated triggers & actions Deep integration with Channels Retrospective report Retrospective timeline Configurable templates Data export Status updates broadcast Reminder and countdown timer Stakeholder overview Aggregate analytics Channels Playbooks 4 Try it Now or Connect with an Expert

Over 600 integrations, including: Connections Context switching can slow down even the fastest moving development teams. Mattermost is built to integrate, extend, connect, and customize to fit your environment and unique workflows. With powerful functionality and flexible developer options to customize and extend the platform, Mattermost helps keep your team focused on the work, not the tools. 5 Kanban boards Multi-team views Project cards & tasks Unlimited custom attributes Group, filter, and sort tasks Customizable templates Archiving & backup snapshots Messaging and meeting integrations File sharing Meeting notes Priority labeling Apps Framework REST API Custom Bots Interactive Messages Slash Commands Webhooks Plugins Modify Source Code Zapier Support Boards Boards keep your team in sync and on schedule with project management that’s tightly integrated with channel-based collaboration. Increase visibility into milestones and task ownership across teams and projects with a flexible and adaptable framework tailored to how developers work. Plan and manage any project

Controls “ Mattermost has been unimaginably effective for our company and continues to exceed expectations with every new release. The platform helps us ensure that we’re staying HIPAA-compliant while letting our clinicians collaborate efficiently and seamlessly.” Daniel Gover IT System Administrator Teams that ship fast trust Mattermost 6 Try it Now or Connect with an Expert Self-hosted deployment and database ownership Built-in identity & access controls Advanced mobile security Compliance auditing with oversight Cloud single-tenancy and data isolation Enterprise Information Archiving integration Data encryption at rest and in transit Full access to APIs, drivers, and open source code Mattermost is easily customized to meet your specific compliance requirements with fine- grained data retention, audit logs, and the ability to programmatically archive and export records. We provide full access controls and give teams the ability to set granular permissions to control access to sensitive data.

Choose Your Deployment Option Cloud Self-Hosted Get up and running immediately in your own private cloud instance. Host Mattermost on your own infrastructure. Try Mattermost for free. Within minutes you can unite your people, tools, and processes. Secure, open-source, and made for developers. Try It Now Try It Now 7

Platform Overview - Page 8