Templates
List canned responses
Returns every canned response of the workspace sorted by name and never paged, each with the groups whose tickets it is offered on (none means every ticket).
The groups steer the ticket view's picker, not access: every User gets the full list with bodies. Creating, changing or deleting one takes workspace owner or admin rights, or group admin rights on each of its groups (a response without groups is owner or admin only).
GET
/api/{tenant:minlength(2)}/v{version:apiVersion}/templates/list_canned_responses
- Authorisation
- Minimum role: USER
Request arguments
Request body example
No input arguments
Response
- Status
- 200 (OK)
- Type
- DTO_template[]
- Wrapper
- DTO_response_wrap
- Other statuses
- 400 (BadRequest), 401 (Unauthorized), 403 (Forbidden), 429 (TooManyRequests)
Response body example
DTO_template
| Name | Type | ReadOnly | Description |
| created_by | DTO_reference_user | ReadOnly | For signatures this is the User the signature belongs to, since only the default signature of the replying User is offered on a reply |
| last_updated_by | DTO_reference_user | ReadOnly | Last updated by |
| groups | DTO_reference[] | | Groups the template applies to: required when type is AUTO_REPLY (a group can only be used by one auto reply), optional when type is CANNED_RESPONSE (the groups whose tickets the response is offered on; leave it empty to offer it on every ticket, which only workspace owners and admins may do; every User can still read every canned response) and rejected when type is SIGNATURE |
| sys_attachments | DTO_reference_attachment[] | | Sys attachments |
| id | Int32 | ReadOnly | Assigned by the server, and must be left empty when creating a template |
| created | DateTime | ReadOnly | Set by the server in UTC when the template is first stored |
| last_updated | DateTime | ReadOnly | Set by the server in UTC every time the template is changed |
| name | String | | Between 2 and 100 characters, unique among the auto replies of the workspace, unique among its canned responses and unique per User among signatures |
| is_default | Boolean | | Marks the default signature of the User, stored only when type is SIGNATURE and cleared by the server for every other type |
| type | ENUM template_type | | SIGNATURE for a reply signature, AUTO_REPLY for the response sent automatically on new tickets, or CANNED_RESPONSE for a reusable snippet Users insert into a reply |
| sys_content_rich | DTO_rich_text | | The body of a signature or canned response; for an auto reply it is the static (fallback) text |
| auto_reply | DTO_template_auto_reply | | When auto-reply, the content is passed here |
DTO_reference_user
| Name | Type | ReadOnly | Description |
| profile_pic | String | ReadOnly | Profile pic |
| email | String | ReadOnly | Email |
| id | Int32 | | Id |
| label | Object | ReadOnly | Label |
DTO_reference
| Name | Type | ReadOnly | Description |
| id | Int32 | | The id of the reference |
| label | Object | ReadOnly | Name/Label from referenced object. |
DTO_reference_attachment
| Name | Type | ReadOnly | Description |
| size_kb | Int32 | ReadOnly | Size kb |
| status | ENUM attachment_status | ReadOnly | Status |
| status_message | String | ReadOnly | Status message |
| download_url | String | ReadOnly | Download url |
| id | Int32 | | Id |
| label | Object | ReadOnly | Label |
DTO_rich_text
| Name | Type | ReadOnly | Description |
| plain_preview | String | ReadOnly | Plain preview |
| html | String | | Html |
| editorjs | DTO_editorjs | | Editorjs |
| tiptap | DTO_tiptap | | Tiptap |
| read_minutes | Int32 | | Read minutes |
DTO_editorjs
| Name | Type | ReadOnly | Description |
| time | Int64 | | Time |
| version | String | | Version |
| blocks | DTO_editorjs_block[] | | Blocks |
DTO_editorjs_block
| Name | Type | ReadOnly | Description |
| id | String | | Id |
| type | String | | Type |
| data | Object | | Data |
DTO_tiptap_attrs
| Name | Type | ReadOnly | Description |
| textAlign | String | | Textalign |
| level | Int32 (nullable) | | Level |
| checked | Boolean (nullable) | | Checked |
| id | Int32 (nullable) | | Id |
| alt | String | | Alt |
| title | String | | Title |
| width | String | | Width |
| wrapperStyle | String | | Wrapperstyle |
| containerStyle | String | | Containerstyle |
| files | DTO_tiptap_file_ref[] | | Files |
| href | String | | Href |
| target | String | | Target |
| colspan | Int32 (nullable) | | Colspan |
| rowspan | Int32 (nullable) | | Rowspan |
| color | String | | Color |
| text | String | | Text |
| name | String | | For emoji |
| native | String | | For emoji |
DTO_tiptap_file_ref
| Name | Type | ReadOnly | Description |
| id | Int32 | | Id |
| label | String | | Label |
DTO_template_auto_reply
| Name | Type | ReadOnly | Description |
| sys_content_rich_ai_reply | DTO_rich_text | | Frame that wraps the generated answer, and it must contain the [ai-auto-reply-message] placeholder when ai_reply_enabled is true |
| ai_reply_enabled | Boolean | | When true the answer is generated by AI and merged into sys_content_rich_ai_reply, and at least one of ai_reply_enabled and fallback_reply_enabled must be true |
| fallback_reply_enabled | Boolean | | When true the static sys_content_rich is sent whenever the AI branch produces no approved answer, and the server forces it on for auto replies stored without an AI body |
ENUM attachment_status
| Value | Name | Description |
| 0 | UNKNOWN | UNKNOWN |
| 1 | UNAVAILABLE | UNAVAILABLE, processing in progress |
| 2 | OK | OK |
| 3 | WARNING | WARNING |
| 4 | ERROR | ERROR |
ENUM template_type
| Value | Name | Description |
| 0 | UNKNOWN | UNKNOWN |
| 1 | SIGNATURE | SIGNATURE |
| 2 | AUTO_REPLY | AUTO_REPLY |
| 3 | CANNED_RESPONSE | Workspace-wide reusable reply snippet, inserted into a reply from the ticket view. Optionally
limited to groups; without groups it is offered to every User. |
Generated Sep 15, 2026 19:45