Overview
Supporting entities in tSM represent reusable components that can be attached to, owned by, or associated with other records throughout the system. They provide auxiliary features such as comments, file attachments, activity tracking, notifications, and collaboration settings.
These entities share a common structure and relational model based on two core fields — ownerType and ownerId — which define where the entity belongs. Additionally, each supporting entity can have its own type classification (entityType), describing what kind of entity it is or how it behaves.
Core Concepts
Ownership: ownerType and ownerId
All supporting entities inherit from the abstract base type AbstractOwnedEntity.
This design allows them to be universally linked to other records (e.g., Tickets, Customers, Orders) across modules.
| Field | Description | Example |
|---|---|---|
ownerId | Unique identifier (ID) of the record to which the entity belongs. | ownerId = 019a7265-821f-70db-b8fe-f16e300ea061 (the ticket ID) |
ownerType | The type or class of the parent record. | ownerType = "Ticket" |
Together, these fields define the ownership relationship between the supporting entity and its parent.
For example:
A comment added to Ticket
#019a7265-821f-70db-b8fe-f16e300ea061would have:ownerType = "Ticket"
ownerId = 019a7265-821f-70db-b8fe-f16e300ea061
This pattern enables all supporting entities — attachments, comments, worklogs, and others — to be reused and connected flexibly across different modules (CRM, Ticketing, DMS, etc.).
Entity Classification: entityType
In addition to ownership, supporting entities use the entityType (or its specialized form, such as commentType, attachmentType, etc.) to define what kind of item they represent.
| Entity | Type Field | Description | Example Values |
|---|---|---|---|
| Comment | commentType | Context or intent of a comment | Internal Note, Customer Reply, System Message |
| Attachment | attachmentType | Purpose or category of the file | Screenshot, Contract, Invoice, Report |
| Worklog | worklogType | Type of logged activity | Investigation, Implementation, Testing |
| Notification | notificationType | Type of notification or channel | Email, SMS, System Alert |
In short:
ownerType/ownerId→ Where does it belong?entityType→ What kind of thing is it?
This flexible structure allows for consistent linking, filtering, and display logic across all reusable entities in tSM.
Entities Overview
Attachment
The Attachment entity is used to store and manage files related to different records, such as tickets, customers, or orders.
It allows users to upload, view, and organize documents directly within tSM.
- Supports various file formats (PDF, images, Office documents, etc.)
- Configurable visibility and allowed categories (via form designer)
- Commonly used to store contracts, reports, or supporting files
- Fields typically include
attachmentType,name,contentType, anddata
Example usage in SpEL:
@attachmentPublicService.create({
"ownerType": "Order",
"ownerId": #order.id,
"attachmentType": "Invoice",
"name": "Invoice_123.pdf",
"data": #file.encodeBase64()
})
Comment
The Comment entity captures user-generated notes, discussions, and contextual feedback. It supports rich collaboration through threaded views and visibility controls.
- Can be internal (visible only to agents) or external (visible to customers)
- Threaded replies enable structured discussions
- Commonly linked to Tickets, Customers, or Orders
- Typical fields include
commentType,text,visibility,createdBy, and timestamps
Example:
commentType = "Customer Reply"ownerType = "Ticket"ownerId = 12345
Log
The Log entity tracks system or integration events within tSM. It provides a detailed audit trail of system actions, API calls, or process steps.
- Used for monitoring and troubleshooting
- Can be stored in the database or ElasticSearch for advanced querying
- Often includes data like timestamps, severity, source, and correlation IDs
Typical use cases:
- Tracking inbound/outbound integrations
- Recording automated process transitions
- Auditing user or system activity
Notification
The Notification entity manages the delivery of alerts and messages to users, customers, or external systems.
- Supports multiple delivery channels: Email, SMS, API, or in-app
- Messages are defined by templates, ensuring consistent content and formatting
- Can be triggered automatically by workflows or manually by users
- Fields include
notificationType,recipient,template, and delivery metadata
Examples:
- Sending customer updates about ticket progress
- Triggering SMS alerts for system outages
- Generating in-app messages for assigned agents
Sharing
The Sharing entity defines collaboration and access control for records.
- Specifies who can view or edit a given record
- Supports shared access in DMS, Ticketing, and CRM modules
- Each record can have multiple sharing entries with assigned roles or permissions
Example:
| User | Role | Permissions |
|---|---|---|
| Alice | Viewer | Read-only |
| Bob | Editor | Read & Write |
Worklog
The Worklog entity records time spent or activity details related to tickets, tasks, or maintenance items.
- Enables accurate time tracking for operational or billing purposes
- Can differentiate between worklog types (e.g., “Implementation”, “Analysis”)
- Fields include
worklogType,duration,description, andloggedBy - Supports filtering and reporting by user or activity type
Example usage in SpEL:
@worklogPublicService.create({
"ownerType": "Ticket",
"ownerId": #ticket.id,
"worklogType": "Investigation",
"duration": 2.5,
"description": "Analyzed system logs and validated fix."
})
Summary
Supporting entities make the tSM platform highly modular and extensible by providing a unified way to attach contextual information and metadata to any record.
| Concept | Purpose |
|---|---|
ownerId / ownerType | Define where the entity belongs |
entityType | Define what kind of entity it is |
| Reusable design | Enables shared use across all tSM modules |
| Examples | Attachments, Comments, Worklogs, Logs, Notifications, Sharing |
This standardized model ensures consistent integration, reporting, and workflow automation across all tSM components.