---
schema_version: "1"
id: 688fe9bb8d7de70eec5d1ebe980ca5c4a7e87e73d7e101586f72c84677c29aeb
title: Extensibility for TMF629 v4 Customer Management API
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/guides/Extensibility/TMF629_extensibility.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/guide/TMF629_extensibility.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 8620bdded51daf7ad502cfba8b5e71fd9bf52a6196422476a07012d6fcf4fdf9
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
# Extensibility for TMF629 v4 Customer Management API

For the TMF629 API, extensibility is enabled through Apex lifecycle hooks and customizable GraphQL queries, allowing customers to adjust request and response payloads without compromising TMF compliance.
Pre-hooks validate or reshape incoming requests, and post-hooks refine or filter responses across all operations such as GET, POST, PATCH, and DELETE.

- Extend the main entity with additional fields
- Map a field from a different or related entity
- Customize WHERE clauses at the main entity level
- Customize WHERE clauses at the sub-resource level
- Apply sorting (ORDER BY) on main and sub-resource results

**important:** - For access methods, prerequisites, and using the API, see [TMF629 v4 Customer Management API](https://developer.salesforce.com/docs/industries/communications/TMF629/TMF629.md).

## Assumptions

The customer or integrator implements the pre-hook and post-hook Apex classes and customizes the GraphQL queries based on the provided interfaces and hooks.

## Interfaces and Hooks

The following table lists interfaces and corresponding lifecycle hooks supported for customizing the TMF629 operations.

| Interface Name            | Hooks Supported                                                                                       | Pre-processing Capabilities <div style="width:290px"></div>            | GraphQL / Payload Customization <div style="width:290px"></div>               | Post-processing Capabilities <div style="width:290px"></div> |
| ------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------ |
| ICustomerManagementGET    | `transformRequest`<br>`applyCustomValidations`<br>`customiseGraphQLQuery`<br>`handlePostOperation`    | Validate permissions, enforce access rules, apply business validations | Modify GraphQL query fields, filters, transformations                         | Refine or enrich API responses                               |
| ICustomerManagementPOST   | `transformRequest`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate creation input and business rules                             | Enrich creation payload with additional fields, metadata, or related entities | Adjust final POST response after persistence                 |
| ICustomerManagementPATCH  | `transformRequest`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate update payloads, enforce conditional rules                    | Modify or enrich mutation payload before update                               | Refine response after patch operation                        |
| ICustomerManagementDELETE | `transformRequest`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate delete permissions, enforce dependency and integrity checks   | Add deletion metadata, apply soft-delete logic, archive records               | Perform cleanup, logging, or response adjustments            |
