> ## Documentation Index
> Fetch the complete documentation index at: https://support.lilt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Optimizely (fka EPIserver)

LILT's [Optimizely](https://www.optimizely.com/) connector enables companies to automatically send web content from Optimizely CMS and Commerce to LILT for translation, and receive completed translations back — without leaving either platform.

The connector is built as a **.NET NuGet package** (v2.1.0) that installs directly into your Optimizely instance and surfaces as a translation provider inside the native **Language Manager** UI. It supports Optimizely CMS 12 and Commerce 14.

> **Compatibility note:** The connector requires a code-managed Optimizely installation (self-hosted or DXP PaaS). It is **not compatible** with Optimizely SaaS CMS, which does not support NuGet add-ons. CMS 11 and earlier are also not supported.

***

## Supported Content Types

The connector handles translation for the following content types:

* **Pages** (CMS)
* **Blocks** (CMS) — both shared and local blocks

All relevant properties within each content type — such as SEO page titles and meta descriptions — can be individually included or excluded from translation. **Page names and URLs are excluded from translation by default** and will not be sent to LILT.

***

## How It Works

Once configured, the connector exposes LILT as a provider inside Optimizely's Language Manager. Users initiate translation from within Optimizely, and completed translations are returned as **drafts** for manual review before publication.

### Sending Content for Translation

Click the **Auto-Translate** button in the Language Manager gadget to send content to LILT. Language Manager passes the content's translatable properties to LILT as a batch, and LILT returns translations automatically.

> **Note:** The current connector supports **instant (AI) translation only**. Verified (human) translation workflows are not yet supported via this connector. If you require verified translation, contact your LILT account team.

### Receiving Translations

All translated content is returned to Optimizely as a **draft version**. It will not be auto-published — your team reviews and approves each translation before it goes live.

### Job Controls

* You **cannot submit a duplicate job** for the same content and language pair while a translation is already in progress. This prevents conflicting or redundant submissions.
* You **can** submit jobs for different language pairs on the same content simultaneously.
* If an error occurs, you will be notified via Optimizely's built-in notification system.

***

## Configuration

### Prerequisites

* Optimizely CMS 12 or Commerce 14, running on a self-hosted or DXP PaaS installation (not SaaS CMS)
* .NET 8 runtime
* A LILT API key (provided by your LILT account team)

### Installation

1. Add the `Lilt.Episerver.LanguageManager` NuGet package to your Optimizely project.
2. Register LILT services in your application startup:
   ```csharp theme={null}
   builder.Services.AddLiltProvider();
   ```
3. Add the following to your `appsettings.json`:
   ```json theme={null}
   {
     "Lilt": {
       "ApiBaseUrl": "https://connectors-admin.lilt.com",
       "ApiBasePath": "/api/v1.0",
       "TimeoutSeconds": 30,
       "TranslationPollingTimeoutSeconds": 120,
       "TranslationPollingIntervalSeconds": 2,
       "AutoSyncOnPublish": true,
       "DefaultFallbackLanguages": "fr,sv"
     }
   }
   ```
   | Setting                             | Description                                                                                                      |
   | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
   | `ApiBaseUrl`                        | Base URL for the LILT Connectors API                                                                             |
   | `TimeoutSeconds`                    | Request timeout for LILT API calls                                                                               |
   | `TranslationPollingTimeoutSeconds`  | Maximum time to wait for a translation job to complete                                                           |
   | `TranslationPollingIntervalSeconds` | How often to check for completed translations                                                                    |
   | `AutoSyncOnPublish`                 | When `true`, automatically copies property values from a published language to any configured fallback languages |
   | `DefaultFallbackLanguages`          | Comma-separated list of fallback language codes for content sync                                                 |
4. In the Optimizely Admin UI, go to **Tools → Language Manager**, select **LILT** as the translation provider, and enter your API key.
5. Under **Admin → Config → Manage Website Languages**, add and enable the target languages you want to translate into.

***

## Language Synchronization

When `AutoSyncOnPublish` is enabled, the connector includes a content sync handler that automatically copies property values from a published language version to any configured fallback languages. This is useful for ensuring fallback locales stay in sync without additional manual steps.

***

## Need Help?

Contact your LILT project manager or reach out via the [LILT Help Desk](https://lilt.atlassian.net/servicedesk/customer/portals) for setup assistance or troubleshooting.
