---
schema_version: "1"
id: 90ead7961982e8a61b652d87246c1ed1df2d824b5db5575a8d1ad46163c87bdd
title: TMF621 v4 Trouble Ticket Management - Outbound Notification
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/guides/TMF621/TMF621_notification.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/guide/TMF621_notification.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 1a5c93bbbdd99098780d51bc3c1c5e2ea88b217f363376493301edc1b10938a1
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
# TMF621 v4 Trouble Ticket Management - Outbound Notification

The TMF621 Outbound Notification API enables the configuration of outbound notifications for trouble ticket events, including creation and updates. These notifications encompass critical changes, such as status updates, to ensure relevant stakeholders remain informed. Outbound notifications can be configured to be triggered for change events on the parent entities (Case and CaseTroubleTicket) as well as for relevant sub-resources.  
See [Supported Sub-Resources for TMF Outbound Notifications](#supported-sub-resources-for-tmf-outbound-notifications) for the list of supported sub-resources in scope.

- `/api/notification/troubleTicketCreateEvent`
- `/api/notification/troubleTicketAttributeValueChangeEvent`
- `/api/notification/troubleTicketStateChangeEvent` (status field)

The user must configure the notification framework to detect CDC events and invoke the relevant TMF Open API implementations that generate the event payloads and forward them to the target systems configured within the API.

**note:** - This API has been tested with an external system using TMF-aligned customizations. It may not include all optional fields and may not work out-of-the-box with your system. Customizations will likely be required. We recommend a thorough evaluation to ensure it meets your specific needs.
- The TMF621 Inbound API version 4 is scheduled for deprecation beginning with the Summer’26 release. Clients are encouraged to migrate to version 5.
- To maintain backward compatibility, the API provides a transformation layer that converts version 5 responses into the version 4 structure. This transformation is modular and can be disabled for clients already consuming version 5.

## Available In

This API is available in the managed package and Salesforce platform.

## Prerequisites

- MuleSoft License required: MuleSoft Direct for Communications Cloud (add-on for Communications Cloud) or MuleSoft Anypoint Base Subscription.
- Communications cloud license required: Communications Cloud Growth.

## Assumptions

- The notification uses a fire-and-forget approach. Salesforce does not process or store the response in any objects. MuleSoft logs and tracks all received notifications.
- In alignment with TMF v4 standards for event notifications, the system sends the same payload, which includes the full Case resource and the supported related sub-resources, for all events.
- Access to the target system is authenticated using the OAuth 2.0 Client Credentials grant type.
- Subscriber mechanism is not implemented.
- In case of failure when invoking the target system endpoint, the request is retried up to three times, with a two second interval between attempts.
- The 621 v5 Inbound API is used to retrieve Case-related details that are included in the Event Notification payload sent to the external system
  - [Prerequisite for 621 v5 Inbound API](https://developer.salesforce.com/docs/industries/communications/guide/TMF621v5.html#prerequisites).
  - [Retrieve a Trouble Ticket](https://developer.salesforce.com/docs/industries/communications/references/tmf621v5?meta=Retrieve%2Ba%2BTrouble%2BTicket) method is used to get the Case details.
  - OAuth is used as the authentication method to establish a connection and invoke the Inbound API.
  - TMF621 v5 Inbound API response may include optional fields. According to TMF specifications, if the outbound Event Notification payload contains unsupported optional parameters, the downstream system may reject it with a 4xx error. To avoid this, tailor the payload to include only the optional fields supported by the client.
- Salesforce and MuleSoft do not have a centralized event hub configured by default. Customers are responsible for setting up their own event hub to manage subscribers. Outbound notifications are generated and sent directly to a single, client-defined target endpoint.
- A Case is eligible for TMF621 outbound notifications only when it has an associated `CaseTroubleTicket` through a master–detail relationship. Notification requests to the `/TroubleTicketCreateEvent` endpoint must be configured exclusively on the `CaseTroubleTicket` entity to ensure notifications are triggered when a trouble ticket is created and linked to a Case.
- Configure the Notification Framework to send updates to Case and `CaseTroubleTicket` attributes to the `/TroubleTicketAttributeValueChangeEvent` endpoint. Case status updates must be sent specifically to the `/TroubleTicketStateChangeEvent` endpoint. As noted above, outbound notifications are triggered only for Cases that have an associated `CaseTroubleTicket`.

The following table summarizes the change events supported for the Case and CaseTroubleTicket entities, along with the required configurations to trigger them through the Notification Framework.

**important:** When configuring Object Integration Definitions, ensure you use the exact `RelatedFieldName` values provided in the table below.

| TMF Resource  | SalesforceEntity  | Scenario <br> <div style="width:230px"></div> | changeEventType Supported | Notification Event Path <br> <div style="width:230px"></div> | RelatedFieldName                     |
| ------------- | ----------------- | --------------------------------------------- | ------------------------- | ------------------------------------------------------------ | ------------------------------------ |
| TroubleTicket | CaseTroubleTicket | Creation of a new CaseTroubleTicket record    | Create                    | `/api/notification/troubleTicketCreateEvent`                 | "RelatedFieldName":"Case.CaseNumber" |
|               |                   | Updates to the CaseTroubleTicket attributes   | Update                    | `/api/notification/troubleTicketAttributeValueChangeEvent`   | "RelatedFieldName":"Case.CaseNumber" |
|               | Case              | Updates to the Case attributes                | Update                    | `/api/notification/troubleTicketAttributeValueChangeEvent`   | "RelatedFieldName":"CaseNumber"      |
|               |                   | Updates to the Case.Status field              | Update                    | `/api/notification/troubleTicketStateChangeEvent`            | "RelatedFieldName":"CaseNumber"      |

## Sample Outbound Notification Request

This is a sample payload sent to the target system endpoint for the event Type: `TroubleTicketCreateEvent`.

**note:** The event notification payload is same for all three events (`TroubleTicketCreateEvent`, `TroubleTicketAttributeValueChangeEvent`, `TroubleTicketStatusChangeEvent`). The `eventType` value will differ between the three events.

```
{
  "id": "25250210-3491-11f0-a2d3-528beb976af5",
  "eventId": "0001ade9-3f74-0b99-dbc4-42e73424b774-1",
  "eventTime": "2025-02-11T10:11:41.178Z",
  "eventType": "TroubleTicketCreateEvent",
  "correlationId": "0001ade9-3f74-0b99-dbc4-42e73424b77",
  "timeOccurred": "2025-02-11T10:11:41.178Z",
  "event": {
    "troubleTicket": {
      "creationDate": "Thu Dec 19 17:48:38 GMT 2024",
      "description": "Customer is experiencing slow connection at certain times.",
      "href": "/connect/comms/troubleticket/v5/troubleticket/00001161",
      "id": "00001161",
      "lastUpdate": "Thu May 15 10:55:25 GMT 2025",
      "name": "Slow Connection",
      "priority": "High",
      "status": "Pending",
      "ticketType": "Problem",
      "@type": "TroubleTicket",
      "channel": {
        "id": "1",
        "name": "Email",
        "@type": "ChannelRef"
      },
      "attachment": [
        {
          "attachmentType": "PDF",
          "id": "069Kj00000Puci9IAB",
          "mimeType": "MimeType",
          "name": "7a47ceb2e7af100212d619645e25b0c6333a4f4a",
          "@type": "AttachmentRef"
        },
        {
          "attachmentType": "PDF",
          "id": "069Kj00000PugoWIAR",
          "mimeType": "MimeType",
          "name": "BMS_Invoice_4523470469",
          "@type": "AttachmentRef"
        }
      ],
      "relatedParty": [
        {
          "href": "/services/data/v60.0/sobjects/Account/001Kj00002W5ngsIAB",
          "id": "001Kj00002W5ngsIAB",
          "name": "Molina Family - San Francisco Residence",
          "@referredType": "Account",
          "@type": "RelatedPartyRefOrPartyRoleRef"
        }
      ],
      "note": [
        {
          "author": "005Kj00000CII3rIAH",
          "date": "Mon May 19 06:33:15 GMT 2025",
          "text": "Test Comment",
          "@type": "CaseComment"
        },
        {
          "author": "005Kj00000CII3rIAH",
          "date": "Thu May 15 08:25:31 GMT 2025",
          "text": "hey",
          "@type": "CaseComment"
        }
      ],
      "statusChange": [
        {
          "changeDate": "Thu Dec 19 17:48:38 GMT 2024",
          "status": "Closed",
          "@type": "StatusChange"
        },
        {
          "changeDate": "Thu May 15 10:50:12 GMT 2025",
          "status": "Pending",
          "@type": "StatusChange"
        }
      ]
    }
  }
}
```

## Outbound Event Notifications Field Mappings

| TMF Field           | TMF type | Is it Mandatory ? | Supported | Mappings                                                                                         |
| ------------------- | -------- | ----------------- | --------- | ------------------------------------------------------------------------------------------------ |
| id                  | string   | No                | TRUE      | Mule correlation id                                                                              |
| eventId             | string   | No                | TRUE      | inputPayload.eventId                                                                             |
| eventTime           | string   | No                | TRUE      | inputPayload.commitTimestamp as UTC                                                              |
| eventType           | string   | No                | TRUE      | `TroubleTicketCreateEvent` or `TroubleTicketValueChangeEvent` or `TroubleTicketStateChangeEvent` |
| correlationId       | string   | No                | TRUE      | inputPayload.correlationId                                                                       |
| timeOccurred        | string   | No                | TRUE      | inputPayload.commitTimestamp as UTC                                                              |
| event.troubleTicket | object   | Yes               | TRUE      | TMF621v4 Inbound response payload                                                                |

## Supported Sub-Resources for TMF Outbound Notifications

This section outlines the sub-resources within TMF621 for which outbound notifications can be configured for create and update operations.

**note:** - Refer to [Assumptions](#assumptions) section for essential configuration guidelines and design assumptions required to enable TMF outbound notifications on these sub-resources.
- For each sub-resource listed below, use the RelatedFieldName specified in the table to configure the Object Integration Definition mappings. This ensures that the Salesforce Notification Framework triggers notifications accurately for the corresponding change events.

For each sub-resource listed below, use the RelatedFieldName specified in the table to configure the Object Integration Definition mappings. This ensures the Salesforce Notification Framework triggers notifications accurately for the corresponding change events.

**TMF Sub-resource: Attachment  
Salesforce entity: ContentVersion**

**note:** Since the ContentVersion entity does not maintain a direct reference to its related Case record, the `RelatedFieldName` cannot be configured in the Object Integration Definition mappings. To address this, the API executes a polymorphic SOQL query on `ContentDocumentLink`, which returns all entities linked to a given `ContentDocumentId`—including both the related Case and the User who created the record. The API then identifies the Case by filtering results where the `LinkedEntityId` begins with the Salesforce Case prefix (500).

| TMF Resource | Salesforce Entity | Scenario <br> <div style="width:230px"></div>                | changeEventType Supported | Notification Event Path <br> <div style="width:230px"></div> |
| ------------ | ----------------- | ------------------------------------------------------------ | ------------------------- | ------------------------------------------------------------ |
| Attachment   | ContentVersion    | Upload of a new document on the parent Case                  | Create                    | `/api/notification/troubleTicketAttributeValueChangeEvent`   |
|              |                   | Deletion of an existing document record from the parent Case | Delete                    | `/api/notification/troubleTicketAttributeValueChangeEvent`   |
|              |                   | Updates to an existing document                              | Update                    | `/api/notification/troubleTicketAttributeValueChangeEvent`   |

### Sample Notification Framework Payload Request

Below is a sample payload that is received from the notification framework when an new attachment for a case record is uploaded.

```
[
  {
    "entityId": "068LT000000bBm5YAE",
    "entityName": "ContentVersion",
    "eventId": "0000136c-0559-f574-e320-77abaeed2b6d_1",
    "commitTimestamp": 1753942338000,
    "commitNumber": 1753942337693122572,
    "correlationId": "0000136c-0559-f574-e320-77abaeed2b6d",
    "changedFields": {},
    "changeEventType": "Delete",
    "enrichedFields": {
    "Id": "068LT000000bBm5YAE"
    }
  }
]

```
