Macros and canned replies
Use and create the desk's macros and approved reply snippets.
With these tools an assistant can reply in the wording your team has agreed, run a macro on a ticket in one step, and save new macros and reply snippets for the team to reuse.
| Tool | What it does | Role needed | Changes data? |
|---|---|---|---|
list_macros | Lists every macro with its actions, and whether it also fires automatically | viewer | read-only |
apply_macro | Runs a macro's actions against a ticket as one step | editor | destructive |
create_macro | Creates a manual macro from a list of actions | editor | adds |
list_canned_responses | Lists the desk's approved reply snippets | viewer | read-only |
create_canned_response | Saves a reusable reply snippet, optionally with a shortcut | editor | adds |
Source: _TOOLS in services/runtime/src/runtime/mcp/tools.py, handlers
_list_macros, _apply_macro, _create_macro, _list_canned_responses and
_create_canned_response.
list_macros, apply_macro and list_canned_responses send the client no
read-only or destructive hint. Their entries describe what each handler does.
apply_macro
- Inputs:
macro_idandticket_id. - Runs every action in the macro: for example, it sends the macro's reply and sets the status it names. A reply it sends goes to the customer.
- Refusals: a disabled or unknown macro, and a ticket you cannot see.
Source: _apply_macro in services/runtime/src/runtime/mcp/tools.py.
create_macro
- Inputs:
name(1 to 120 characters) andactionsare required.descriptionis optional, up to 500 characters. actionsis a list of 1 to 10 items. Each has akindand, where the kind needs one, abodyor avalue.kindis one ofreply,internal_note,set_status,set_priority,add_tag,assign_agent,route_teamorescalate.- An item with any other key is refused, and the refusal names the key.
- A macro created here is always manual: it runs only when someone applies it. Automatic triggers cannot be set over MCP.
- Returns the new macro as
list_macrosshows it.
Source: _create_macro, _macro_actions and _MACRO_ACTION_KINDS in
services/runtime/src/runtime/mcp/tools.py.
list_canned_responses
No inputs beyond workspace_id. When a snippet fits, an assistant should use
its wording rather than write its own, because it is what the team has agreed
to say.
create_canned_response
- Inputs:
title(1 to 200 characters) andbody(1 to 10,000) are required.shortcutis optional, up to 60 characters. - Returns the saved snippet.
Source: _create_canned_response in services/runtime/src/runtime/mcp/tools.py.