Content Management

Telops · Group IT · Content Management · 2025

Content as a Managed, Versioned Product

IT content lives in many systems, and every catalog is handled differently. We bring translations, knowledge, products, services, SLAs, and apps under one model: authored in friendly tools, versioned in Git, released through CI/CD, and served translated through APIs.

This deck is the method — how we manage content. Its heart is the catalogs: the versioned bodies of content this model governs. For where this sits in the wider system see Platform; for the app that authors it see Product Pilot.

The content pattern

One repeatable way to version, approve, translate, and serve catalog content.

01 · Problem space

Content is scattered, every catalog is different

Translations, knowledge, products, services, SLAs, and app metadata live in separate systems with separate rules — no shared way to review, translate, version, or release them.

Today

Scattered sources

The same name or label is re-entered across Confluence, Jira, Assets, LeanIX, and app config.

Today

No shared process

Approval, translation, and permissions differ per catalog; reviewing changes in Jira is painful.

Today

Unsafe releases

No staging, no versioning, no changelog. Translations drift and rollbacks are guesswork.

Better practice — treat content like code: one curated source, version controlled, reviewed and approved, released through CI/CD, and delivered translated through APIs.

02 · The big picture

One content backbone behind every surface

Surfaces share content through a single API instead of each one wiring directly into JSM, Assets, and Confluence. Underneath, content lives in purpose-built stores, and people plus automation keep it curated and released. Colour indicates the system or domain.

Consumer surfaces Back Office Jira / JSM / Assets Confluence / knowledge Content stores People and automation Versioned catalogs
Why the API layer matters: it removes the tight coupling of direct JSM, Assets, and Confluence integrations. Consumers ask for content in a language and get formatted JSON — never touching translations or internals.

03 · The content catalogs

Six versioned catalogs, one terminology layer

What each catalog holds. They all sit on a shared translation layer of curated terminology reused everywhere.

Catalog

Knowledge base articles

Markdown articles: title, body, tags, attachments, and locale variants.

Catalog · commercial core

IT products

Name, description, variants, options, pricing, and images — each anchored to a stable SKU identity that carries through ordering, fulfilment, and billing.

SKUVariantsOptionsPricing
Catalog

IT services

Service name, description, linked request types, and fulfilment content.

Catalog

SLA and policy docs

Service-level targets, response and resolution times, scope, and policy text.

Catalog

Assignment groups

Group name, members, routing rules, and ownership metadata.

Catalog

Application catalog

App name, rich description, screenshots, and icon, layered on LeanIX records.

Foundation

App translations — the shared terminology layer

Product names, service names, descriptions, departments, and form labels in EN, DE, ES, and more. Strings are namespaced (app · path · topic) and reused across the Back Office, Axpo Hub, emails, and notifications.

EN · DE · ES · moreNamespaced stringsShared across appsVersion controlled

04 · How each type is handled

Five cases, one consistent pattern

Each type keeps its natural authoring tool but plugs into the same versioning, approval, translation, and release flow.

01

App translations

The shared terminology catalog. Namespaced strings feed the Back Office, Axpo Hub, emails, and notifications from one place.

02

Knowledge base articles

Authored in a dedicated IT Confluence space, mirrored as markdown in Git via the API. CI generates changelogs and enables rollbacks; approvals link to Jira; approved content is copied to public spaces.

03

Service requests in Jira

JSM content stays tuned for service staff. Public form fields, titles, and errors come from the translation layer, and can be written into Assets where objects need localised fields.

04

Products, services, and SLAs

Authored in the Back Office, stored in Git, approved through JSM. Released versions write back to JSM Assets (CMDB).

05

Applications

LeanIX records enriched with descriptions, screenshots, and icons in Git, published through the Back Office on the same flow.

05 · Who it affects

Familiar on the surface, managed behind it

Customers

No visible change

They use the portal and read articles exactly as they do today.

JSM users

Selected content synced

Chosen fields in requests and Assets stay in sync via API.

IT staff

Author once, reuse everywhere

Edit in the Back Office; translations flow to apps, emails, and comms.

06 · Anatomy of an update

The life of a product change

One change, end to end. Colour marks the system that owns each step.

  1. 1
    Back Office

    Product defined

  2. 2
    Git

    Serialised to a PR

  3. 3
    Back Office

    Owner approves

  4. 4
    CI/CD

    Released to staging

  5. 5
    Translations

    Strings translated

  6. 6
    Staging

    Reviewed and tested

  7. 7
    JSM / Assets

    Linked to request

  8. 8
    CI/CD

    Released to production

  9. 9
    IT Portal

    Read from the API

  10. 10
    Done

    Live to order

07 · Interfaces

Three interfaces over one backbone

Content reaches people through three surfaces. These are the same three views the Platform deck defines in full — here they are framed by what content each one consumes or controls.

Consumer

IT Portal (Axpo Hub)

Reads products, services, and articles as formatted, translated JSON.

Author and control

IT Back Office

Authoring, review, and approval for IT staff — and the trigger for releases.

System of record

Jira / JSM / Assets

Holds requests and CMDB objects; selected content syncs via API.

08 · Git and CI/CD

A DevOps approach to content

Content rides the same release machinery as everything else. The pipeline mechanics and environments live in the Platform deck; here is what that buys content specifically.

Versioning

History and rollback

Readable diffs, auto-generated changelogs, and rollback to any known-good release.

Review

Approval linked to Jira

Proper review and comparison instead of editing live content blindly.

Release

Automated deployments

GitHub Actions write back to Confluence, JSM, and Assets consistently.

Staging

Test before shipping

Preview translations and product options, validated with automated tests.

09 · API delivery

Pass a language header, get ready-to-render content

  • Language in, content out: send an Accept-Language header and receive fully formatted, translated JSON.
  • No translation logic for consumers: apps never touch string tables or locale rules.
  • Versioned and cacheable: responses are tied to a released catalog version, so reads are stable and reproducible.
  • One contract, many systems: the API hides whether content originated in Git, the translation service, Confluence, or Azure storage.
Domains served

One API, many catalogs

ProductsServicesSLAsAssignment groupsKB articlesApplication catalog

Consumers never handle translations. They send the desired language and receive the right content, fully formatted.

10 · What this unlocks

Capabilities worth highlighting

Media

Managed rich media

Images and media served from Azure storage, managed through CI/CD.

Self-serve

Lower-friction edits

IT staff change, review, and approve in the Back Office.

Feedback

User feedback signals

Rate-article and suggest-improvement signals from other apps or JSM.

Analytics

Usage at the source

Usage tracked in the IT Portal and Confluence to act on what matters.

Agents

Automated quality checks

Agents check links, formatting, and naming across catalogs.

Rovo

Support-driven updates

Rovo support flows update KB articles, synced back through the same process.