The Chat Assistant
Part of the MountDev Ops Channels documentation. Updated October 21, 2026
MountDev Ops Channels documentation | Updated October 21, 2026
Our Commitment
MountDev Ops is built security first. Your business data belongs to you, and you can export all of it at any time. We never use analytics or tracking of any kind inside MountDev Ops.
Every update passes all 2,069 automated checks before it ships, plus screen tests on 9 screen sizes for everything it changes.
What It Is
Your team can ask an assistant of your own in any team channel or record chat by naming it with @ (never in a direct message). Owners and admins set it up in Channels Settings: its name, one of your Connected Services, and the path on it. The assistant is your own service; MountDev Ops only hands it what was asked and shows what it answers.
What It Is Sent
A message that names the assistant (@Ada, for an assistant called Ada) is posted to your Connected Service and path as JSON, through the same outbound queue as every connection call, with retries:
{ "event": "channels.mention", "assistant": "Ada", "channel": { "key": "w:12", "kind": "project", "title": "ACMEPR-12", "sub": "Website Redesign", "record": { "module": "projects.projects", "id": 40, "code": "ACMEPR-12" } }, "message": { "id": 311, "text": "@Ada what is left?", "at": "2026-10-21T17:05:00.000Z" }, "from": { "name": "Mia Member", "email": "mia@example.com" } }The person who asked is remembered for six hours, so they hear on the bell when the assistant answers.
How It Answers
The assistant answers with its own API key (API Keys), made by an owner or admin with Post as the chat assistant:
- Post an answer (action
channels.assistant.post):key(the conversation, from the mention),text, and up to 4buttons. A line like "Ada is working on it." shows as the assistant typing until its answer arrives. @First in its answer tells that person. - Buttons: each
{ id, kind, yes, no, may, note }.kindisconfirm(Confirm and Cancel) orapprove(Approve and Not Now);maylists the addresses of the people who may click (everyone who can read the conversation when empty), andnoteis what everyone else sees. A click (actionchannels.button) is checked, shows Working, and is posted to the assistant:{ "event": "channels.button", "button": { "id", "kind", "choice" }, "message": { "id" }, "from": { "name", "email" } }. - Show how a button ended (action
channels.assistant.button):messageandbuttonwith itsid,state(such as confirmed, canceled, approved, declined, or expired),done(like "Confirmed by Mia Member"), andat.
A click is a person's own choice: an AI agent or an API key never clicks a button.
