TM Forum frameworks

TM Forum frameworks, one language for OSS and BSS

I use TM Forum frameworks to design OSS (operations support systems) and BSS (business support systems) for telecoms operators. This page explains the Business Process Framework (eTOM), the Information Framework (SID), the Functional Framework and ODA (Open Digital Architecture). It follows one order through the Open APIs (application programming interfaces), and shows how closed loops and intent move a network towards autonomy.

  • eTOM processes
  • SID information
  • Functional Framework
  • ODA and the Canvas
  • Open APIs
  • Order to activate
  • Autonomous networks
  • Intent
One order, end to end, through TM Forum Open APIs A customer places an order with the product order component, which reads the catalogue and decomposes the order into a service order. The service order activates the network and records the service in the inventory. An alarm from the network reaches assurance, which looks up the inventory to see which customers are affected, and a completion event returns to the customer. order decompose TMF641 record alarm impact Customerplaces order Product orderTMF622 CatalogueTMF620 Service orderTMF641 Networkactivated InventoryTMF638, 639 AssuranceTMF642 Every hop is a published Open API
Live view · one order, from shop to network and back
Overview

One vocabulary for the whole operator

TM Forum is an industry association for telecoms operators and their suppliers. Its frameworks give the industry one vocabulary for processes, information, systems and interfaces. That shared vocabulary makes OSS (operations support systems) and BSS (business support systems) designs comparable, and lets software from different suppliers fit together.

From point to point links to one shared language Four bands, one above the other. At first only the systems band shows, with red point to point links tangled between a CRM, a catalogue, an order manager, an inventory and an assurance system. Then a processes band appears above, named by eTOM, and an information band, named by SID. The tangles disappear as each system is mapped to one function, and dotted lines join each column. Last, a components band appears below with party, catalogue, product order, service order and inventory components joined by an Open API bus, with messages moving between them. ProcesseseTOM, GB921 InformationSID, GB922 Systemsas they areFunctional Framework ComponentsODA, Open APIs Open APIs Order handling Customer CRM Activation Product Catalogue Provisioning Service Order manager Problem handling Resource Inventory Billing Engaged party Assurance Partycustomers CatalogueTMF620 Product orderTMF622 Service orderTMF641 InventoryTMF638, 639 Point to point: every change touches many links eTOM names the work SID names what the work acts on One system owns each function Components on a shared canvas, joined by Open APIs Process, information, function and interface line up A simplified view. Real estates have dozens of systems and hundreds of processes.

Swipe sideways to see the whole diagram.

Step 1
  1. Many operators grew their OSS and BSS project by project. Each new system was wired straight into the others, so every change touches many interfaces, and nobody can say for certain which system owns an order or a customer.

  2. The Business Process Framework, known as eTOM, names the work: order handling, activation, provisioning, problem handling and billing. With shared names, two teams or two suppliers can compare their processes without arguing about words.

  3. The Information Framework, known as SID, names the things that work acts on: customers, products, services, resources and partners, and how they relate. It becomes the base of a common data model and of every API payload.

  4. The Functional Framework names the functions software must provide. Mapping each system against it shows overlaps, such as two catalogues, and gaps, such as no service inventory. The aim is one owner for each function.

  5. ODA turns those functions into components that run on a shared platform, the ODA Canvas, and talk only through Open APIs. Hand built point to point links give way to published contracts that any supplier can implement.

  6. The layers line up. A process acts on information, a function holds it, and a component exposes it through an API. That alignment lets me trace a requirement from a process all the way down to an interface, and back.

The frameworks at a glance

FrameworkAlso known asThe question it answersHow I use it
Business Process FrameworkeTOM, document GB921What work does an operator do?Map processes as they are, agree scope and find gaps in a high level design
Information FrameworkSID, document GB922What does that work act on?Name entities and relationships, and shape API payloads and the data model
Functional FrameworkFormerly the Application Framework and TAM (Telecom Application Map), document GB929Which functions must software provide?Map systems to functions, find overlaps and gaps, and plan what to retire
Open Digital ArchitectureODAHow should the software be built and joined?Set the target: components on a canvas, joined by Open APIs
Open APIsTMF numbers, such as TMF622How do components and partners talk?Specify every interface between systems, and with partners
Autonomous NetworksLevels L0 to L5How far can operations run themselves?Set an automation roadmap and measure progress against it

The document numbers are TM Forum's own. Each framework is revised in regular releases.

Reference models, not products

TM Forum is an industry association of more than 800 member companies: operators, suppliers and integrators. Its frameworks describe what good looks like, so buyers and suppliers can compare like with like. They are not software.

The Open Digital Framework

TM Forum launched the Open Digital Framework in 2019. It brings ODA, the Open APIs, data and AI (artificial intelligence) standards and reference implementations together. It grew out of Frameworx, the older name for the set of eTOM, SID and the Application Framework.

Catalysts and conformance

Catalysts are proofs of concept: operators set a problem and suppliers build a solution over a few months, then show it at TM Forum events. Conformance certification tests a product against an API or component specification.

Processes, eTOM

The Business Process Framework, the work an operator does

The Business Process Framework, still widely called eTOM (enhanced Telecom Operations Map), is a map of everything a telecoms operator does. It is a grid. Columns follow work from strategy to operations, and rows follow the domains: market and sales, product, customer, service, resource and partners. Each cell decomposes into processes, level by level.

The eTOM map, simplified A simplified eTOM map. A customer bar runs across the top. Below it, strategy, infrastructure and product has three columns and operations has four: support and readiness, fulfilment, assurance, and billing and revenue. Six domain rows cross the columns: market and sales, product, customer, service, resource and engaged party. Enterprise management runs along the bottom. Choosing a state highlights level 0, one operations column with its level 2 processes, the domain rows, or a ladder showing how eTOM decomposes from level 0 to level 4. Customer Strategy, infrastructure and product Operations Strategyand commit Infrastructurelifecycle Productlifecycle Support andreadiness Fulfilment Assurance Billing andrevenue Market and sales Product Customer Service Resource Engaged party Orderhandling Configure andactivate Resourceprovisioning Problemhandling Serviceproblems Resourcetrouble Bill invoicemanagement Guiding andmediation Mediation andreporting Enterprise management: strategy, risk, finance, people, knowledge Level 0Strategy, infrastructure and product; operations; enterpriseLevel 1Groupings: a domain row crossed with a columnLevel 2Processes, such as order handling in customer fulfilmentLevel 3Steps inside a process, each with inputs and outputsLevel 4 and belowFiner steps, flows and tasks where a design needs them

Swipe sideways to see the whole diagram.

Level 0. eTOM splits an operator into three areas. Strategy, infrastructure and product plans and builds what the operator sells. Operations runs it day to day. Enterprise management covers what any company does, from finance to risk. The customer sits above them all.

Fulfilment turns an order into a working service: order handling for the customer, service configuration and activation, and resource provisioning. This column is where the order to activate flow on this page lives.

Assurance keeps services working: problem handling for the customer, service problem and quality management, and resource trouble management. Alarms, tickets and service level reports belong here.

Billing and revenue management turns usage and charges into bills: bill invoice management for the customer, service guiding and mediation, and resource mediation and reporting, which collect and clean usage records.

Domains are the rows: market and sales, product, customer, service, resource and engaged party, which covers suppliers and partners. They line up with the SID domains and the Functional Framework, so a process, its data and its system share one place.

Levels. eTOM decomposes level by level. Level 0 is the business view, level 1 the groupings, level 2 the processes, and level 3 and below the steps. I map an operator's real processes at level 2 or 3, which is detailed enough to scope a design and to compare suppliers.

Animation

How I use eTOM

  1. Scope with it. I list the level 2 processes a programme touches, so everyone agrees what is in scope and what is not.
  2. Map what exists. I walk real orders and faults through the map, team by team and system by system, and note where work is manual or duplicated.
  3. Compare suppliers. I ask each supplier which eTOM processes their product covers, so overlaps and gaps show before contracts are signed.
  4. Write requirements. Requirements hang off a process, which keeps them traceable from the business need to the API that serves it.
  5. Measure. Process level metrics, such as order fallout or time to restore, give a baseline for automation work.
  6. Do not over model. eTOM is a reference, not a process to copy. I go deep only where a design decision depends on it.

Fulfilment, assurance and billing

Operators often call the three operations columns FAB (fulfilment, assurance and billing). Most OSS and BSS change lands in one of them, so they are where I start.

eTOM and ITIL

eTOM describes a telecoms business. ITIL, formerly the Information Technology Infrastructure Library, describes IT (information technology) service management. They overlap in assurance, where problem handling meets incident and problem management, and TM Forum has published guidance on using the two together. My ITIL page covers the service management side.

Processes, not organisation

A process box is not a team. One team may run several processes, and one process may cross several teams. Mixing the two up is a common mistake.

Information, SID

The Information Framework, what the work acts on

The Information Framework, known as SID (Shared Information/Data model), names the things an operator manages and how they relate. Its most useful idea for network people is the chain from product to CFS (customer facing service) to RFS (resource facing service) to resource, with a specification for each one in the catalogue.

Product, service and resource in the SID A party, a person or company, plays the role of customer. To the right are two rows. The top row is the catalogue: a product offering, a customer facing service specification, a resource facing service specification and a resource specification. The bottom row is the inventory: the product on the customer's account, the customer facing service, the resource facing service and the resources. Dashed lines show each instance created from its specification, and arrows show each level realised by the next. The last step sends messages down every column and along the inventory row. Parties Catalogue: what can exist Inventory: what does exist plays role Partyperson, company Customera party role Offeringprice and terms Producton the account CFS specwhat is sold CFSSD-WAN branch RFS spechow it is built RFStunnels, policy Resource specdevice types Resourcesrouter, IPs One company, many roles: customer, supplier, partner Offering: SD-WAN branch, 36 months, monthly price Product: the instance on this customer's account CFS: SD-WAN branch, two paths, 100 Mb/s RFS: overlay tunnels, a VLAN (virtual local area network) and a QoS policy Resources: an edge router, two ports, IP addresses, a licence The catalogue drives the inventory, column by column Simplified from the SID product, service and resource domains. Real models carry many more entities.

Swipe sideways to see the whole diagram.

Step 1
  1. A party is a person or an organisation. Customer is one role a party plays, and supplier and partner are others. Keeping the party apart from its roles stops the same company being stored three times, once per system.

  2. The catalogue holds product offerings, which add price and terms to a product specification. One specification, such as an SD-WAN (software defined wide area network) branch, can sit behind several offerings for different markets or contract lengths.

  3. When an order completes, a product instance appears in the product inventory, on the customer's account. Billing and customer care read from here. The dashed line shows that it was created from its specification.

  4. A CFS is the service as the customer sees it: an SD-WAN branch with two paths and 100 Mb/s. It describes what is delivered and hides how the network delivers it.

  5. An RFS is what the network must provide to deliver it: overlay tunnels, a VLAN (virtual local area network) and a QoS (quality of service) policy. The customer never sees these, and they can change without changing the product.

  6. Resources are the logical and physical things in use: an edge router, its ports, IP (Internet Protocol) addresses and a licence. They live in the resource inventory, which should match what the network really has.

  7. Every instance has a specification in the catalogue. The catalogue says what can exist, and the inventory says what does. That pattern is what lets orchestration decompose an order without a person drawing it each time.

The main domains

DomainExample entitiesWhere it shows up
CustomerCustomer, customer account, customer billCRM (customer relationship management), billing, self service
ProductProduct offering, product specification, product, priceCatalogue, product inventory, ordering
ServiceCustomer facing service, resource facing service, service specificationService catalogue, service inventory, orchestration
ResourceLogical resource, physical resource, resource specificationNetwork inventory, activation, assurance
Market and salesMarket segment, sales channel, sales leadMarketing and sales systems
Engaged partyParty, party role, agreementPartner and supplier management

Domain names follow recent SID releases, which group partners and suppliers as engaged parties. Older material calls the domain supplier and partner.

Model, not schema

SID is a conceptual model in UML (Unified Modeling Language). I use it to name things and their relationships, then derive a physical schema per system. Copying it table for table makes a database nobody can query.

Aggregate business entities

Each domain splits into ABEs (aggregate business entities), groups of closely related entities such as customer bill or service performance. ABEs are a handy unit for deciding which system owns which data.

The API link

The Open API payloads are built from SID entities. A product order in TMF622 carries product, product offering and party references that a SID literate team will recognise at once.

Systems, Functional Framework

The Functional Framework, which system does what

Most OSS and BSS estates grew system by system, so several systems do the same job and some jobs belong to nobody. The Functional Framework lists the functions an operator's software must provide. Mapping systems against it is the first step I take in any transformation, because it shows what to keep, merge, build and retire.

Mapping an estate to the Functional Framework Six systems on the left and six functions on the right. Lines map each system to the functions it performs. Red lines then mark overlaps: two CRMs on customer management, two catalogues, and two resource inventories. A cross marks service inventory, which no system owns. The last step shows a target for each function, such as keeping one CRM, building a service inventory and retiring the spreadsheets. Systems today Functions CRM, legacy CRM, acquired Billing suite Order manager Spreadsheets Network manager Customer management Product catalogue Product ordering Service inventory Resource inventory Fault management No system owns it Keep one CRM One catalogue for all Keep the order manager Build a service inventory Discover, then retire sheets Keep, and link to services Six systems, six functions: three overlaps and one gap An indicative estate. Real mappings run to hundreds of functions.

Swipe sideways to see the whole diagram.

Step 1
  1. I start with an inventory of every system that touches orders, services and resources, including the spreadsheets. Acquisitions leave duplicates, and old projects leave systems nobody admits to owning.

  2. Each system is mapped against the functions in the Functional Framework that it really performs, which is often more, or less, than its name suggests. A billing suite that also holds the product catalogue is a common example.

  3. Two systems on one function means two versions of the truth: two customer records, two catalogues, or an inventory in the network manager and another in spreadsheets. Each overlap needs one master.

  4. A function with no system is done by people, if at all. Here nothing holds the service inventory, so nobody can say which customers a failed router affects.

  5. The target gives each function one owner. Some systems stay, some lose a role, and some retire. The order of that work becomes the transformation roadmap, which I tie to the processes it improves.

What I capture in a function map

For each function I recordWhy it matters
The owning system, and any others that touch itShows overlaps and who masters the data
The data it masters, named with SID entitiesStops two systems claiming the same record
The processes it serves, named with eTOMTies the system to the work and its metrics
Its interfaces, and which are Open APIsShows how much point to point work remains
Its lifecycle: keep, change, replace or retireTurns the map into a roadmap with dates

From TAM to Functional Framework

The Functional Framework grew from the Application Framework, also called TAM (Telecom Application Map). The newer name reflects that it describes functions, not products, so one product can span many functions.

Same domains again

Its domains line up with eTOM and SID, so a function sits beside the processes that use it and the data it holds. That alignment is what makes the three useful together.

A fair test for suppliers

Asking a supplier to map their product against the framework shows quickly whether it really covers a function, or relies on a partner or on custom work.

ODA

Open Digital Architecture, components on a shared canvas

ODA (Open Digital Architecture) is TM Forum's blueprint for modular OSS and BSS. Software is split into components, each owning a clear set of functions and data. Components run on a shared platform called the ODA Canvas and talk only through Open APIs (application programming interfaces) and events, so a component from one supplier can be swapped for another.

Components on the ODA Canvas Three consumers at the top, a shop and app, an agent desktop and a partner, call through an API gateway and service mesh into the ODA Canvas. Inside the canvas, party, catalogue, product order, service order, inventory and alarm components sit on a shared bus of Open APIs and events, grouped into the party, core commerce and production blocks. Orders flow from the shop to the product order component, then on to the service order and the inventory, while alarms are matched against the inventory. Five operators along the bottom manage the components. ODA Canvas on Kubernetes Party Core commerce Production Open APIs and events API gateway and service mesh: security, throttling, routing Shop and appcustomers Agent desktopcontact centre Partnerwholesale PartyTMF632 CatalogueTMF620 Product orderTMF622 Service orderTMF641 InventoryTMF638, 639 AlarmsTMF642 Componentoperator APIoperator Identityoperator Dependencyoperator Secretsoperator Operators watch each component and set up its gateway routes, identity and dependencies.

Swipe sideways to see the whole diagram.

Animation
Deploying a component onto the canvas A component package with its specification on the left, listing what it exposes and depends on. The component operator in the middle reads it and hands parts to three operators on the right. The API operator configures the gateway. The identity operator registers roles. The dependency operator finds the components that provide the APIs it needs. A conformance test kit below checks the result. exposes TMF622depends on TMF620, TMF641management functionsecurity function ExposedAPI IdentityConfig DependentAPI Packagechart and spec Componentoperator APIoperator Identityoperator Dependencyoperator Gatewayroutes, limits Identityroles, tokens ProvidersTMF620, TMF641 Conformancetest kit, CTK The spec says what the component offers and needs One custom resource in Kubernetes Every API goes through the gateway Roles registered with the canvas identity service Dependencies found on the canvas, not hard coded Tested on a compliant canvas, then certified

Swipe sideways to see the whole diagram.

Step 1
  1. A supplier ships a component as a package, often a Helm chart, with a component specification. The specification lists the APIs the component exposes, the APIs it depends on, and its management and security functions.

  2. Installing the package creates a component resource in Kubernetes. The component operator reads it and splits it into smaller resources: one per exposed API, one per dependent API, and one for its identity settings.

  3. The API operator publishes each exposed API through the canvas gateway or service mesh, which adds security, throttling and routing. Nothing calls the component directly, so every component is reached the same way.

  4. The identity operator registers the component's roles with the canvas identity service. Access is then controlled the same way for every component, whoever supplied it.

  5. The dependency operator finds which component on the canvas provides each API this one needs, such as the catalogue and service ordering, and tells it where to call. Nobody hard codes an address.

  6. The CTK (conformance test kit) runs against the component on a compliant canvas. TM Forum began certifying commercial components against its ODA component specifications in January 2025.

The ODA blocks

ODA blockWhat it coversExample components
Party managementPeople and organisations, their roles, accounts and agreementsParty, party role, agreement
Core commerce managementWhat is sold, to whom and for how muchProduct catalogue, product order capture, product inventory, billing account
ProductionHow it is delivered and kept workingService order, service and resource inventory, activation, alarms
Intelligence managementAnalytics and AI across the other blocksData insight, prediction, closed loop decisions
Engagement managementChannels and user experiencePortals, apps, agent desktops
Canvas operatorsThe platform services every component usesComponent, API, identity and dependency management

Block names follow TM Forum's ODA material. The component list grows with each release, and some specifications are still being written.

Why components

A component does one job and exposes it through standard APIs, so it can be bought, replaced or scaled on its own. That is the opposite of a suite where every part depends on every other.

An open canvas

The canvas is the runtime: Kubernetes, a gateway, identity and observability, with operators that manage components. A reference canvas is open source, and Microsoft released assets for running one on Azure in November 2024.

Ready for ODA is not ODA

A product with a few certified APIs is not a set of ODA components. I ask which component specifications a product meets, and whether it runs on a standard canvas or brings its own platform.

TM Forum's models sit in the industry part of the Enterprise Continuum in TOGAF (The Open Group Architecture Framework), as my TOGAF page explains.

Open APIs

Open APIs, contracts every supplier can meet

The Open APIs are TM Forum's standard interfaces between OSS and BSS functions, and between operators and their partners. Each has a number, such as TMF622 for product ordering, a data model drawn from SID, and a conformance test. Starting an integration from an Open API means the contract is already written, reviewed and testable.

The APIs I meet most

AreaAPINameWhat it holds
ProductTMF620Product Catalog ManagementOffers, specifications and prices
ProductTMF679Product Offering Qualification ManagementCan this offer be sold here?
ProductTMF622Product Ordering ManagementCustomer orders and their state
ProductTMF637Product Inventory ManagementProducts a customer has
ServiceTMF633Service Catalog ManagementService specifications
ServiceTMF645Service Qualification ManagementCan the network deliver it?
ServiceTMF641Service Ordering ManagementService orders, including from partners
ServiceTMF640Service Activation ManagementActivate and configure services
ServiceTMF638Service Inventory ManagementServices that exist
ResourceTMF634Resource Catalog ManagementResource specifications
ResourceTMF652Resource Ordering ManagementResource orders
ResourceTMF639Resource Inventory ManagementResources that exist
AssuranceTMF642Alarm ManagementAlarms in one format
AssuranceTMF621Trouble Ticket ManagementFault tickets with customers and partners
AssuranceTMF656Service Problem ManagementProvider side service problems
AssuranceTMF657Service Quality ManagementService quality objectives and reports
Party and placeTMF632, TMF669Party Management, Party Role ManagementPeople, organisations and their roles
Party and placeTMF673, TMF674Geographic Address Management, Geographic Site ManagementAddresses and sites
CommonTMF688Event ManagementPublishing and subscribing to events
CommonTMF921Intent ManagementIntents and intent reports

A selection. TM Forum lists more than 70 Open APIs, in version 4 and the newer fifth generation, which adds event driven and intent based patterns.

Try it: find the right Open API

Choose a job and see which TM Forum Open API covers it. I use this mapping when I write interface requirements, so every integration starts from a published contract rather than a custom one.

Each choice shows the Open API that fits, its main resources and a typical call. Paths are shown relative to the API's base path.

Open API
TMF622 Product Ordering Management
Main resources
productOrder, cancelProductOrder
Typical call
POST /productOrder
ODA block
Core commerce
Usually called by
Shops, apps, agent desktops, partners

TMF622. The front door for every order. States run from acknowledged through inProgress to completed, or to partial, failed or cancelled.

The patterns every Open API shares

  1. Web standards. Every API is a REST (representational state transfer) interface with JSON (JavaScript Object Notation) payloads built from SID entities, described in OpenAPI.
  2. The same verbs. GET a list or one item, POST to create, PATCH to update and DELETE where allowed. Lists take filters, fields to trim the reply, and offset and limit to page.
  3. Tasks for actions. An action that is not a simple update becomes a task resource, such as cancelProductOrder.
  4. Events, not polling. A consumer registers a listener with POST /hub and a callback address, then receives events such as a state change instead of polling.
  5. Extension by type. @type, @baseType and @schemaLocation let an operator extend a payload without breaking the standard.
  6. Versions in the path. The major version sits in the base path, for example /tmf-api/productOrderingManagement/v4/, so v4 and v5 can run side by side during a migration.

An indicative product order for an SD-WAN branch, the reply, a listener registration and a trimmed status check. Identifiers are examples.

POST /tmf-api/productOrderingManagement/v4/productOrder
{
  "externalId": "PO-1042",
  "requestedCompletionDate": "2026-11-20T09:00:00Z",
  "relatedParty": [{ "id": "C-7731", "role": "Customer", "@referredType": "Organization" }],
  "productOrderItem": [{
    "id": "1",
    "action": "add",
    "productOffering": { "id": "SDWAN-BR-100", "name": "SD-WAN branch 100" },
    "product": {
      "productCharacteristic": [
        { "name": "bandwidth", "value": "100 Mbps" },
        { "name": "paths", "value": 2 }
      ],
      "place": [{ "id": "SITE-221", "role": "installationAddress", "@referredType": "GeographicSite" }]
    }
  }],
  "@type": "ProductOrder"
}

201 Created   { "id": "8a3f", "state": "acknowledged", ... }

POST /tmf-api/productOrderingManagement/v4/hub
{ "callback": "https://crm.example.net/listener", "query": "eventType=ProductOrderStateChangeEvent" }

GET /tmf-api/productOrderingManagement/v4/productOrder/8a3f?fields=state,completionDate
Order to activate

Order to activate, one order through the APIs

The clearest way to see the frameworks working together is to follow one order. A customer buys an SD-WAN branch. The order passes through the catalogue, product ordering, service ordering, activation and the inventories, each step behind an Open API, and events report progress back to the customer.

Order to activate across the Open APIs A sequence diagram with six lanes: channel, catalogue, product order, service order, activation and inventory. Arrows appear one step at a time: the channel reads the catalogue, checks qualification, and posts a product order, which is acknowledged. The product order posts a service order, the service order activates the service through the controller, and activation records resources and services in the inventory. Completion events then flow back from the service order to the product order and on to the channel. GET productOffering POST qualification qualified POST productOrder 201 acknowledged POST serviceOrder POST service resource, service event: completed event: completed to the controller Channelshop, agent CatalogueTMF620, 679 Product orderTMF622 Service orderTMF641 ActivationTMF640, 652 InventoryTMF637, 638, 639

Swipe sideways to see the whole diagram.

Step 1
  1. The channel reads offers and prices from the product catalogue through TMF620. Every channel reads the same catalogue, so the shop, the contact centre and partners all sell the same thing at the same price.

  2. Before taking the order, the channel asks through TMF679 whether this offer can be sold at this site. Behind the scenes that often calls service qualification, TMF645, to check coverage and capacity.

  3. The channel posts a product order through TMF622. It is validated against the catalogue and acknowledged with an identifier. The channel registers a listener so it hears about every state change.

  4. Order orchestration reads the catalogue to break each order item into the services behind it, then posts a service order through TMF641. The product order moves to inProgress.

  5. Service order management activates the service through TMF640, and orders resources through TMF652 where something must be allocated or installed. Activation drives the domain controller, such as an SD-WAN manager.

  6. Activation records the resources it used in the resource inventory, TMF639, and the service in the service inventory, TMF638. The links between them are what assurance needs later.

  7. State change events flow back up: the service order completes, then the product order, and the product appears in the product inventory, TMF637. Billing starts from there, and the channel tells the customer.

Try it: follow an order, and break it

Pick a product and a fault. The table shows each API call in order, and the state the product order shows the customer. The steps are simplified, but the states and the faults are the ones I design fallout handling for.

Order states follow TMF622: acknowledged, inProgress, pending, held, partial, completed, failed, rejected and cancelled. How an operator uses each one is agreed in its own design.

#APIWhat happensProduct order
1TMF679Qualify the offer at the sitequalified
2TMF622Create the product orderacknowledged
3TMF641Decompose to a service order: SD-WAN branch, 100 Mb/s, two pathsinProgress
4TMF652Resource order: ship and install an edge routerinProgress
5TMF640Activate overlay tunnels and a branch policyinProgress
6TMF639, TMF638Record an edge router, a licence and IP addresses, then the serviceinProgress
7TMF622 eventProduct order completed, product added to TMF637completed

Completed. Every call succeeded, so the product order completes, the product appears in the product inventory and billing can start.

Orchestrate from the catalogue

Decomposition rules live in the catalogue, not in code. A new product then needs new catalogue entries, not a new release of the order manager.

Design for fallout

Some orders always fail: a site that cannot be served, missing details, a stuck activation. I design the fallout queue, the retries and the rollback as carefully as the happy path.

Events beat polling

Long running orders report progress through events to registered listeners. Polling every few seconds from every channel loads the order manager and still misses states.

Autonomous Networks

Autonomous networks, from manual to self running

TM Forum's Autonomous Networks work describes how far network and service operations can run themselves, on six levels from L0, fully manual, to L5, fully autonomous. Operators use the levels to set targets and to measure progress, one workflow at a time.

Autonomous network levels L0 to L5 Six stairs rising from left to right, labelled L0 manual operation, L1 assisted operation, L2 partial autonomy, L3 conditional autonomy, L4 high autonomy and L5 full autonomy. Under each stair a bar shows, as an illustration only, the share of work moving from people to the system. Each step highlights one level and describes what the system does at that level. L0Manualoperation L1Assistedoperation L2Partialautonomy L3Conditionalautonomy L4Highautonomy L5Fullautonomy people system illustration only, not a TM Forum measure People watch, analyse, decide and act The system runs set, repetitive sub tasks Closed loops in some units and domains Senses change and adapts, within domains Predicts and acts across domains Closed loops across every service and domain

Swipe sideways to see the whole diagram.

Step 1
  1. Every dynamic task is done by people. Systems may raise alarms, but people watch, find the cause, decide the fix and type it in. Many fault and change processes still sit here.

  2. The system carries out certain predefined, repetitive sub tasks, such as a script or playbook a person chooses to run. It saves time on each task, but people still drive every decision.

  3. Closed loop operation for certain units in certain environments. The system can detect and fix known faults on its own inside one domain, using rules and policies that people wrote.

  4. The system senses changes in its environment in real time and adjusts its own operation within certain domains. This is where intent based, closed loop management starts.

  5. Predictive or active closed loops across domains, driven by service and customer experience. The system analyses and decides in more complex, cross domain situations, and people supervise.

  6. Closed loop automation across every service, every domain and the whole lifecycle. TM Forum describes it as the goal for network evolution, not a near term target.

Try it: a quick autonomy check for one workflow

Pick one workflow, such as fixing a fault in the transport network, and answer for how it really runs today, not how it should.

Indicative level
L1, assisted operation
Weakest stage
Finding the cause

L1, held back by analysis. People still find the cause of most faults, so the loop cannot close on its own. I would start with root cause rules for the most common fault types, such as a fibre cut or a failed power supply.

A loop is only as autonomous as its weakest stage, so the level here is set by the lowest answer, and widened by the last one. TM Forum's formal method is its Autonomous Network Levels Evaluation Methodology, IG1252.

How I build an autonomy roadmap

  1. One workflow at a time. I pick workflows such as fault to fix, or order to activate, rather than rating a whole operator with one number.
  2. Baseline each stage. Execution, monitoring, analysis and decision each get a level, because the weakest one caps the loop.
  3. Fix data first. Closed loops act on inventory and topology. If the inventory is wrong, automation makes mistakes faster.
  4. Measure the outcome. Share of faults fixed without a person, time to restore and change success rate show whether a level really moved.
  5. Keep people in charge. Every loop has limits, an audit trail and a way for a person to stop it. The closed loop specification from ETSI (the European Telecommunications Standards Institute) also covers people supervising loops.
  6. Tie it to the roadmap. Each step up the levels becomes a funded item in the roadmap, with the processes and APIs it changes.
Intent

Intent based operation, say what, not how

Higher autonomy levels depend on intent: stating the outcome a service needs and letting the network work out how to deliver it. TM Forum standardises the interface for this as the Intent Management API, TMF921. An intent handler turns the intent into policy for closed loops and reports back on whether the intent is being met.

An intent driving a closed loop An intent owner on the left sends an intent, video meetings at the Leeds office with latency under 50 ms, to an intent handler that implements TMF921. The handler sets policy for a closed loop of four stages, monitor, analyse, decide and act, which turns continuously. Act sends changes to a network domain, and the domain sends telemetry back to monitor. Monitor feeds an intent report back to the handler, which reports to the owner whether the intent is met. intent report change telemetry policy Intent ownerservice or customer Intent handlerTMF921 Monitor Analyse Decide Act Network domainRAN, core, transport Video meetings, Leeds:latency under 50 ms an indicative intent

Swipe sideways to see the whole diagram.

Animation
IdeaWhat it meansWhere it is defined
IntentA statement of an outcome, with expectations to meet, not the steps to get thereTM Forum Intent Ontology, TMF921
Intent owner and handlerThe owner states the intent; the handler works out how to meet it, and may pass sub intents downTMF921 Intent Management API
Intent reportWhether each expectation is met, so the owner can accept, change or withdraw the intentTMF921, resource intentReport
Closed loopMonitor, analyse, decide and act, repeated, with policies and limits set by peopleTM Forum Autonomous Networks; ETSI ZSM (zero touch network and service management)
Mobile network intentsIntent driven management services for mobile networks3GPP (3rd Generation Partnership Project) technical specification TS 28.312, from SA5 (Service and System Aspects working group 5)

TMF921 reached version 5 in the fifth generation of Open APIs. The ontology lets owners and handlers from different suppliers agree what an expectation means.

Outcomes, not commands

An intent says what must be true, such as a latency target at a site. The handler decides the configuration. That lets the network change how it meets the target without the business system changing at all.

Loops inside loops

A business intent becomes service intents, then resource intents, each with its own handler and loop. A loop that cannot meet its target escalates to the one above.

Reports keep it honest

Every intent needs a report. Without one, automation becomes a black box, and nobody can tell a met target from a silent failure.

Other standards

TM Forum and the other standards, who owns which layer

TM Forum is one of several bodies shaping how operators automate. MEF (first named the Metro Ethernet Forum, now Mplify), ETSI, 3GPP and the IETF (Internet Engineering Task Force) each cover different layers and interfaces. A sound design says which standard governs each layer, and maps the interfaces between them.

Where TM Forum fits among the standards A stack of five layers: business and customer, service orchestration, resource orchestration, controllers, and the network. A customer and a partner operator sit to the right. Choosing a standards body highlights the layers it covers and labels them. TM Forum covers the business, service and resource layers. MEF LSO adds its Cantata, Legato, Presto, Adagio, Sonata and Interlude reference points. ETSI adds NFV and ZSM, 3GPP adds SA5, and the IETF adds YANG models and protocols. Business and customerBSS, catalogue, orders Service orchestrationend to end services Resource orchestrationdomains, NFV, slicing ControllersSDN, element managers NetworkRAN, core, transport, cloud eTOM, SID, ODA, TMF622 TMF641, TMF640, TMF921 TMF652, TMF639, TMF642 Business applications Service orchestration Infrastructure control Element control ZSM: end to end closed loops NFV MANO: NFVO, VNFM, VIM Intents for mobile, TS 28.312 SA5: RAN, 5G core, slicing Service models: L3SM, L2SM YANG, NETCONF, RESTCONF LegatoPrestoAdagioCantataSonataInterlude Customerenterprise portal Partner operator Partnerbusiness apps Partnerorchestration Simplified. Each body covers more than its box here.

Swipe sideways to see the whole diagram.

TM Forum is strongest in the business and service layers: eTOM, SID and ODA for the operator's own OSS and BSS, and Open APIs such as TMF622, TMF641 and TMF921 for orders and intents. It reaches the resource layer through resource ordering, inventory and alarms.

MEF LSO (Lifecycle Service Orchestration) names the reference points between layers: Legato from business applications to orchestration, Presto to infrastructure control and Adagio to element control. Cantata faces the customer, and Sonata and Interlude join operators. MEF renamed itself Mplify in 2025.

ETSI NFV (network functions virtualisation) defines MANO (management and orchestration): an NFVO (NFV orchestrator), VNFMs (virtual network function managers) and a VIM (virtualised infrastructure manager). ETSI ZSM (zero touch network and service management), formed in December 2017, defines end to end closed loops.

3GPP SA5 defines management for mobile networks, including the RAN (radio access network) and the 5G core, network slicing, and intent driven management in TS 28.312. A TM Forum service order for a network slice ends up in these interfaces.

The IETF defines YANG (Yet Another Next Generation) data models and the NETCONF (Network Configuration Protocol) and RESTCONF protocols that controllers use to configure devices. It also defines customer service models in RFCs (Requests for Comments): the layer 3 VPN (virtual private network) service model (L3SM) in RFC 8299, and the layer 2 VPN service model (L2SM) in RFC 8466.

Animation
LSO reference pointBetweenWhat it carries
CantataThe customer and the operator's business applicationsCustomer orders, quotes, tickets and bills
AllegroThe customer and the operator's service orchestrationCustomer supervision and control of dynamic services
LegatoBusiness applications and service orchestrationService orders and status inside the operator
SonataThe business applications of two operatorsWholesale quotes, orders, inventory and tickets
InterludeThe service orchestration of two operatorsCoordinating part of a service inside a partner's domain
PrestoService orchestration and infrastructure controlManaging the infrastructure, such as SDN (software defined networking) controllers
AdagioInfrastructure control and element controlManaging network elements

From MEF 55.1, the LSO reference architecture.

Pick one owner per layer

Overlapping standards are normal. I agree which one governs each layer and each interface in the high level design, so two teams do not build the same thing twice.

Wholesale is an API now

Between operators, a Sonata or TMF641 order can replace email and spreadsheets for ordering access circuits, which removes rekeying and the errors that come with it.

Models at the edge

IETF service models and YANG sit under the TM Forum APIs. Mapping one to the other is where most of the detailed design effort goes.

Transformation

OSS and BSS transformation, without a big bang

Replacing an operator's order, inventory or billing stack is one of the riskiest projects in telecoms. The frameworks help most here. They describe the target, and the Open APIs let old and new run side by side while traffic moves across, one product family at a time.

Replacing an order stack behind a stable API Channels on the left, a legacy order stack on the right. At first the channels connect straight to the legacy stack with tangled links. An Open API layer then appears between them, and all orders pass through it. ODA components appear below the legacy stack, and orders shift to them product by product until the legacy stack is crossed out. Channelsshop, agents Open API layerTMF622, TMF641 Legacy order stackone large suite ODA componentscatalogue, orders, inventory Every channel wired to the legacy stack Channels move to a standard API first One product family moves behind the same API Product families move in waves Legacy switched off; channels never noticed

Swipe sideways to see the whole diagram.

Step 1
  1. Channels call the legacy order stack directly, each through its own interface. Replacing the stack would mean changing every channel at once, which is why big bang OSS and BSS replacements so often slip.

  2. I put a standard API layer in front of the legacy stack, such as TMF622 for orders, and move the channels onto it one at a time. Nothing behind the API changes yet, so the risk is small.

  3. One product family, often the newest or simplest, moves to the new components behind the same API. The channels do not notice. Orders for everything else still go to the legacy stack.

  4. Product families move in waves. Each wave brings its catalogue entries, decomposition rules and inventory data, migrated and reconciled. Legacy order volumes fall with every wave.

  5. When the last product family and its in flight orders have moved, the legacy stack is switched off. The API never changed, so neither did the channels. This is often called the strangler pattern.

Rules I hold to in a migration

  1. Catalogue first. Rationalise offers before migrating them. Legacy catalogues often hold thousands of offers that nobody sells any more.
  2. Clean the inventory. Reconcile service and resource inventory with the network before moving it, or the new stack inherits the errors.
  3. Leave in flight orders alone. Orders already in progress finish on the stack that started them. New orders go to the new one from a set date.
  4. Run in parallel. For each wave, both stacks run side by side for a period, with daily reconciliation of orders, services and bills.
  5. Keep the API stable. Version changes, such as v4 to v5, are planned as their own step, never mixed with a migration wave.
  6. Measure fallout. Order fallout, cycle time and manual touches per order show whether each wave made things better.

Conformance as a gate

I make Open API conformance, tested with TM Forum's test kits, a gate in supplier contracts. A certificate does not prove a product fits, but its absence is a warning.

Catalysts as a test bed

Catalyst projects let an operator try an idea with several suppliers before committing. They show what works in a demo, and the design still has to prove it at scale.

Tie it to the business case

Each wave has measures the business recognises: time to market for a new product, order fallout, and the licence and support cost of the systems it retires.

Troubleshooting

When orders go wrong, finding the broken link

OSS and BSS faults rarely show up as an error message. They show up as an order that never completes, a customer billed for something that does not work, or an alarm nobody can tie to a customer. My method is to follow one order through every API, find the step where its state stopped matching reality, then decide whether to fix the order or the design. Choose a symptom to see where it usually sits. My general method is on the troubleshooting page.

An OSS and BSS fault finder Seven stages in a row: channel, catalogue, product order, service order, activation, inventory and assurance. For each symptom, test orders flow from the channel as far as the stage where the fault usually sits, which is marked with a cross. A panel explains what I check and what I change. Channelshop, agent CatalogueTMF620 Productorder, TMF622 Serviceorder, TMF641 ActivationTMF640 InventoryTMF638, 639 AssuranceTMF642 Orders stay inProgress although the service works Orders rejected as soon as they are submitted Orders end partial or failed Service works, but the inventory is wrong Integration breaks after an upgrade Alarms arrive, but nobody knows who is hit The cross marks where the fault usually sits. Test orders flow as far as it.

Swipe sideways to see the whole diagram.

Orders stay inProgress although the service works. The work finished, but a state change event never reached the product order. Usually a listener registration was lost after a restart, or a callback address changed. I read the order with GET /productOrder/{id}?fields=state,productOrderItem, check the service order beneath it, look at the event delivery log, and re register the listener. Retries must be safe to repeat.

Orders rejected at once. The order refers to an offering or price that is retired, not yet launched, or not valid for this channel or date. I check GET /productOffering/{id}?fields=lifecycleStatus,validFor against the order, and fix the catalogue process that let a channel keep selling a retired offer.

Orders end partial or failed. One order item failed, often an activation that timed out at the controller or a resource that could not be allocated. I find the failed service order item and the activation job behind it, check the controller's own log, and decide between retry, manual completion through the fallout queue, or rollback.

The service works, but the inventory is wrong. Someone changed the network by hand, or an activation succeeded but its inventory update did not. I compare GET /resource results with network discovery, such as show inventory or controller exports, reconcile, and block manual changes that bypass orchestration.

Integration breaks after an upgrade. One side moved from v4 to v5 of an API, changed a base path, or started sending an extension under @type that the other side rejects. I compare the versions in the paths, replay a recorded order against both, and rerun the conformance test kit before go live.

Alarms arrive, but nobody knows who is hit. Alarms carry the resource, but the service inventory has no link from that resource to the services using it. I query the service inventory for services that rely on the alarmed resource. If nothing comes back, the gap is in how activation records relationships, not in assurance.

Animation

The checks I reach for

QuestionWhat I look atWhat it tells me
Where is the order now?GET /productOrder/{id} and the service orders beneath itWhich item stopped, and in which state
Did the events arrive?Hub registrations and the event delivery logWhether the consumer was told, and when
Is the catalogue consistent?Offering lifecycle status, validity dates and the specifications behind itWhether an order could ever have succeeded
Does the inventory match the network?Inventory queries against discovery and controller exportsDrift, and where it started
Which versions are in use?Base paths, @type values and conformance resultsWhether both sides speak the same contract
Is it one order or many?Fallout counts by product, step and error codeWhether to fix one order, or the design
Engagement

How I run an OSS and BSS architecture engagement, from first workshop to retirement

TM Forum work usually starts with a business problem: products take months to launch, orders fail and need manual fixes, or operations cannot scale. I follow the same path each time: agree the outcome, map what exists against the frameworks, design a target of components and Open APIs, prove it with one product family, then move in waves and keep it current.

How an engagement runs, from first conversation to lifecycle Seven stages from left to right: engage (stakeholders), requirements (FR and NFR), discovery (as is), design (HLD and LLD), build and test (pilot, waves), support (handover), lifecycle (keep current). For each stage the panel shows who I work with and what comes out of it. After the lifecycle stage the loop returns to the start. Engagestakeholders RequirementsFR and NFR Discoveryas is DesignHLD and LLD Buildpilot, waves Supporthandover Lifecyclekeep current Step 1 · EngageAgree the outcome and who decidesWho I work withWhat comes outCTO and architecture boardProduct and marketingNetwork and IT operationsProblem statement and scopeBusiness outcomes and measuresDecision log and RACIProgramme governance Step 2 · RequirementsProcesses, data and interfaces, with numbersWho I work withWhat comes outProduct ownersOrder and fulfilment teamsAssurance and NOC leadseTOM scope at level 2 or 3Open API interface listOrder and fault volumesAutomation targets by level Step 3 · DiscoverySystems, processes, data and interfaces todayWho I work withWhat comes outEnterprise architectsSystem ownersSuppliersFunction map, overlaps and gapsInterface catalogueData quality findingsProcess walkthroughs Step 4 · DesignTarget components, APIs and data ownershipWho I work withWhat comes outDesign authoritySupplier architectsSecurity and data teamsTarget ODA component mapAPI contracts and versionsData ownership by SID domainTransition architectures Step 5 · Build and testProve one product family, then move in wavesWho I work withWhat comes outDelivery teamsSuppliers and integratorsChange advisory boardConformance test resultsPilot product family liveWave plan with rollbackReconciliation reports Step 6 · SupportFallout queues, dashboards and runbooksWho I work withWhat comes outOrder management teamsNOC and service deskSupplier supportFallout dashboards by stepRunbooks for stuck ordersEvent and API monitoringHypercare exit criteria Step 7 · LifecycleAPI versions, releases and autonomy levelsWho I work withWhat comes outDesign authorityProduct ownersSupplier account teamsAPI version roadmapFramework release reviewAutonomy level reviewsRetirement plan per system

Swipe sideways to see the whole diagram.

Step 1
  1. I start by agreeing the business outcome: faster product launches, fewer failed orders, or autonomy targets for operations. I record who decides, who is consulted and who must be told in a RACI (responsible, accountable, consulted, informed) chart, and agree how the architecture board signs off designs.

  2. I write requirements against the frameworks: the eTOM processes in scope, the SID entities each system must master, and the Open APIs every interface must use. Non functional targets cover order volumes, cycle times, fallout and autonomy levels, each with a number and an owner who signs it off.

  3. I map every system against the Functional Framework, list every interface and whether it follows an Open API, and walk real orders and faults through the processes. I sample inventory against the network to measure drift. The findings often change the business case, so they come before the design.

  4. The high level design sets the target: which ODA components own which functions and data, which Open APIs join them, and how other standards fit underneath. The low level design fixes API versions, extensions, events and error handling. Transition architectures show each safe step from today to the target.

  5. I prove the design with one product family end to end, fallout handling included, before any wave starts. Suppliers show conformance results for the APIs they claim. Each wave goes through change control with a rollback plan, parallel running and daily reconciliation of orders, services and inventory.

  6. Before handover, order states, fallout by step, event delivery and API errors are in monitoring with thresholds. Support teams get runbooks for stuck, partial and rejected orders and for inventory drift. Hypercare, the period of extra support after go live, ends only when agreed criteria hold for a set period.

  7. TM Forum revises its frameworks and APIs in regular releases. I keep a version roadmap for every interface, plan moves such as v4 to v5 as changes of their own, review autonomy levels each year against measured outcomes, and track each legacy system to its retirement date.

Functional requirements

What it must do.

  • Expose the catalogue, ordering and product inventory to every channel through TMF620, TMF622 and TMF637.
  • Decompose product orders into service and resource orders from catalogue rules, with no code change per product.
  • Keep product, service and resource inventories linked to each other and reconciled with the network.
  • Publish order and service state changes as events to registered listeners.
  • Correlate alarms and tie them to the services and customers they affect.
  • Offer wholesale ordering to partner operators through TMF641 or MEF Sonata.

Non functional requirements

How well it must do it, with a number wherever one can be agreed.

Order fallout
Under 5% of orders needing a manual touch, per product family (typical target).
Cycle time
Orders with no field work activated in minutes rather than days (typical aim).
Catalogue
One catalogue for every channel, with new offers launched without a software release.
Conformance
Every external interface on a published Open API version, with conformance tests passed.
Inventory accuracy
99% or more of resources matching discovered network state (typical target).
Events
State changes delivered to listeners within seconds, with retries and no loss (typical).
Autonomy
A stated autonomy level for each workflow, measured at least once a year.
Availability
Order capture available 99.9% of the time or more, measured monthly (typical).

Numbers are typical starting points. Each operator agrees its own.

Projects

Where I have used it

TM Forum frameworks run through my telecoms work: high level designs for Virgin Media O2, automation architecture for Vodafone, and earlier roles building infrastructure for operators and their customers.

XIDA · 2025 to now

Virgin Media O2, from network to OSS and BSS

Produced high level designs for Virgin Media O2 across RAN, core, transport, OSS and BSS using TM Forum frameworks, and fed the architecture into its autonomous network and service orchestration roadmap.

XIDA · 2021 to 2024

Virgin Media O2 initiatives

Produced high level designs for Virgin Media O2 initiatives across RAN, core, transport and OSS and BSS using TM Forum frameworks, alongside multi vendor SD-WAN and SD-Access designs for enterprise clients.

Vodafone · 2024

Automation aligned to TM Forum and MEF

Led discovery, due diligence and architecture for network infrastructure automation aligned to TM Forum and MEF standards, in support of Vodafone's digital customer platforms. The automation side is on the network automation page.

Manx Telecom · 2016

Managed infrastructure inside an operator

Tier 3 data centre and managed infrastructure for over 300 customer sites on Cisco ACI (Application Centric Infrastructure) and Nexus.

BT Group · 2013

Designs for enterprise customers

High and low level designs for BT's enterprise customers, including Rolls Royce, Virgin Money, Rio Tinto and Primark.

Passport Telecom · 2004 to 2007

Telecoms infrastructure

Cisco based telecoms infrastructure for over 4,000 clients across East Africa and South America.

TM Forum Architecture is listed with my delivery frameworks, and Python, Terraform, Ansible and ServiceNow cover the automation underneath. See all credentials