Ai12z.Optimizely.Cms
0.1.0
dotnet add package Ai12z.Optimizely.Cms --version 0.1.0
NuGet\Install-Package Ai12z.Optimizely.Cms -Version 0.1.0
<PackageReference Include="Ai12z.Optimizely.Cms" Version="0.1.0" />
<PackageVersion Include="Ai12z.Optimizely.Cms" Version="0.1.0" />
<PackageReference Include="Ai12z.Optimizely.Cms" />
paket add Ai12z.Optimizely.Cms --version 0.1.0
#r "nuget: Ai12z.Optimizely.Cms, 0.1.0"
#:package Ai12z.Optimizely.Cms@0.1.0
#addin nuget:?package=Ai12z.Optimizely.Cms&version=0.1.0
#tool nuget:?package=Ai12z.Optimizely.Cms&version=0.1.0
Ai12z.Optimizely.Cms
NuGet package for integrating ai12z with Optimizely CMS (formerly Episerver). Provides:
- Real-time content sync — hooks publish, move-to-trash, and delete events on pages and PDF media, sending payloads to the ai12z connector service automatically
- Admin settings page — configure everything from a built-in admin UI at
/ai12z-sync, noappsettings.jsonediting required - Full initial sync — one-click full-site sync that reuses the same extraction pipeline as real-time events, so every page and PDF is indexed under a single stable identifier
- Resilient delivery — outbound HTTP uses a named client with a 30s timeout and exponential-backoff retries
Requirements
- Optimizely CMS 13 (
EPiServer.CMS13.x) - .NET 10
- ai12z account with an Optimizely connector configured
Installation
dotnet add package Ai12z.Optimizely.Cms
Setup
1. Program.cs / Startup
Register the connector services in your Optimizely site's DI container:
builder.Services.AddAi12zOptimizely();
No other code changes are needed — no layout changes and no manual endpoint
registration. The connector's controllers ship as an MVC application part and are
auto-discovered by your existing app.MapControllers() call. The
Ai12zModule initializable module wires up the content publish/move/delete
events automatically.
2. Configure in the admin UI
Browse to /ai12z-sync on your running site (e.g. https://your-site.com/ai12z-sync).
- Endpoint URL — from the ai12z portal Optimizely connector page (includes Connector ID and Project ID)
- Connector API Key — generated via "Manage Keys" on the connector page
- Content Sync Enabled — toggle on
Settings are persisted in the Optimizely Dynamic Data Store (database) — no
appsettings.json entries required.
3. Initial content sync
Trigger a full-site sync from the admin UI, or call the endpoint directly:
# Full sync of all pages + PDF media
curl https://your-site.com/api/sync/full
# Check sync status
curl https://your-site.com/api/sync/status
After the initial sync, content is synced automatically on publish, move-to-trash, and delete.
How it works
- Publishing the root/start page schedules a full-site sync (after a short, configurable delay) so large structural changes propagate in one pass.
- Publishing any other page or a PDF media item sends an incremental
publishedevent. - Moving a page/PDF to the wastebasket or permanently deleting it sends an
unpublishedevent so the index stays in sync.
Documentation
Full setup guide: https://docs.ai12z.net/docs/connectors/optimizely
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EPiServer.CMS (>= 13.0.0)
- EPiServer.Cms.AspNetCore (>= 13.0.0)
- EPiServer.Cms.Core (>= 13.0.0)
- EPiServer.Cms.UI.AspNetIdentity (>= 13.0.0)
- EPiServer.Framework (>= 13.0.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.9)
- Microsoft.Extensions.Options (>= 10.0.2)
- PdfPig (>= 0.1.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 156 | 7/8/2026 |