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"]
Install. Configure. Done.
Event Listener
Rendering
JSON-LD Storage
Template Integration
Multi-Site & Multi-language
Two files. Full automation.
EventSubscriber
An Ibexa Publish EventSubscriber that triggers JSON-LD generation automatically on content publish. Zero manual invocation required.
Controller
A lightweight Symfony Controller that fetches JSON-LD from the enhancely API and injects it into Ibexa's cache for Twig consumption.
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:
- Deploy
EnhancelyOnPublishSubscriber.phpto./src/EventSubscriber - Deploy
EnhancelyController.phpto./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
Proudly provided by I-D Media.
The enhancely Ibexa integration can be obtained from I-D Media. Please reach out at idmedia.com.
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