Skip to main content

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.

FieldDescriptionExample
ownerIdUnique identifier (ID) of the record to which the entity belongs.ownerId = 019a7265-821f-70db-b8fe-f16e300ea061 (the ticket ID)
ownerTypeThe 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-f16e300ea061 would 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.

EntityType FieldDescriptionExample Values
CommentcommentTypeContext or intent of a commentInternal Note, Customer Reply, System Message
AttachmentattachmentTypePurpose or category of the fileScreenshot, Contract, Invoice, Report
WorklogworklogTypeType of logged activityInvestigation, Implementation, Testing
NotificationnotificationTypeType of notification or channelEmail, 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, and data

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:

UserRolePermissions
AliceViewerRead-only
BobEditorRead & 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, and loggedBy
  • 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.

ConceptPurpose
ownerId / ownerTypeDefine where the entity belongs
entityTypeDefine what kind of entity it is
Reusable designEnables shared use across all tSM modules
ExamplesAttachments, Comments, Worklogs, Logs, Notifications, Sharing

This standardized model ensures consistent integration, reporting, and workflow automation across all tSM components.