Templates
Update
Replaces a template in full, including its type: every writable field is overwritten from the body, so omitting the groups or the auto_reply block clears them rather than leaving them alone (an existing AI auto reply silently falls back to its static body that way).
The id comes from the route and any id in the body is ignored, is_default is only kept for signatures, and editing another User's signature is refused unless the caller is a workspace owner or admin.
PUT
/api/{tenant:minlength(2)}/v{version:apiVersion}/templates/{id}
- Authorisation
- Minimum role: USER
Request arguments
Request body example
Response
- Status
- 200 (OK)
- Type
- DTO_template
- Wrapper
- DTO_response_wrap
- Other statuses
- 400 (BadRequest), 403 (Forbidden)
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) 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 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, or AUTO_REPLY for the response sent automatically on new tickets |
| sys_content_rich | DTO_rich_text | | For backward-compability, this is used as the "static / fallback" auto-reply |
| 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 |
| 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 |
Generated Aug 4, 2026 18:37