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

# Island AI Protect

> Import AI conversations captured by the Island Enterprise Browser into Openlayer

![Island AI Protect hero](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_hero.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=7eb8af647d231a1b56335434456f3fa1)

Openlayer connects to Island AI Protect and pulls the AI conversations people have in the Island
Enterprise Browser into your workspace. Conversations from apps such as Claude AI, Gemini, and
Island Chat become traces where you can run tests and review real usage.

This is the right integration when Island already captures AI activity across your organization and
you want to evaluate that activity without adding an SDK to each AI app.

## How it works

Once connected, Openlayer:

1. **Discovers AI apps.** Each app Island reports appears as a product, such as Claude AI, Gemini,
   or Island Chat.
2. **Maps each app to one project.** By default, a discovered app gets an
   `Island · <app>` project. You can instead map it to an existing project and pipeline.
   Every connection that sees the app writes to that same project.
3. **Pulls on a schedule.** The first sync reads the previous 7 days. Later syncs bring in new
   conversations.
4. **Preserves conversations and turns.** Each Island conversation becomes one Openlayer session,
   and each user turn becomes one trace.

***

## Prerequisites

* An Island tenant with AI Protect capturing AI conversations.
* An Island API key with the **Security Admin** role, the smallest built-in role that can both view
  AI events and read their conversation content. **Full Admin** also works. **Read Only** and **AI
  Protection Admin** do not: Read Only cannot read conversation content, and AI Protection Admin
  cannot view AI events.
* An Openlayer workspace where you are an **admin**. Connecting and configuring Island are
  admin-only actions.

### Create the Island API key

In the Island Management Console, go to **System Settings → Integrations → API → Create**. Create
the key with the **Security Admin** role, then copy the key.

> [!NOTE]
>
> Openlayer only reads from Island: AI events and their conversation content.
> Island lets a role open conversation content only when that role can also edit
> Content Monitoring, which is why a read-only role is not enough.

***

## Setup guide

### Step 1: Connect

A workspace can have several Island connections, for example several Island accounts or API keys.

In Openlayer, go to **Settings → Integrations**, open **Island** in the **AI Usage & Security**
section, and click **Add connection**. Name the connection, enter the **API key**, click **Test
connection** to check both that Island accepts the key and that it can read AI conversation content,
then click **Connect**. The first sync starts immediately. The integrations catalog card shows the
connection count, for example **Connected · 1 connection** or **Connected · 2 connections**.

![The Island Add connection dialog in Openlayer, with the connection name Acme, a masked API key, the checks Island accepts the API key and The key can read AI conversation content, 1 tenant found, and the Connect and Test connection buttons](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_connect.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=0659feefdad9643b7a0e14d6ecb4d6e1)

You can also connect from an LLM project's **Monitoring setup → Manual setup → AI usage & security**.

Open a connection to reach its **General**, **Tenants**, and **Products** tabs. The **Tenants** tab
lists the tenant for that API key.

The same Island tenant is never synced by two connections. If you add a key for a tenant another
connection already syncs, Openlayer refuses it and names that connection.

### Step 2: Review the sync settings

Open the connection's **General** tab. **Periodic sync** is on by default and runs every **5
minutes**. You can change the frequency to every **10 minutes**, **30 minutes**, or **hour**, pause
periodic sync without disconnecting, or click **Sync now**.

The first sync reads conversations from the previous **7 days**. There is no earlier backfill.

**Create a project for new products** is on by default. Each newly discovered AI app is enabled
into its own `Island · <app>` project. When another connection already syncs that app, this
connection uses the same project. Turn it off to leave newly discovered apps disabled until you map
them yourself.

The overview reports the connection status, **Content access**, enabled products, tenants syncing,
turns synced, last sync, and the last error.

![The Island connection's General tab: the overview (Connected, content access granted, 3 of 3 products enabled, 1 of 1 tenant syncing, 6 turns synced), what is collected, and the Settings section with Periodic sync, Sync frequency set to Every 5 minutes, and Create a project for new products turned on](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_connected.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=ee81ea1627944bfce04b99ae39d350e9)

***

## Products and projects

On a connection, the **Products** tab lists each AI app Island has reported, the Openlayer project
it writes to, its status, imported turns, and when activity was last seen.

![The Island Products tab with Claude AI, Island Chat, and Gemini, each active and mapped to its own Island · app project](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_products.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=26ebc5b5f0058b05cb66674f6f9e3755)

The same app uses one project across connections. A connection that sees an app another connection
already syncs writes to that project.

To enable a disabled product, choose one of these destinations:

* **Create new project** — create an `Island · <app>` project and pipeline
* **Map to existing project** — choose an existing project and pipeline that uses Openlayer's
  default storage

Pipelines backed by BigQuery or Snowflake cannot receive Island rows.

Changing a product's project sends new conversations to the new destination. Existing data stays
in the previous project. Disabling a product stops new imports and keeps its project, pipeline, and
existing data.

> [!WARNING]
>
> Conversations seen while a product is disabled are not backfilled when you
> enable it later.

***

## What lands in Openlayer

Each Island conversation becomes one Openlayer session. Each user turn becomes a trace containing:

* The full prompt and assistant response
* An **Assistant response** step with the app, provider, and model Island reported
* One tool step per tool call, including its name, label, action, and identifiers
* The conversation title, Island app, user, policy rule, and verdict when Island provides them

![An Island turn in Openlayer: the trace tree with an Assistant response step and a web\_search tool step, the user's prompt, and the assistant's reply](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_trace.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=f034e6364b518f115231e658936cdf2f)

Island does not provide tool outputs or token usage. Cost is recorded as **0**. MCP Gateway
activity is not imported.

Selecting a tool step shows what Island captured: the tool's label, action, and ID.

![A web\_search tool step from Island, showing its action, label, and tool ID](https://mintcdn.com/openlayer-44/exiIR2K85v19Wgrr/images/integrations/island_trace_tool.png?fit=max\&auto=format\&n=exiIR2K85v19Wgrr\&q=85\&s=44aeba9ec655ded0f03a815ff8f7aeee)

Openlayer waits until the newest event in a turn is 15 minutes old before writing it, so related
prompt, response, and tool events can arrive together. If Island has not captured a response after
30 minutes, Openlayer writes the prompt-only turn.

***

## Evaluating the ingested data

Once traces are flowing, evaluate Island-captured AI usage the same way you evaluate application
traffic:

* [Create tests](/tests/overview) to score response quality, safety, or tone
* Detect [PII](/tests/catalog/contains-p-i-i) or [toxicity](/tests/catalog/toxicity) in prompts and
  replies
* Use [governance frameworks](/governance/overview) to evidence AI-usage controls with real traffic

***

## Disconnecting

On the connection's **General** tab, click **Disconnect Island** and confirm **Remove Island**.

Disconnecting stops syncing for that connection and deletes its stored API key and sync state.
Other connections keep syncing. Projects, pipelines, and traces already ingested are kept.

If you connect again with **Create a project for new products** on, an app that no other connection
syncs gets a new `Island · <app>` project. To keep using the previous projects, turn that setting
off and map each app to its existing project.

***

## Troubleshooting

| Symptom | Likely cause | Fix |
| - | - | - |
| Island rejects the API key | The key is wrong, revoked, or its role is too limited | Create or reactivate a key with the **Security Admin** role |
| Connect says the key cannot read AI conversation content | The key's role cannot open conversation content, for example **Read Only** | Create a key with the **Security Admin** role, then connect again |
| Connect says Island is unavailable | Island could not complete the connection check | Try again shortly |
| Connect says this Island tenant is already synced by another connection | A connection in this workspace already syncs that tenant | Use the connection named in the error |
| **Content access** changes to `missing` | The key's role changed after connecting | Restore the key's **Security Admin** role, then reconnect |
| **Error** says the user who connected Island is no longer a workspace member | That user was removed from the workspace | Have a current workspace admin reconnect Island |
| **Error** says Island is catching up | More events remain than one sync can read | No action is needed. Openlayer continues reading them on the next runs |
| A product does not appear | Island has not reported activity for that app during the 7-day initial range | Use the app in the Island browser, then wait for the next sync or click **Sync now** |
| A product does not sync | The product is disabled, or **Periodic sync** is off | Enable the product and map it to a project, or turn periodic sync back on |
| Mapping to an existing pipeline fails | The pipeline uses BigQuery or Snowflake | Choose or create a pipeline on Openlayer's default storage |
| **Sync now** does not start immediately | That tenant was already read within the previous minute | Wait for the next scheduled run. Island allows one event read per minute for each tenant |
| A turn has a prompt but no response | Island did not capture a response within 30 minutes | Expected. Openlayer writes the prompt-only turn after the waiting period |
| Re-enabling a product does not import its disabled period | Disabled products are skipped and are not backfilled | Expected. Only conversations captured after the product is enabled again are imported |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.