Plugins configuration settings
Review and manage the following plugin configuration options in the System Console by selecting the Product menu, selecting System Console , and then selecting Plugins :
System admins managing a self-hosted Mattermost deployment can edit the config.json file as described in the following tables. Each configuration value below includes a JSON path to access the value programmatically in the config.json file using a JSON-aware tool. For example, the Enable value is under PluginSettings.
If using a tool such as jq , you'd enter: cat config/config.json | jq '.PluginSettings.Enable'
When working with the config.json file manually, look for an object such as PluginSettings, then within that object, find the key Enable.
Plugin management
Access the following configuration settings in the System Console by going to Plugins > Plugin Management .
Enable plugins
true : (Default) Enables plugins on your Mattermost server. See the Use plugins with Mattermost documentation for details.false : Disables plugins on your Mattermost server.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > Enable > trueEnvironment variable: MM_PLUGINSETTINGS_ENABLE
Require plugin signature
true : Enables plugin signature validation for managed and unmanaged plugins.false : (Default) Disables plugin signature validation for managed and unmanaged plugins.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > RequirePluginSignature > falseEnvironment variable: MM_PLUGINSETTINGS_REQUIREPLUGINSIGNATURE
- This setting is applicable to self-hosted deployments only. - From Mattermost server v10.11, pre-packaged plugins require signature validation on startup. Distributions that bundle custom pre-packaged plugins must configure custom public keys via PluginSettings.SignaturePublicKeyFiles to validate their signatures. - Mattermost server v10.10 and earlier : Pre-packaged plugins are not subject to signature validation. - Plugins installed through the Marketplace are always subject to signature validation at the time of download. - Enabling this configuration will result in plugin file uploads being disabled in the System Console.
Automatic prepackaged plugins
true : (Default) Mattermost automatically installs and upgrades any enabled pre-packaged plugins. If a newer version is installed, no changes are made.false : Mattermost does not automatically install or upgrade pre-packaged plugins. Pre-packaged plugins may be installed manually from the Marketplace, even when offline.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > AutomaticPrepackagedPlugins > trueEnvironment variable: MM_PLUGINSETTINGS_AUTOMATICPREPACKAGEDPLUGINS
Prepackaged Plugin Installation Behavior : When system administrators drop plugin files (with their .sig signature files) into the prepackaged_plugins directory, the plugins won't install automatically. Prepackaging makes the plugin available for "offline" installation. The plugin will automatically install only when a system admin pre-configures the config.json with that plugin enabled.
Upload Plugin
true : Enables you to upload plugins from the local computer to the Mattermost server.false : (Default) Disables uploading of plugins from the local computer to the Mattermost server.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > EnableUploads > falseEnvironment variable: MM_PLUGINSETTINGS_ENABLEUPLOADS
- This setting is applicable to self-hosted deployments only. - When plugin uploads are enabled, the error Received invlaid response from the server when uploading a plugin file typically indicates that the MaxFileSize configuration setting isn't large enough to support the plugin file upload. Additional proxy setting updateds may also be required. - The ability to upload plugin files is disabled when the Require plugin signature configuration setting is enabled.
Enable Marketplace
true : (Default) Enables the plugin Marketplace on your Mattermost server for all system admins.false : Disables the plugin Marketplace on your Mattermost server for all system admins.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > EnableMarketplace > trueEnvironment variable: MM_PLUGINSETTINGS_ENABLEMARKETPLACE
Enable remote Marketplace
true : (Default) Mattermost attempts to connect to the endpoint set in Marketplace URL . If the connection fails, an error is displayed, and the Marketplace only shows pre-packaged and installed plugins.false : Mattermost does not attempt to connect to a remote Marketplace. The Marketplace shows only pre-packaged and installed plugins. Use this setting if your Mattermost server cannot connect to the Internet.System Config path: Plugins > Plugin Management config.json setting: PluginSettings > EnableRemoteMarketplace > trueEnvironment variable: MM_PLUGINSETTINGS_ENABLEREMOTEMARKETPLACE
- From Mattermost v9.1, set this configuration setting value to true to access a configured remote marketplace URL. - For Mattermost v9.0, the MM_FEATUREFLAGS_STREAMLINEDMARKETPLACE feature flag must be set to false, and this configuration setting must be set to true to access a configured remote marketplace URL. - Each Mattermost host must have network access to the endpoint set in MarketplaceURL.
Marketplace URL
This setting stores the URL for the remote Markeplace.
String input. Default is https://api.integrations.mattermost.com
System Config path: Plugins > Plugin Management config.json setting: PluginSettings > MarketplaceURLEnvironment variable: MM_PLUGINSETTINGS_MARKETPLACEURL
Installed plugin state
This setting is a list of installed plugins and their status as enabled or disabled.
The config.json setting is an object. The object keys are plugin IDs, e.g. com.mattermost.apps. Each key maps to an object that contains an Enable key that can be set as true or false.
System Config path: Plugins > Plugin Management config.json setting: PluginSettings > PluginStatesEnvironment variable: MM_PLUGINSETTINGS_PLUGINSTATES
Plugin settings
This setting contains plugin-specific data.
The config.json setting is an object. The object keys are plugin IDs, e.g. com.mattermost.apps. Each key maps to an object that contains plugin-specific data.
System Config path: Plugins > Plugin Management config.json setting: PluginSettings > PluginsEnvironment variable: MM_PLUGINSETTINGS_PLUGINS
Calls
Access the following configuration settings in the System Console by going to Plugins > Calls .
Enable plugin
true : (Default) Enables the Calls plugin on your Mattermost workspace.false : Disables the Calls plugin on your Mattermost workspace.System Config path: Plugins > Calls config.json setting: PluginSettings > PluginStates > com.mattermost.calls > EnableEnvironment variable: MM_PLUGINSETTINGS_PLUGINSTATES_COM_MATTERMOST_CALLS
RTC server address (UDP)
This setting controls the IP address the RTC server listens for UDP connections. All calls UDP traffic will be served through this IP.
Changing this setting requires a plugin restart to take effect. If left unset (default value) the service will listen on all the available interfaces.
System Config path: Plugins > Calls config.json setting: PluginSettings Plugins > com.mattermost.calls > udpserveraddressEnvironment variable: MM_CALLS_UDP_SERVER_ADDRESS
RTC server address (TCP)
This setting controls the IP address the RTC server listens for TCP connections. All calls TCP traffic will be served through this IP.
Changing this setting requires a plugin restart to take effect. If left unset (default value) the service will listen on all the available interfaces.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > tcpserveraddressEnvironment variable: MM_CALLS_TCP_SERVER_ADDRESS
RTC server port (UDP)
This setting controls the UDP port listened on by the RTC server. All calls UDP traffic will be served through this port.
Changing this setting requires a plugin restart to take effect.
Default is 8443 .
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > udpserverportEnvironment variable: MM_CALLS_UDP_SERVER_PORT
RTC server port (TCP)
This setting controls the TCP port listened on by the RTC server. All calls TCP traffic will be served through this port.
Changing this setting requires a plugin restart to take effect.
Default is 8443 .
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > tcpserverportEnvironment variable: MM_CALLS_TCP_SERVER_PORT
Enable on specific channels
Admins can't configure this setting from Mattermost v7.7; it's hidden and always enabled for self-hosted deployments
true : Channel admins can enable or disable calls on specific channels. Participants in DMs/GMs can also enable or disable calls.false : Only system admins can enable or disable calls on specific channels.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > allowenablecallsEnvironment variable: MM_CALLS_ALLOW_ENABLE_CALLS
Test mode
This setting was called Enable on all channels until Mattermost v7.7. It was renamed to defaultenabled in code and Test Mode in-product and is only applicable to self-hosted deployments.
false : Test mode is enabled and only system admins can start calls in channels.true : Live mode is enabled and all team members can start calls in channels.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > defaultenabledEnvironment variable: MM_CALLS_DEFAULT_ENABLED
Use this setting as a system admin to confirm calls work as expected. When false , users attempting to start calls are prompted to contact a system admin, and system admins are prompted to confirm that calls are working as expected before switching to live mode.
ICE host override
This setting can be used to override the host addresses that get advertised to clients when connecting to calls. The accepted formats are the following:
A single IP address (e.g. 10.0.0.1). A single hostname or FQDN (e.g. calls.myserver.tld). (starting in v0.17.0) A comma separated list of externalAddr/internalAddr mappings (e.g. 10.0.0.1/172.0.0.1,10.0.0.2/172.0.0.2). This is an optional field. Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > icehostoverrideEnvironment variable: MM_CALLS_ICE_HOST_OVERRIDE
- This setting is only applicable for self-hosted deployments when not running calls through the standalone rtcd service. - Depending on the network infrastructure (e.g. instance behind a NAT device) it may be necessary to set this field to the client facing external IP for clients to connect. When empty or unset, the RTC service will attempt to find the instance's public IP through STUN. - A hostname (e.g. domain name) can be specified in this setting, but an IP address will be passed to clients. This means that a DNS resolution happens on the Mattermost instance which could result in a different IP address from the one the clients would see, causing connectivity to fail. When in doubt, we recommend using an IP address directly or confirming that the resolution on the host side reflects the one on the client.
ICE host port override
This setting can be used to override the port used in the ICE host candidates that get advertised to clients when connecting to calls.
This can be useful in case there are additional network components (e.g. NLBs) in front of the RTC server that may route the calls traffic through a different port. Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > icehostportoverrideEnvironment variable: MM_CALLS_ICE_HOST_PORT_OVERRIDE
RTCD service URL
The URL to a running rtcd service instance that will host the calls.
When set (non empty) all the calls will be handled by this external service.
This is an optional field. Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > rtcdserviceurlEnvironment variable: MM_CALLS_RTCD_SERVICE_URL
- This setting is applicable only to self-hosted deployments. - The environment variable MM_CALLS_RTCD_URL is deprecated in favor of MM_CALLS_RTCD_SERVICE_URL. - The client will self-register the first time it connects to the service and store the authentication key in the database. If no client ID is explicitly provided, the diagnostic ID of the Mattermost installation will be used. - The service URL supports credentials in the form http://clientID:authKey@hostname. Alternatively these can be passed through environment overrides to the Mattermost server, namely MM_CALLS_RTCD_CLIENT_ID and MM_CALLS_RTCD_AUTH_KEY - The client will self-register the first time it connects to the service and store the authentication key in the database. If no client ID is explicitly provided, the diagnostic ID of the Mattermost installation will be used. - The service URL supports credentials in the form http://clientID:authKey@hostname. Alternatively these can be passed through environment overrides to the Mattermost server, namely MM_CALLS_RTCD_CLIENT_ID and MM_CALLS_RTCD_AUTH_KEY
Max call participants
This setting limits the number of participants that can join a single call.
Default is 0 (no limit).
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > maxcallparticipantsEnvironment variable: MM_CALLS_MAX_CALL_PARTICIPANTS
- This setting is applicable only to self-hosted deployments. - The environment variable MM_CALLS_MAX_PARTICIPANTS is deprecated in favor of MM_CALLS_MAX_CALL_PARTICIPANTS. - This setting is optional, but the recommended maximum number of participants is 50 . Call participant limits greatly depends on instance resources. See the Calls deployment guide documentation for details.
ICE servers configurations
This setting stores a list of ICE servers (STUN/TURN) in JSON format to be used by the service.
This is an optional field. Changing this setting may require a plugin restart to take effect.
Default is [{"urls": ["stun:stun.global.calls.mattermost.com:3478"]}]
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > iceserversconfigsEnvironment variable: MM_CALLS_ICE_SERVERS_CONFIGS
- This setting is applicable only to self-hosted deployments. - The configurations above, containing STUN and TURN servers, are sent to the clients and used to generate local candidates. - If hosting calls through the plugin (i.e. not using the RTCD service ) any configured STUN server may also be used to find the instance's public IP when none is provided through the ICE Host Override option.
Example
[
123 ;
"urls" : [
"stun:stun.global.calls.mattermost.com:3478"
]
125 ; ,
123 ;
"urls" : [
"turn:turn.example.com:3478"
] ,
"username" : "webrtc" ,
"credentials" : "turnpassword"
125 ;
]
Example (Using generated TURN credentials)
[ 123 ;
"urls" : [ "turn:turn.example.com:443" ]
125 ; ]
TURN static auth secret
A static secret used to generate short-lived credentials for TURN servers.
This is an optional field.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > turnstaticauthsecretEnvironment variable: MM_CALLS_TURN_STATIC_AUTH_SECRET
TURN credentials expiration
The expiration, in minutes, of the short-lived credentials generated for TURN servers.
Default is 1440 (one day).
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > turncredentialsexpirationminutesEnvironment variable: MM_CALLS_TURN_CREDENTIALS_EXPIRATION_MINUTES
Server side TURN
true : The RTC server will use the configured TURN candidates for server-initiated connections.false : TURN will be used only on the client-side.Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > serversideturnEnvironment variable: MM_CALLS_SERVER_SIDE_TURN
Allow screen sharing
true : Call participants will be allowed to share their screen.false : Call participants won't be allowed to share their screen.Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > allowscreensharingEnvironment variable: MM_CALLS_ALLOW_SCREEN_SHARING
Enable simulcast for screen sharing (Experimental)
true : Enables simulcast for screen sharing. This can help to improve screen sharing quality.false : Disables simulcast for screen sharing.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enablesimulcastEnvironment variable: MM_CALLS_ENABLE_SIMULCAST
This experimental setting is applicable only to self-hosted deployments.
This functionality requires Calls plugin version >= v0.16.0 and rtcd version >= v0.10.0 (when in use).
Avoid enabling both this experimental configuration setting and the Enable AV1 experimental configuration setting at the same time.
Enable call recordings
true : Allows call hosts to record meeting video and audio.false : (Default) Call recording functionality is not available to hosts.Recordings include the entire call window view along with participants' audio track and any shared screen video. Recordings are stored in Mattermost.
Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enablerecordingsEnvironment variable: MM_CALLS_ENABLE_RECORDINGS
Job service URL
The URL to a running job service where all the processing related to recordings happens. The recorded files produced are stored in Mattermost.
This is a required field. Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > jobserviceurlEnvironment variable: MM_CALLS_JOB_SERVICE_URL
This setting is applicable only to self-hosted deployments.
The client will self-register the first time it connects to the service and store the authentication key in the database. If no client ID is explicitly provided, the diagnostic ID of the Mattermost installation will be used.
The service URL supports credentials in the form http://clientID:authKey@hostname. Alternatively these can be passed through environment overrides to the Mattermost server, namely MM_CALLS_JOB_SERVICE_CLIENT_ID and MM_CALLS_JOB_SERVICE_AUTH_KEY.
As of Calls v0.25 it's possible to override the site URL used by jobs to connect by setting the MM_CALLS_RECORDER_SITE_URL or MM_CALLS_TRANSCRIBER_SITE_URL environment variables respectively. This can be helpful to avoid the jobs from connecting through the public Site URL configured in Mattermost and thus potentially bypass the public network.
Maximum call recording duration
The maximum duration of a call recording in minutes.
The default is 60 . The maximum is 180 . This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > maxrecordingdurationEnvironment variable: MM_CALLS_MAX_RECORDING_DURATION
Call recording quality
The audio and video quality of call recordings. Available options are: Low , Medium and High .
The default is Medium . This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > recordingqualityEnvironment variable: MM_CALLS_RECORDING_QUALITY
Enable call transcriptions
true : Enables automatic transcriptions of calls.false : (Default) Call transcriptions functionality is disabled.Transcriptions are generated from the call participants' audio tracks and the resulting files are attached to the call thread when the recording ends. Captions will be optionally rendered on top of the recording file video player.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enabletranscriptionsEnvironment variable: MM_CALLS_ENABLE_TRANSCRIPTIONS
Transcriber model size
The speech-to-text model size to use. Heavier models will produce more accurate results at the expense of processing time and resources usage. Available options are: Tiny , Base and Small .
The default is Base . This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > transcribermodelsizeEnvironment variable: MM_CALLS_TRANSCRIBER_MODEL_SIZE
Call transcriber threads
The number of threads used by the post-call transcriber. This must be in the range [1, numCPUs].
The default is 2. This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > transcribernumthreadEnvironment variable: MM_CALLS_TRANSCRIBER_NUM_THREADS
Enable live captions
true : Enables live captioning of calls.false : (Default) Live captions functionality is disabled.Live captions are generated from the call participants' audio tracks and the resulting captions can be optionally displayed on the call clients by selecting the [cc] option.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enablelivecaptionsEnvironment variable: MM_CALLS_ENABLE_LIVE_CAPTIONS
Live captions: Model size
The speech-to-text model size to use for live captions. While heavier models can produce more accurate results, live captioning requires the transcriber to process up to ten seconds of audio within two seconds. Therefore a maximum of size base is recommended. Available options are: Tiny , Base and Small .
The default is Tiny . This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > livecaptionsmodelsizeEnvironment variable: MM_CALLS_LIVE_CAPTIONS_MODEL_SIZE
Live captions: Number of transcribers used per call
The number of separate live captions transcribers for each call. Each transcribes one audio stream at a time. The product of LiveCaptionsNumTranscribers * LiveCaptionsNumThreadsPerTranscriber must be in the range [1, numCPUs].
The default is 1. This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > livecaptionsnumtranscribersEnvironment variable: MM_CALLS_LIVE_CAPTIONS_NUM_TRANSCRIBERS
Live captions: Number of threads per transcriber
The number of threads per live-captions transcriber. The product of LiveCaptionsNumTranscribers * LiveCaptionsNumThreadsPerTranscriber must be in the range [1, numCPUs].
The default is 2. This is a required value.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > livecaptionsnumthreadspertranscriberEnvironment variable: MM_CALLS_LIVE_CAPTIONS_NUM_THREADS_PER_TRANSCRIBER
Live captions language
The language passed to the live captions transcriber. Should be a 2-letter ISO 639 Set 1 language code, e.g. 'en'.
If blank, the lange will be set to 'en' (English) as default.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > livecaptionslanguageEnvironment variable: MM_CALLS_LIVE_CAPTIONS_LANGUAGE
(Experimental) Enable IPv6
true : The RTC service will work in dual-stack mode, listening for IPv6 connections and generating candidates in addition to IPv4 ones.false : (Default) The RTC service will only listen for IPv4 connections.Changing this setting requires a plugin restart to take effect.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enableipv6Environment variable: MM_CALLS_ENABLE_IPV6
Enable call ringing
true : Ringing functionality is enabled. Direct and group message participants receive a desktop app alert and a ringing notification when a call starts.false : (Default ) Ringing functionality is disabled.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enableringingEnvironment variable: MM_CALLS_ENABLE_RINGING
Enable AV1 (Experimental)
true : Enables the ability to use the AV1 codec to encode screen sharing tracks. Can result in improved screen sharing quality via clients that support AV1 encoding.false : (Default ) AV1 codec is disabled for screen sharing tracks.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enableAV1Environment variable: MM_CALLS_ENABLE_AV1
Enable video calls in DMs (Experimental)
true : Enables experimental video calls in direct message (DM) channels.false : (Default) Video calls are disabled.Video is supported in DM calls on the desktop and web apps only. Mobile users can't start video calls; when joining a DM call that includes video, they receive voice and screen sharing only. Call recordings capture voice and screen sharing only — video isn't recorded.
System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enablevideoEnvironment variable: MM_CALLS_ENABLE_VIDEO
If your deployment offloads calls to the RTCD service , video in DM calls requires rtcd v1.2.2 or later . We recommend running the rtcd version that ships with your Calls plugin release (rtcd v1.2.5 for Calls v1.12.0) and keeping rtcd updated alongside the plugin. Deployments that use the plugin's built-in RTC server (no RTCD) support video without additional configuration.
Enable DC signaling (Experimental)
true : Clients will use WebRTC data channels for signaling of media tracks (i.e., voice, screen). This can result in a more efficient and less race-prone process, especially in case of poor network connections.false : (Default ) Clients will use WebSockets for signaling media tracks.System Config path: Plugins > Calls config.json setting: PluginSettings > Plugins > com.mattermost.calls > enabledcsignalingEnvironment variable: MM_CALLS_ENABLE_DC_SIGNALING
Version v0.18.0 or higher of the RTCD service is required for this functionality to work when hosting calls through the dedicated WebRTC service.
Use caution when enabling this experimental configuration setting since it determines how the system handles part of the setup for WebRTC-based calls. Enabling this configuration setting may make the call setup a bit faster or more reliable in certain situations.
AI Agents
Access the following Mattermost Agents configuration settings in the System Console by going to Plugins > Agents .
Enable plugin
true : Enables the Agents plugin on your Mattermost workspace.false : (Default) Disables the Agents plugin.System Config path: Plugins > Agents config.json setting: N/AEnvironment variable: N/A
Display name
The bot's display name in Mattermost used to distinguish the bot from other bots in the system.
String input.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Agent username
The bot's username that can be used to @mention the bot in a channel.
String input.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Agent avatar
Upload an image to use as the agent's avatar in Mattermost.
Image upload interface.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Service
Select the LLM service provider to use for AI assistance.
Available options: OpenAI , OpenAI Compatible , Azure , Anthropic , and Ask Sage .
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Username
The username used to authenticate with the Ask Sage LLM service.
String input required.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Password
The password used to authenticate with the Ask Sage LLM service.
String input required. This value is encrypted when stored.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
API URL
The endpoint that Mattermost will use to communicate with the LLM's API. Required for OpenAI Compatible and Azure LLM services.
String input (URL format).
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
API key
The key used to authenticate requests to the LLM's API. Required for OpenAI , OpenAI Compatible , and Anthropic LLM services.
String input. This value is encrypted when stored.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Organization ID
Ensures that requests are billed and processed under the correct organization, where applicable. Supported for OpenAI , OpenAI Compatible , and Azure LLM services.
String input.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Send user ID
true : Includes unique user identifiers in API requests to the LLM for analytics, personalization, and auditing purposes.false : (Default) Does not include user identifiers.Review LLM data privacy policies before enabling this setting.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
We recommend reviewing LLM data privacy policies to confirm whether transmitting user information is acceptable and secure within your organization's regulatory framework. Do not enable when you need to conform to strict privacy regulations (e.g., GDPR) that limit sharing user-identifiable data with external services.
Default model
The specific LLM that will be used to process queries if no other model is explicitly selected. Supported for all LLM services.
String input (model name).
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
The maximum number of tokens (chunks of text, including words, punctuation, or special characters) that the selected LLM can process in a single prompt or request.
Numerical value. Directly impacts the size of user queries that can be handled.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Output token limit
The maximum number of tokens (chunks of text, including words, punctuation, or special characters) that the LLM can generate in its response to a query.
Numerical value. Must be greater than 0 for Anthropic LLM services.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Streaming timeout
Determines how long the system will wait for a response from the LLM when using streaming (real-time) output mode. Supported for OpenAI , OpenAI Compatible , and Azure LLM services.
Numerical value (in seconds). If the LLM takes longer than the configured timeout, the connection is terminated.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Custom instructions
Preset specific contextual or behavioral guidance for the LLM. Helps tailor the model's responses to align with your organization's needs, tone, or expectations. Supported for all LLM services.
Text input. Instructions that the model will implicitly follow for every interaction, providing consistency and adaptability.
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Custom instructions can include behavioral guidance, tone preferences, contextual functions, and organizational preferences. This ensures responses adhere to your organization's language and tone guidelines and aligns the model's behavior with specific roles or purposes.
Enable vision
true : Enables the LLM to process and generate responses that incorporate image-related input or output. Supported for OpenAI , OpenAI Compatible , Azure , and Anthropic LLM services.false : (Default) Disables vision capabilities.System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
This feature is in Beta . When enabled, the LLM can interact with prompts that include image-related input, such as image analysis, visual-related assistance, and visual outputs, where supported.
true : Enables the LLM to leverage additional tools or plugins to enhance its capabilities. Supported for OpenAI , OpenAI Compatible , Azure , and Anthropic LLM services.false : (Default) Disables tool capabilities.System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
When enabled, advanced features beyond basic query processing allow the LLM to perform specialized tasks like retrieving data, integrating with external APIs, or performing computations, where supported.
Channel access
Determines whether the bot can consume the contents of a given channel and provide answers only from content available in the channel. Supported for all LLM services.
Available options: Allow for all channels , Allow for selected channels , Block selected channels , and Block all channels .
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
User access
Determines whether users who chat with this bot can get private assistance about content across all channels the user has access to. Supported for all LLM services.
Available options: Allow for all users , Allow for selected users , and Block selected users .
System Config path: Plugins > Agents > Add an AI Bot config.json setting: N/AEnvironment variable: N/A
Default agent
Select the default bot to use for AI functions when multiple agents are configured. Based on defined agents. System Config path: Plugins > Agents > AI Functions config.json setting: N/AEnvironment variable: N/A
Allowed upstream hostnames
Comma-separated list of hostnames that LLMs are allowed to contact when using tools. Supports wildcards like *.mydomain.com.
Example: mattermost.atlassian.net to allow JIRA tool use.
System Config path: Plugins > Agents > AI Functions config.json setting: N/AEnvironment variable: N/A
Enable LLM trace
true : Enables tracing of LLM requests and outputs full conversation data to the logs. Supported for all LLM services.false : (Default) Disables LLM request tracing.System Config path: Plugins > Agents > Debug config.json setting: N/AEnvironment variable: N/A
Enable embedding search
Composite : Enables experimental embedding search capabilities for semantic search across Mattermost content using pgvector and OpenAI-compatible endpoints.Disabled : (Default) Disables embedding search capabilities.System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Embedding provider type
Select the provider for generating embeddings for semantic search. Available options: OpenAI and OpenAI Compatible . System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
API Key
The API key used to authenticate requests to the embedding provider's API. Required for OpenAI Compatible embedding providers.
String input. This value is encrypted when stored.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Model
The specific embedding model to use for generating vector representations of content. Must be compatible with the selected embedding provider.
String input (model name).
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
API URL
The endpoint URL for the OpenAI-compatible embedding API.
Required string input (URL format).
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Dimensions
The dimensionality of the embedding vectors, which must match the chosen embedding model. Common values include 1536 for OpenAI text-embedding-ada-002 and 3072 for text-embedding-3-large.
Numerical input. Common values are 768, 1024, or 1536, depending on the model.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Chunking strategy
The method used to split content into smaller chunks for embedding generation. Available options: Sentences , Paragraphs , Fixed Size .
Choose based on your content type and search requirements.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Chunk size
The maximum size of each content chunk in characters. Recommended range is 512-1024 characters. The optimal value varies by chunking strategy.
Numerical input.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Chunk overlap
The number of tokens that consecutive chunks share for better context continuity. Recommended range is 20-50 characters for Fixed Size chunking.
Numerical input.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Minimum chunk size ratio
The minimum ratio for chunk size validation to ensure sentence and paragraph chunks meet size requirements. Used to filter out chunks that are too small releative to the configured chunk size.
Numerical input (decimal ratio).
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
Reindex all posts
Select Reindex Posts to trigger a complete reindexing of all posts for embedding search. Use this control to rebuild the search index when changing embeddingproviders, models, or chunking configurations.
Monitor indexing progress during the reindexing process.
System Config path: Plugins > Agents > Embedding Search config.json setting: N/AEnvironment variable: N/A
GitLab
See the Connect GitLab to Mattermost product documentation for details.
GitHub
See the Connect GitHub to Mattermost product documentation for details.
Jira
See the Connect Jira to Mattermost product documentation for available Mattermost configuration options .
Legal hold
See the Legal holds product documentation for details.
Microsoft Calendar Integration
See the Connect Microsoft Calendar Integration to Mattermost product documentation for available Mattermost configuration options .
Microsoft Teams Meetings
See the Connect Microsoft Teams Meetings to Mattermost product documentation for available Mattermost configuration options .
MS Teams
Mattermost for Microsoft Teams enables you to break through siloes in a mixed Mattermost and Teams environment by forwarding real-time chat notifications from Teams to Mattermost.
Access the following configuration settings in the System Console by going to Plugins > MS Teams .
Enable plugin
Enable the Mattermost for Microsoft Teams plugin for all Mattermost teams.
true : Enables MS Teams plugin on your Mattermost workspace.false : (Default) Disables the MS Teams plugin.System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Tenant ID
Specify the Microsoft Teams Tenant ID from the Azure portal. System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Client ID
Specify the Microsoft Teams Client ID of your registered OAuth app in the Azure portal. System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Client secret
Specify the client secret of your registered OAuth app in Azure portal.
Alpha-numeric value.
System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
At rest encryption key
Regenerate a new encryption secret. This encryption secret will be used to encrypt and decrypt the OAuth token.
Alpha-numeric value.
System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Webhook secret
Generate the webhook secret that Microsoft Teams will use to send messages to Mattermost. System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Use the evaluation API pay model
Enable this only for testing purposes. You need the pay model to be able to support enough message notifications to work in a real world scenario.
true : Enables the evaluation API pay model.false : (Default) Disables the evaluation API pay model.System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Sync notifications
Notify connected users in Mattermost on receipt of a chat or group chat from Microsoft Teams.
true : (Default) Sync notifications of chat messages for any connected user that enables the feature.false : Do not sync notifications.System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Maximum size of attachments to support complete one time download
Specify the maximum file size, in mebibytes (MiB), of attachments that can be loaded into memory. Attachment files larger than this value will be streamed from Microsoft Teams to Mattermost.
Numerical value. Default is 20 MiB.
System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
Buffer size for streaming files
Specify the buffer size, in mebibytes (MiB), for streaming attachment files from Microsoft Teams to Mattermost.
Numerical value. Default is 20 MiB.
System Config path: Plugins > MS Teams config.json setting: N/AEnvironment variable: N/A
See the Monitor performance metrics product documentation for available Mattermost configuration options .
Collaborative playbooks
Use collaborative playbooks in Mattermost to provide structure, monitoring and automation for repeatable, team-based processes integrated with the Mattermost platform.
Access the following configuration settings in the System Console by going to Plugins > Collaborative playbooks .
Enable plugin
true : (Default) Enables collaborative Playbooks on your Mattermost workspace.false : Disables collaborative Playbooks on your Mattermost workspace.System Config path: Plugins > Collaborative playbooks config.json setting:Environment variable:
Enabled teams
Enable collaborative playbooks for all Mattermost teams, or for only selected teams. System Config path: Plugins > Collaborative playbooks config.json setting:Environment variable:
Enable experimental features
true : Enables experimental playbooks features on your Mattermost workspace.false : Disables experimental playbooks features on your Mattermost workspace.System Config path: Plugins > Collaborative playbooks config.json setting:Environment variable:
ServiceNow
See the Connect ServiceNow to Mattermost product documentation for available Mattermost configuration options .
Zoom
See the Connect Zoom to Mattermost product documentation for available Mattermost configuration options .
config.json-only settings
The following self-hosted deployment settings are only configurable in the config.json file and are not available in the System Console.
Signature public key files
This setting isn't available in the System Console and can only be set in config.json.
In addition to the Mattermost plugin signing key built into the server, each public key specified here is trusted to validate plugin signatures.
From Mattermost v10.11, pre-packaged plugins require signature validation on startup. Distributions that bundle custom pre-packaged plugins must configure this setting with their custom public keys to ensure proper validation of their signed plugins. Use PluginSettings.SignaturePublicKeyFiles to define custom plugin signing keys.
When bundling custom plugins:
Drop both the plugin files and their corresponding .sig signature files into the prepackaged_plugins directory.
Add your custom public key using this configuration setting to validate the signatures.
This feature's config.json setting is "SignaturePublicKeyFiles": {} with string array input consisting of contents that are relative or absolute paths to signature files.
Chimera OAuth proxy URL
This setting isn't available in the System Console and can only be set in config.json.
Specify the Chimera URL used by Mattermost plugins to connect with pre-created OAuth applications.
This feature's config.json setting is "ChimeraOAuthProxyUrl": {} with string input.