WIP: UX Spec: Agent Automations
Figma: Agent Automations Concept
Overview
Mattermost's channel automation capability — currently shipped as a standalone plugin (mattermost-plugin-channel-automation) — is being consolidated into the Agents plugin (mattermost-plugin-agents). The goal is a unified surface where AI agents and the automations they power are discoverable, manageable, and contextually accessible without switching between separate product sections.
This consolidation reflects that automations are a capability of agents. An automation is an agent with a trigger. Bringing them together under the Agents umbrella makes that relationship legible.
Scope
In scope for this spec:
Discoverability entry points: Agents RHS empty state, channel header AI button, Agents RHS header
Automations RHS view (list + new automation)
Create/edit automation flow (chat-first + settings tab)
Standalone Agents product page (Agents tab + Automations tab)
Agent edit view: new Automations tab
Automation run logs / execution history
Updates to the Agents System Console configuration for automations
User Flows
The following user flows are covered in this spec.
Creating an automation from a channel
Creating an automation from the Agents RHS empty state
Accessing automations from the Agents RHS
Managing automations from the Automations RHS view
Reviewing a run log
Managing automations from the Agents product page
Configuring agent automations in system console.
Functional Behavior
Creating an automation from a channel
The existing AI button (sparkle icon) in the channel header opens a contextual menu. A new dot indicator is added to the AI button icon to signal that a new capability (Automations) has been added.
The dot is removed after the user has opened this menu.
A new Automations menu item shows in this menu, carrying a "NEW" badge on initial release.
Selecting this menu option opens the RHS to a new Automations list view. When entered from this path, the automations list is pre-filtered to automations for the active channel — showing only automations scoped to that channel.
Note: The dot indicator and "NEW" badge are temporary release-time affordances and should be removed once the user has opened the automations RHS.
Creating an automation from the Agents RHS empty state
When the Agents RHS has no prior chat history loaded, the empty state renders the agent's name and a set of prompt suggestion buttons (existing behavior).
A Create an automation button is added to this set, using the ⚡ icon consistent with automation iconography used elsewhere.
Clicking ‘Create an automation’ opens the New Automation view within the RHS panel (more on this below).
Accessing automations from the Agents RHS
The current Agents RHS header contains three controls: a Chat history button, an Agent selector dropdown, and a Tools selector dropdown.
To accommodate the Automations entry point without further crowding the header row, the layout is adjusted as follows:
The Agent selector moves to the top of the header as a standalone row, displayed more prominently. This makes the active agent identity more legible — it is no longer a compressed inline dropdown competing with the other controls.
The header row below retains Chat history and Tools, and gains a new Automations button using the ⚡ icon. Clicking the new Automations button navigates the RHS panel to the Automations list view (unfiltered — the full scoped list) with a back button to return to the previous RHS view.
Open question: Custom prompts currently live only in the empty state chips. As Automations is added as a peer function accessible from the header, the absence of a header-level entry point for custom prompts creates an inconsistency. This is noted as a gap to address in a follow-up, not a blocker for v1.
Managing automations from the Automations RHS view
Accessible from: the Automations button in the Agents RHS header, or the Automations menu item in the channel header AI button.
When accessed from the agents menu, a back button shows in the header.
When accessed from the channel header, the back button does not show, but a channel filter chip shows. The channel filter can be cleared by removing the chip.
List scope: Shows automations created by the current user, plus automations scoped to channels where the current user has channel admin or team admin permissions. System admins see all automations in the team.
Filtering: The list toolbar includes a channel filter dropdown. When the list is entered from the channel header AI button, the dropdown is pre-selected to the active channel. The user can change or clear it at any time. In the standalone Agents product, additional filter dropdowns for agent and author are also shown.
Each automation row displays:
A trigger type icon (clock for scheduled, reply arrow for message-posted, etc.)
Automation name
Trigger summary (e.g. "Daily, 9:00 AM" or "On message posted in #design")
Creator ("By [name]")
An enabled/disabled toggle
A ⋯ overflow menu (Edit, View run history, Duplicate, Delete)
Inactive automations are visually dimmed and display an "Inactive" badge adjacent to the name. The list header shows a count ("3 automations") and a + New automation button (right-aligned).
Empty states:
No automations: Illustration + "No automations yet" + short description of what automations can do + a prominent + New automation button.
Channel filter applied, no automations in that channel: "No automations in #channel-name yet" + + New automation button. Creating from this state pre-populates the channel in the trigger configuration.
New / Edit automation view
Accessed from any + New automation or Edit action. When accessed from the Agents RHS, renders within the RHS panel. When accessed from the standalone Agents product, renders as a modal dialog. The two contexts share the same underlying component structure; layout adapts to container width.
The view header reads "New Automation" or "Edit Automation" with a back arrow to return to the list without saving. A Cancel button also discards changes and returns to the list.
The view has two tabs: Chat (default on new) and Settings.
Chat tab
The agent posts an opening message conveying that it can handle a broad range of automation tasks, with a few suggestion buttons offered as examples to get started — not as an exhaustive list. The framing should make clear that the user can describe anything; the buttons are just a jumping-off point. Suggested buttons:
Post a recurring reminder
Welcome new channel members
Send a weekly digest
Auto-reply to messages in a channel
Post when a new channel is created
The user can select a chip or type a free-form description. The agent and user iterate conversationally. Once aligned, the agent posts a summary card showing the automation name, trigger, and intended actions for confirmation. A Create automation button (or Update automation when editing) finalizes and saves. A Save button persists mid-conversation drafts without finalizing.
TODO: Confirm whether a mid-conversation draft is auto-saved or requires explicit save. Auto-save is preferable but depends on backend support.
Settings tab
Always visible and accessible at any point during create or edit, including before any chat has occurred. Presents a structured form:
Automation name — text input, required
Trigger — dropdown selector. Options: "At a scheduled date and time", "A message is posted in a channel", "A user joins a channel or team", "A new channel is created", "A user joins the team". Relevant fields appear based on trigger type:
Scheduled: Start date (date picker), Time (time picker), Repeat (dropdown: daily, weekdays, weekly on [day], monthly, custom)
Message posted: Channel selector
Membership changed: Channel selector, event type (joined / left)
Channel created: Team selector
User joined team: Team selector, user type filter (all users / guests only)
Instructions — multi-line text area. Plain language instructions for the agent describing the action(s) to perform when the automation fires.
Changes made in the Settings tab are reflected in the Chat tab context when the user switches back, and vice versa when the chat produces a structured configuration. Saving from the Settings tab does not require completing a chat conversation.
Agent picker
When creating a new automation from the standalone Agents product, the user must select an agent before the creation flow begins. The agent picker displays all available agents as a list, each showing:
Agent avatar and name
A one-line description of the agent's purpose
The tools available to that agent, shown as inline chips or a compact count with an expand affordance
Surfacing tool availability inline is important: choosing the right agent depends on knowing what tools it has access to, and requiring a drill-through to find this creates friction. The picker should allow the user to compare agents at a glance without navigating away.
Users do not need edit access to an agent in order to select it for an automation. The picker is available to any user who can create automations.
Note: For users who want more detail before selecting, a read-only agent detail view is accessible from the picker. This view shows the agent's description and enabled tools. It does not expose the agent's system prompt or configuration fields. Edit controls are not shown to users without agent edit permissions.
Automation run log / execution history
Each automation has an execution history accessible via View run history in the automation row's ⋯ overflow menu, or from within the edit view. When accessed from the list, the run history view renders in the same panel/modal context — within the RHS panel or as a modal. A back arrow returns to the list.
The run history view shows:
Automation name and enabled/disabled status at the top
A chronological list of recent executions (most recent first), each showing:
Timestamp of execution
Trigger event that fired it (e.g. "Scheduled run", "Message posted by @username in #channel")
Status: Success, Failed, or Skipped
For Failed executions: the action step that failed and the error message returned
For Success executions: a brief summary of output (e.g. "Message posted in #channel")
Pagination: Run history is paginated. The list shows the most recent 25 executions with a Load more control.
Empty state: "No runs yet. This automation hasn't fired since it was created."
Failure notifications: When an action fails, the automation creator receives a direct message (DM) from the agent bot. The run log provides the same detail for users who prefer to check proactively. Rate-limiting of failure DMs (once per hour per automation) is existing behavior from the channel-automation plugin and is not changed.
TODO: Confirm whether non-creator admins can view run history for automations they manage by channel permission.
Standalone Agents product — Agents and Automations tabs
The standalone Agents product (accessible from the product switcher) provides a full-page management surface. The page title is "Agents and Automations." Two tabs are present: Agents and Automations. Both tabs include a Mine / All toggle filter to switch between the current user's own items and everything visible within their permission scope.
Agents tab
Lists agents available in the team. Each row shows:
Agent avatar
Agent name and @handle
Active MCP count and tool count
A ⋯ overflow menu (Edit, Disable, Delete)
The Mine / All filter toggles between agents the current user created and all agents available in the team. A + New agent button (primary, top right) opens the agent creation flow. A Search agents field filters the list by name.
Empty state (Mine, no agents): "You haven't created any agents yet" + + New agent button.
Empty state (All, no agents): Illustration + "No agents configured" + short description + + New agent button.
Automations tab
Lists automations within the user's scope. The Mine / All filter toggles between automations the current user created and all automations visible to them (created by me + channels I administer + system admin access). Each row matches the structure described in Automations list view above, including filtering by agent, author, and channel.
A ⚡ New automation button (top right) opens the agent picker before proceeding to the New Automation view.
Empty state (Mine, no automations): "You haven't created any automations yet" + ⚡ New automation button.
Empty state (All, no automations): Illustration + "No automations yet" + short description of what automations can do + ⚡ New automation button.
When creating from this surface, the New Automation view opens as a modal dialog (Chat tab default, Settings tab available).
Agent edit view — Automations tab
When editing an existing agent, the agent edit view gains an Automations tab alongside existing configuration tabs. This tab shows all automations that use this agent as their executor, regardless of who created them — giving the agent owner visibility into how their agent is being used across the team.
Creating an automation does not require edit access to the agent being used; the automation and the agent are separate entities. The Automations tab in the agent edit view is therefore a read-only reference view for the agent owner, not a creation or configuration surface for the automations themselves.
Each row includes the creator name for attribution. Toggle and ⋯ controls are only active if the current user has edit permission for that automation (they created it, or they are a channel/team admin for its trigger target).
Empty state: "No automations use this agent yet" + ⚡ New automation button that pre-selects this agent in the creation flow.
System Console configuration
The Agents plugin exposes the following configuration settings in the System Console under Plugins > Agents.
Settings carried forward from the channel-automation plugin:
Max Concurrent Automations — Maximum automation executions running concurrently per plugin instance. Default:
4. Requires a plugin restart to take effect.Max Automations Per Channel — Maximum number of automations that can target a single channel. Set to
0for unlimited. Default:0.
New settings required for the merged plugin:
Enable Automations — Master toggle to enable or disable the Automations capability within the Agents plugin. When disabled, all automation entry points are hidden from the UI and no automations execute. Existing automations are preserved. Default:
Enabled.
TODO: Confirm with engineering whether any additional per-agent automation limits or execution timeout settings are needed at v1.
Edge Cases and Error States
No agents configured: If a user attempts to create a new automation and no agents exist in the team, the agent picker shows an empty state with a prompt to create an agent first.
Automations disabled by admin: When the Enable Automations setting is off, all automation entry points (channel header menu item, RHS header button, empty state chip) are hidden. Existing automation data is not deleted.
Admin disables a user's automation: When a channel admin or system admin disables an automation they did not create, the automation creator is automatically notified via DM from the agent bot. The DM identifies the automation by name and indicates it was disabled by an administrator. The creator can re-enable the automation, but admins retain the ability to disable it again; conflicts of this kind should be resolved out of band.
Agent deleted with active automations: If an agent is deleted and automations exist that reference it, those automations become broken — they have no executor. The automation creator (and any relevant channel/team admin) should be notified via DM that the automation's agent has been removed and the automation has been disabled. The automation is preserved in a disabled state and prompts the user to reassign it to a different agent before re-enabling. The automation list surfaces a clear error state for affected rows (e.g. "Agent unavailable — reassign to re-enable").
Permission changes mid-session: If a user loses channel admin permissions while the Automations list is open, a refresh removes those automations from their list. Stale list items the user no longer has permission to edit show controls as disabled with an explanatory tooltip.
Automation creation fails (chat): If the agent fails to parse the user's description into a valid automation configuration, it posts an error message in the chat thread and prompts the user to clarify or switch to the Settings tab. The Settings tab is not pre-populated with a failed draft.
Inactive automation edited: Editing an inactive automation does not automatically re-enable it. The toggle remains off after saving. The user must explicitly re-enable it.
Duplicate automation name: Names are not enforced as unique. Two automations with the same name can coexist. This matches current channel-automation plugin behavior.
Channel filter with no matching automations: See the empty state described in Automations list view above.
Open Questions
Custom prompts in the Agents RHS header — As Automations gains a header-level entry point, the absence of a header entry for custom prompts creates an inconsistency. Should custom prompts get a header button in a follow-up? (Out of scope for v1.)
Auto-save of in-progress chat conversations — If a user begins a chat-based automation and navigates away, is the partial conversation preserved? Needs backend confirmation.
Run history visibility for admins — Can non-creator channel admins view run history for automations they manage by channel permission? Needs alignment with engineering.
Agent picker tool display — Should tools be shown as inline chips, a count + expand, or a hover/popover? Needs design resolution. The goal is to allow agent comparison without requiring drill-through.
Mobile — The Agents RHS and standalone Agents product are webapp-only surfaces. Confirm whether the Automations menu item in the channel header AI button should appear on mobile.
Dot indicator dismissal — The dot on the channel header AI button dismisses after the user visits the Automations view once. Confirm whether this state is stored per-user server-side or client-side (local storage).
Orphaned automation notification recipients — When an agent is deleted, the spec proposes notifying the automation creator and relevant channel/team admins. Confirm the exact recipient list and whether system admins should also be notified.
Future: Automation Manager role — The current permission model (author + channel admin + system admin) is acknowledged as a stopgap. A dedicated "Automation Manager" role was discussed as the ideal long-term solution pending a broader permissions revamp.
References and Resources
Channel Automation Plugin (existing): mattermost-plugin-channel-automation
Agents Plugin (target): mattermost-plugin-agents
Figma: Agent Automations Concept
Meeting notes (Jun 17, 2026): Automations Explorations