update_canned_reply
Change one or more fields of a saved support reply. Anything omitted keeps its stored value.
Edit a snippet in place — reword the body, rename it, give it a shortcut or move it in the picker. The change is partial by design: only the arguments present in the call are written, and every other field is filled from the stored row.
Emits support.canned_reply.updated with the fields that changed, and only when something did. Idempotent: sending the stored values again writes nothing and emits nothing.
Omitted is not the same as null
Leaving shortcut out keeps the current shortcut; passing shortcut: null
clears it. sort_order is the exception — null there is treated like an
omission and the stored position stays.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires one event
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it. Sending the same arguments twice changes nothing the second time. It reaches beyond Subscriby: a connector, a provider or a member.
Arguments
project_id*stringUUID of the project the snippet belongs to.
canned_reply_id*stringUUID of the saved reply to change.
titlestringoptionalNew label, 2 to 80 characters.
bodystringoptionalNew reply text, 2 to 4000 characters.
shortcutstringoptionalNew slash-command, unique within the project. Pass null to clear it.
sort_orderintegeroptionalNew position in the picker, 0 to 999.
0max999What it returns
{ "data": { "id": "5d2f8a71-3c9e-4b06-a8f4-1e7c9d2b6a35", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "title": "Refund policy (2026)", "body": "Refunds are available within 14 days of your first payment. Reply here with the email you paid with and we'll sort it.", "shortcut": "refund", "sort_order": 0, "created_at": "2026-06-02T09:14:02+00:00", "updated_at": "2026-09-06T10:05:00+00:00" }}The full row after the change, not just the fields sent — so the response is what a creator now sees in the picker.
How it fails
VALIDATION_FAILEDa title or body that is present but empty or outside its length limits, a shortcut over 30 characters, with disallowed characters, or already used by a different snippet in this project, or sort_order outside 0–999. Also returned when the token's owner is on the project's team but their role lacks the support permission on it.
RESOURCE_NOT_FOUNDproject_id names a project the token cannot see, or canned_reply_id is unknown, deleted, or belongs to another project.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks support-canned-reply:update.
How is this guide?
Last updated on