Skip to main content
Version: 2.4

Ticket Relationships and Context

This document covers relationship and context DTOs that connect tickets to other tickets, parties, impacted entities, and type registries.

1. Business Meaning

1.1 Ticket-to-Ticket Relationship

TicketRelationship models explicit links between tickets (parent/child, dependency, and others) using relationship type codes.

From business perspective, this creates a controlled ticket graph instead of isolated records. That graph is crucial for major incidents, duplicate suppression, dependency orchestration, and consolidated closure management.

1.2 Impact and Party Context

  • RelatedEntity models technical/business objects affected by or associated with a ticket.
  • RelatedParty models parties/roles involved in ticket handling.

Together, these structures provide operational context required for major-incident handling, cross-ticket consolidation, and business-impact communication.

In telecom/service-assurance use cases, this context is the difference between:

  • "we fixed one ticket" and
  • "we can explain which customers/services were affected, who owns communication, and which technical domain caused the issue."

1.3 How to Configure Relationships and Context

Recommended setup sequence:

  1. Define link semantics in LinkType (parent-child, duplicate, dependency, blocked-by), including reverse labels for UI readability.
  2. Define RelatedEntityType to classify impacted objects (service, resource, customer asset, location, platform component).
  3. Define RelatedPartyType and RelatedPartyRole to standardize actor semantics (requester, affected customer, resolver, supplier, field engineer).
  4. Establish integration naming rules for refType and identifier rules for refId across CRM, inventory, monitoring, and partner domains.
  5. Define minimal required context by ticket type. Example: major incident requires at least one impacted service entity and one accountable owner party.
  6. Use TicketRelationship, RelatedEntity, and RelatedParty as part of ticket lifecycle governance, not only as optional enrichments.

Configuration principles:

  • relationship type semantics must be finite and stable,
  • refType values should map to known system domains, not free text,
  • context should be sufficient for impact communication and RCA, but not overloaded with redundant data,
  • relationship and context rules should be validated in workflow gates for critical ticket types.

1.4 Why Relationship and Context Attributes Exist

Business rationale:

  • ticketId / relatedTicketId: preserve ticket graph topology and enable coordinated execution.
  • type on TicketRelationship: preserves semantic meaning of each edge for automation, analytics, and UI rendering.
  • refType / refId: preserve authoritative pointers to master records in external systems.
  • reason on RelatedEntity: separates root-source context from impacted scope and associated context.
  • relatedPartyType / relatedPartyRole: separate party structure from responsibility semantics.
  • refData and data: preserve snapshot context used during operations even when master data later changes.

Operational outcomes:

  • faster impact communication to business/customer stakeholders,
  • cleaner handover between NOC, care, and field teams,
  • better RCA evidence in post-incident review,
  • reduced duplicate activity on correlated incidents.

1.5 Plain Explanation

Simple explanation for business teams:

  • TicketRelationship tells how tickets are connected,
  • RelatedEntity tells what is affected,
  • RelatedParty tells who is involved and in which role.

If these are configured and used consistently, teams can answer four core questions quickly:

  1. Is this ticket part of a bigger incident?
  2. Which services/customers/assets are impacted?
  3. Who owns communication and who owns technical resolution?
  4. What external records prove this context?

Reference links:


2. Entity Reference: Ticket Relationship

TicketRelationship

Business role: explicit graph edge between tickets used for major-incident coordination, dependency tracking, duplicate handling, and consolidated closure logic across related cases.

FieldTypeRequiredRead-onlyDescription
idUUID?NoNoTicket relationship unique identifier / primary key in UUID format. ID may be assigned by the client using UUIDv4 standard, or it is generated by TSM. This ID SHOULD NOT be displayed to the end user.
ticketIdStringYesNoTicket identifier - UUID or key. In GUI is written: ticketId.key type(tict_link_type.name) relatedTicketId.key. eg.: 'IdMain is parent of idRel'
relatedTicketIdStringYesNoRelated ticket identifier - UUID or key.In GUI is written: relatedTicketId.key type(tict_link_type.reverse_name) ticketId.key, eg.: 'idRel is child of idMain'
typeStringYesNoType of the ticket relationship. This value MUST be one of ticket relationship code from 'Ticket Relationship' registry
descriptionString?NoNoFree text to describe the ticket. It may contain HTML formatting. Default: null.

Interface TreeNode

Business role: projection contract for ticket graph visualizations. It supports business-facing relationship trees used in NOC/SOC dashboards and incident war-room views.

FieldTypeDescription
idStringId.
ttypeStringTtype.
nameStringName.
styleStringStyle.
pstyleStringPstyle.

Business role: projection contract for links in ticket relationship graphs. It preserves relationship semantics for visual analytics and impact navigation.

FieldTypeDescription
idStringId.
typeStringType.
ticketIdStringTicket ID.
relatedTicketIdStringRelated Ticket ID.

RelatedEntity

Business role: references affected or associated business/technical objects (service, resource, customer asset, location, etc.). This aligns with TMF621 relatedEntity and is essential for impact analysis and root-cause tracking.

FieldTypeRequiredRead-onlyDescription
idUUID?NoNoRelated entity unique identifier / primary key in UUID format. ID may be assigned by the client using UUIDv4 standard, or it is generated by TSM. This ID SHOULD NOT be displayed to the end user.
ticketIdUUID?YesNoTicket identifier - UUID.
nameString?YesNoEntity name.
refIdStringYesNoRelated entity ID.
refTypeString?YesNoRelated entity type (Customer, Ticket, EntityInstanceConfiguration, EntityInstance, etc. from EntityType registry). Default: null.
refDataMap<String, Any?>?NoNoJson structure of related entity attributes related to entity. Values are valid in creation time, so they can be different from actual data in master system. Default: HashMap().
typeStringYesNoEntity type. Information about structure or content (SERVICE, RESOURCE, CUSTOMER, OPERATOR...).FK RelatedEntityType.code
subTypeString?NoNoEntity sub type. Code from catalog (MMO_TV ...). Default: null.
dataMutableMap<String, Any?>NoNoJson structure of entity attributes related to ticket. Values are valid in creation time, so they can be different from actual data in master system. Default: HashMap().
placeIdString?NoNoPlace ID. Default: null.
gpsLatDouble?NoNoCoordinates - latitude. Default: null.
gpsLngDouble?NoNoCoordinates - longitude. Default: null.
reasonRelatedEntityReasonYesNoEntity source Default: RelatedEntityReason.RELATED.
parentRelatedEntityIdsMutableList<UUID>YesNoList of parent Entity IDs Default: ArrayList().
typeConfigMutableMap<String, Any?>NoYesMap of related entity type configuration indexed by config code. read only proxy of RelatedEntityType.type.config (pointed by self.type). Value must be a JSON string valid according to characteristics form (go to the Form designer and download JSON Schema specification which can be used to validate the actual value). Default: HashMap().

Enum RelatedEntityReason

ValueMeaning
RELATEDEntity directly related to the ticket (source/context).
IMPACTEDEntity impacted by the ticket.
ASSOCIATEDAssociated entity with contextual relevance.
DECOImpacted entity calculated automatically by decomposition.

RelatedParty

Business role: references involved actors and roles (customer, reporter, resolver, partner, vendor). This aligns with TMF621 relatedParty and supports communication, accountability, and contractual governance.

FieldTypeRequiredRead-onlyDescription
idUUIDYesNoIdentifier of related party.
ticketIdUUIDYesNoTicket identifier - UUID.
nameString?NoNoThe name of the related entity if applicable. Default: null.
relatedPartyTypeStringYesNoCode of related party type. Indicates the data type/structure of related party. I.e. data type/structure about customer/operator etc..FK RelatedPartyType.code
relatedPartyRoleString?NoNoCode of related party role. Indicates the role of related party.FK RelatedPartyRole.code Default: null.
dataMutableMap<String, Any?>NoNoJson structure of entity attributes related to ticket. Values are valid in creation time, so they can be different from actual data in master system. Default: HashMap().
refDataMutableMap<String, Any>?NoNoJson structure of referenced entity attributes related to ticket. Values are valid in creation time, so they can be different from actual data in master system. Default: HashMap().
refIdString?YesNoIdentified of related party in master system.
refTypeStringYesNoType of related party in master system

RelatedEntityType

Business role: governs allowed classes of related entities and their metadata/forms. It standardizes cross-domain context modeling and prevents inconsistent reference payloads.

FieldTypeRequiredRead-onlyDescription
idUUID?NoNoRow unique identifier / primary key in UUID format. ID may be assigned by the client using UUIDv4 standard, or it is generated by TSM. This ID SHOULD NOT be displayed to the end user.
codeStringYesNoCode of this value. It is used whenever the value is referenced from computer program or API. It MUST be unique and SHOULD contain only ASCII characters without spaces (best to use valid programming language identifier).
nameStringYesNoName of this value, this is displayed to the user.
validityFromDate?NoNoBegin of the validity of the value. Default: null.
validityToDate?NoNoEnd of the validity of the value. Default: null.
descriptionString?NoNoDescription of the value, it may be used as a tooltip. Default: null.
localizationDataLocalizationData?NoNoLocalization data of the record attributes Default: LocalizationData().
configMutableMap<String, Any?>NoNoMap of related entity type configuration indexed by config code. Value must be a JSON string valid according to characteristics form (go to the Form designer and download JSON Schema specification which can be used to validate the actual value). Default: HashMap().
entitySpecIdUUID?NoNoEntity specification ID. Default: null.
entityTypeIdUUID?NoNoEntity type ID. Default: null.
iconString?NoNoGraphic element displayed next to the type of notification Default: null.
formString?NoNoForm code. Default: null.
dataTagsList<String>YesNoAdditional data tags (aka labels). Default: ArrayList().

RelatedPartyType

Business role: governs structural types of related parties and integration contracts with master-party domains.

FieldTypeRequiredRead-onlyDescription
idUUID?NoNoRow unique identifier / primary key in UUID format. ID may be assigned by the client using UUIDv4 standard, or it is generated by TSM. This ID SHOULD NOT be displayed to the end user.
codeStringYesNoCode of this value. It is used whenever the value is referenced from computer program or API. It MUST be unique and SHOULD contain only ASCII characters without spaces (best to use valid programming language identifier).
nameStringYesNoName of this value, this is displayed to the user.
validityFromDate?NoNoBegin of the validity of the value. Default: null.
validityToDate?NoNoEnd of the validity of the value. Default: null.
descriptionString?NoNoDescription of the value, it may be used as a tooltip. Default: null.
localizationDataLocalizationData?NoNoLocalization data of the record attributes Default: LocalizationData().
entitySpecIdUUID?NoNoEntity specification ID. Default: null.
entityTypeIdUUID?NoNoEntity type ID. Default: null.
formString?NoNoForm code. Default: null.
dataTagsList<String>YesNoAdditional data tags (aka labels). Default: ArrayList().
configMutableMap<String, Any?>NoNoConfig of the value. Default: HashMap().

RelatedPartyRole

Business role: governs role semantics in ticket context (for example requester, affected customer, assignee, supplier). It enables consistent stakeholder analytics and notification rules.

FieldTypeRequiredRead-onlyDescription
idUUID?NoNoRow unique identifier / primary key in UUID format. ID may be assigned by the client using UUIDv4 standard, or it is generated by TSM. This ID SHOULD NOT be displayed to the end user.
codeStringYesNoCode of this value. It is used whenever the value is referenced from computer program or API. It MUST be unique and SHOULD contain only ASCII characters without spaces (best to use valid programming language identifier).
nameStringYesNoName of this value, this is displayed to the user.
validityFromDate?NoNoBegin of the validity of the value. Default: null.
validityToDate?NoNoEnd of the validity of the value. Default: null.
descriptionString?NoNoDescription of the value, it may be used as a tooltip. Default: null.
localizationDataLocalizationData?NoNoLocalization data of the record attributes Default: LocalizationData().
dataTagsList<String>YesNoAdditional data tags (aka labels). Default: ArrayList().
configMutableMap<String, Any?>NoNoConfig of the value. Default: HashMap().