// Ibexa DXP Integration

AI ready structured data for
Ibexa.

Ibexa is a digital experience platform (DXP) designed to create, manage, and optimize engaging customer experiences. It combines content management, e-commerce, and personalization tools in one unified solution, built on Symfony.

The enhancely integration connects to any Ibexa installation and automates the generation of structured data. It creates page-specific JSON-LD markup that helps search engines and AI systems interpret your content accurately — fully SiteAccess-aware, multi-language, and built for enterprise scale.

enhancely automatically makes the right JSON-LD (schema.org) available for your Twig templates. Plain and fast.

graph LR
  A["Browser Request"] --> B["Ibexa"]
  B --> C["Controller"]
  C --> D["enhancely API"]
  D --> E["JSON-LD"]
  E --> C
  C --> F["Ibexa Cache"]
  F --> C
  B --> G["HTML + JSON-LD"]
Fig. 1 — Ibexa integration via dedicated EventSubscriber/Controller
// How it works

Install. Configure. Done.

The integration is lightweight and contains only 2 files: an Ibexa Publish Event Subscriber and a Controller — both operate fully automatically once configured.
01

Event Listener

An EventSubscriber triggers JSON-LD generation once content has been published in Ibexa.
02

Rendering

When a page is being rendered, JSON-LD is requested from enhancely via the Controller. If available, it is made accessible to your Twig templates.
03

JSON-LD Storage

Once available, the JSON-LD is cached in Ibexa's native cache until a new version is published — reducing API calls and ensuring reliability.
04

Template Integration

The structured data can be rendered in any Twig template with a simple conditional include.
05

Multi-Site & Multi-language

The integration is fully SiteAccess-aware — JSON-LD is generated separately for each language and SiteAccess, with support for per-SiteAccess domain configuration.
// What's included

Two files. Full automation.

Everything you need is bundled in two PHP files — no framework installation, no package manager, no boilerplate.
ESB

EventSubscriber

An Ibexa Publish EventSubscriber that triggers JSON-LD generation automatically on content publish. Zero manual invocation required.

CTL

Controller

A lightweight Symfony Controller that fetches JSON-LD from the enhancely API and injects it into Ibexa's cache for Twig consumption.

SA

SiteAccess-Aware

JSON-LD is generated per SiteAccess and language. Supports per-SiteAccess domain configuration via Ibexa's native configuration notation.

Installation

Deploy two files to your Ibexa project — no Composer package, no framework dependencies:

  1. Deploy EnhancelyOnPublishSubscriber.php to ./src/EventSubscriber
  2. Deploy EnhancelyController.php to ./src/Controller

This integration uses the default App namespace.

Use

To render JSON-LD in your Twig template, add the following fragment:

{% if enhancely is not null and enhancely is not empty %}
    {{ enhancely | raw }}
{% endif %}

Adapt

You can adapt URL generation by editing the method EnhancelyOnPublishSubscriber::buildUrl($language, $urlAlias) — for example, to insert your locale at a specific position in the URL.

Configuration

Update ./config/services.yaml with your settings:

parameters:
    enhancely.default.api: https://app.enhancely.ai
    enhancely.default.key: ""
    enhancely.default.domain: https://your-site.com
    enhancely.default.fastrebuild: true
    enhancely.default.siteaccesses: [your_site_access_name]
    enhancely.default.contenttypes: []

Sample configuration with SiteAccess-specific domain:

parameters:
    enhancely.default.api: https://app.enhancely.ai
    enhancely.default.key: "sk-49d09975cfec10a03"
    enhancely.default.fastrebuild: true
    enhancely.default.contenttypes: [landing_page]
    enhancely.default.siteaccesses: [site]
    enhancely.default.domain: https://domain.com
    enhancely.site.domain: https://domain-for-site

Caching & Reliability

  • Caching — Reduces API calls; schema stays fresh until next publish event
  • Graceful fallback — Serves cached content on API errors
  • SiteAccess isolation — Separate cache entries per SiteAccess and language
// Integration Partner

Proudly provided by I-D Media.

This integration was developed by I-D Media, a creator of outstanding digital experiences since 1988 who brings decades of expertise to every DXP ecosystem.

The enhancely Ibexa integration can be obtained from I-D Media. Please reach out at idmedia.com.
I-D Media logo
The enhancely Ibexa integration is provided by I-D Media

About I-D Media

I-D Media designs, develops, and operates scalable digital platforms. With creative concepts, technical precision, and a user-centric approach, they create outstanding digital experiences that are relevant, trustworthy, and drive conversions.

With expertise in DXP ecosystems since 1988, I-D Media ensures that your Ibexa implementation is powerful, scalable, and AI-ready.

Contact & Get the Integration

The Ibexa integration is developed and maintained by I-D Media. Contact their team to obtain the integration files and dedicated onboarding support for your Ibexa installation.

I-D Media GmbH
Web: https://www.idmedia.com/contact

// FAQ

Ibexa & enhancely
FAQ.

Ibexa is a digital experience platform (DXP) built on Symfony that combines content management, e-commerce, and personalization in one unified solution. Enterprises choose Ibexa for its SiteAccess architecture — which enables multi-site, multi-language, and multi-channel content delivery from a single installation — along with its powerful GraphQL API, headless capabilities, and enterprise-grade personalization. It is particularly strong in B2B digital experience scenarios where complex content hierarchies and granular access control are critical.
Ibexa does not include automated Schema.org generation out of the box. While developers can add JSON-LD manually to Twig templates, maintaining structured data at enterprise scale — across multiple SiteAccesses, languages, and content types — quickly becomes complex and error-prone. The enhancely integration, developed by I-D Media, automates this entirely via a dedicated EventSubscriber and Controller, with SiteAccess-aware generation and Ibexa's native caching.
The integration consists of just two PHP files: an EventSubscriber and a Controller, both using standard Symfony conventions. The EventSubscriber triggers JSON-LD generation whenever content is published in Ibexa. The Controller fetches the validated JSON-LD from the enhancely API and makes it available to your Twig templates via Ibexa's cache. Deploy the two files to ./src/EventSubscriber and ./src/Controller, configure services.yaml — and the integration runs fully automatically from that point on.
Ibexa's SiteAccess system allows a single installation to serve multiple sites or languages at different domains or URL prefixes. The enhancely integration is fully SiteAccess-aware: JSON-LD is generated separately for each SiteAccess and language, using the correct domain. You configure active SiteAccesses via enhancely.default.siteaccesses, and can override the domain per SiteAccess using Ibexa's native configuration notation — for example enhancely.site.domain: https://domain-for-site.
No. After deploying the two files and configuring services.yaml — typically under an hour — enhancely runs fully autonomously. Content editors publish as usual in Ibexa's editorial environment. JSON-LD is generated, validated through the 3-layer pipeline (Validity, Factuality, Compliance), and cached automatically on every publish event. The enhancely dashboard gives you full visibility into structured data coverage across all your Ibexa SiteAccesses.
The enhancely Ibexa integration was developed and is maintained by I-D Media, a digital experience agency with DXP expertise since 1988. Contact I-D Media directly at idmedia.com to obtain the integration files and setup support.

Stop leaving
bots hungry.

Your Ibexa content is already great for humans. Let enhancely make it perfect for bots. EventSubscriber integration. SiteAccess-aware. 3-layer validation. Two files — full automation.