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

> ## Agent Instructions
> You are reading OnlyX Help: the OnlyX Help Center and the OnlyX developer documentation. OnlyX is an AI chatting and CRM platform for OnlyFans agencies. Its AI chatter is called Hugo in the app.
> Pages at the site root (for example /inbox/..., /hugo/..., /billing/...) are Help Center articles for agency owners, admins, chatters and creators who use the app at app.onlyx.ai. Words in bold are the exact button, menu and label names the app shows; keep them exactly as written. When these pages do not answer a question, the person can email support at support@onlyx.ai.
> Pages under /developers are the developer documentation. REST API base URL: https://api.onlyx.ai/v1 (authenticate with `Authorization: Bearer <API key>`; keys start with onx_sk_ and are created in app.onlyx.ai under Settings > API & MCP). MCP server: https://mcp.onlyx.ai/mcp (OAuth, or a Bearer API key). In the API the AI chatter is `ai` on the wire. Money is integer US cents in fields ending in Cents; timestamps are UTC ISO-8601.
> Rules for assistants acting on a user's behalf: discover ids with list calls and never invent them; before any call that reaches a real fan or the live OnlyFans account (sending a message, releasing a chat to the AI, turning AI on for a chat, resolving a hand-off, turning review mode off, changing the welcome message, creating a tracking link) show the user the exact content and get explicit confirmation; send every POST with an Idempotency-Key and reuse it on retry; never resend a message whose delivery status is unconfirmed; never ask a creator for her OnlyFans password or codes - she signs in herself through a connect link and the OnlyX Login app.

# Levels: teasers, paid pieces, openers and aftercare

> Set up each level: its teaser and paid pieces, its name and About, free openers and aftercare, and what its numbers mean.

<Badge color="purple">Owners, admins and content VAs</Badge>

Set up each level so Hugo knows what it holds, what to call it, and whether to sell it.

## Before you start

* You need an owner, admin or content VA account. A content VA works only on the creators assigned to them.
* The level must exist. To add levels, see [Build your first collection](/ai-content/build-your-first-collection).

## Paid levels and free levels

Only the price decides whether a level is paid or free. A level with no price, or a price of 0, is free.

| Kind | On the row | What Hugo does with it |
| - | - | - |
| Paid level | A teaser strip and a paid strip, and a price such as \$12 | He sends the teaser for free, then sells the paid pieces. He never sells the whole level for less than its price. |
| Free level | One strip of free files, and the word **free** in green where the price goes | Everything on it goes out unlocked. It is never sold. |

A paid level needs at least one paid piece before Hugo can sell it. Without a teaser, he still sells it, but with no teaser to show first.

The small word above the price also depends on where the level sits. The app shows it in capitals:

* a free level that comes first reads **opener**;
* a free level after a paid level reads **aftercare**;
* any other free level reads **free**.

When you move a free level, this word changes with it.

## Edit a level

<Steps>
  <Step title="Open the level editor">
    On a computer, point to the level's row. Then click the pencil button that appears. On a phone, or in a narrow browser window, the pencil button is always there.

    A window opens. Its title is the level's number and name, such as "L2 · Cliffside".
  </Step>

  <Step title="Add the files">
    Under **Media**, click the dashed box with a plus sign at the end of a strip. On a paid level, the first strip holds the teaser, and the second strip holds the paid pieces.

    The picker opens on that strip. Files you add or remove here are saved at once.
  </Step>

  <Step title="Name the level">
    In **Name · how Hugo calls it**, write one line that says what the level holds. Hugo reads the name to know what the level is. When he offers the level, he describes what the files show instead of saying the name.
  </Step>

  <Step title="Describe what is in it">
    In **About · what he may say about it**, describe what is really in the files. Say how many photos there are, what she wears, where she is and how long a video lasts.

    Put the most important facts first. The card Hugo reads shows only the first 200 characters. If you leave About empty, Hugo uses the collection's About.
  </Step>

  <Step title="Optional: Add a highlight">
    In **Highlight · one line he may lead with**, write a short hook, up to 80 characters. The app calls About "the room to breathe" and the highlight "the hook".
  </Step>

  <Step title="Check What Hugo sees">
    Read the **What Hugo sees** card next to the fields. It shows the level as Hugo reads it, from its place in the collection to its price and files. If the card reads badly to you, it reads badly to him.

    Tags and the **Price floor** are in the same window. See [Set price floors and tags](/ai-content/prices-and-tags).

    <Frame caption="**1** The teaser and the paid pieces · **2** The level's name · **3** What Hugo sees">
      <img className="block dark:hidden" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/level-editor-light.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=7aea3ded2b97d14ff928879764a36954" alt="The level editor for L2 of a Story collection, with its teaser and paid pieces, its name field and the What Hugo sees card" width="1600" height="1934" data-path="images/help/ai-content/levels/level-editor-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/level-editor-dark.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=64a42be9be8953ba94db5d0c20402718" alt="The level editor for L2 of a Story collection, with its teaser and paid pieces, its name field and the What Hugo sees card" width="1600" height="1934" data-path="images/help/ai-content/levels/level-editor-dark.png" />
    </Frame>
  </Step>

  <Step title="Save the level">
    Click **Save level**. The message "Level saved" appears.
  </Step>
</Steps>

<Note>
  The name, About, highlight, tags, price and **Active · Hugo may offer this level** wait for **Save level**. If you click **Cancel**, they are lost. File changes are saved at once.
</Note>

## Move a file between the teaser and the paid pieces

<Steps>
  <Step title="Open the file's menu">
    In the level editor, under **Media**, click the file. A menu opens.
  </Step>

  <Step title="Choose where the file goes">
    On a paid piece, select **Make it the teaser**. On a teaser, select **Move behind the price**. The change is saved at once.

    The same menu has **View**, to look at the file, and **Remove from level**. On a free level, the menu has only these two.

    <Frame caption="**1** Make it the teaser, in the menu of a paid piece">
      <img className="block dark:hidden" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/piece-menu-light.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=0f844126650c0598aba531b53a7add3e" alt="The menu of a paid piece in the level editor, with View, Make it the teaser and Remove from level" width="1600" height="1934" data-path="images/help/ai-content/levels/piece-menu-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/piece-menu-dark.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=c71ddbccca9f111124e5ce9fc45a8480" alt="The menu of a paid piece in the level editor, with View, Make it the teaser and Remove from level" width="1600" height="1934" data-path="images/help/ai-content/levels/piece-menu-dark.png" />
    </Frame>
  </Step>
</Steps>

On a computer, you can also drag a file on the level's row, from one strip to the other. To change the order inside a strip, drop a file on another file in the same strip.

Order matters: Hugo usually sends the first teaser first, and the paid pieces go out in their order. He may change that order to lead with a file that fits what a fan asks for.

## Add an opener or aftercare

An opener is a free level that starts a collection. Hugo may send its files free before he offers a paid level, so it works as a free hook.

* In an empty collection, click **Add level**. Then select **Free level**. The new level is named "Aftercare". Click the name and rename it.
* In a collection that already has paid levels, click **Add level**. Select the free option, such as **Aftercare after L3 · free**. Then click the new level's three dots (⋯) and select **Move up** until it is L1.

  Its small word changes to **opener**. The level is named "Aftercare", so rename it.

Aftercare is a free level after a paid level. It is optional. Like an opener, its files are free: Hugo may send them before he offers a paid level.

* On a paid level's row, click the three dots (⋯). Then select **Add aftercare after this**. The new level appears right after that level.
* To add aftercare after your last paid level, click **Add level**. Then select the option that names that level, such as **Aftercare after L3 · free**. You can also click **Aftercare · free** in the dashed row at the end of the ladder.

A new aftercare level starts empty, unless you had files selected in the vault: those go on it. An empty level shows a red **Nothing to send** badge until you click **Add** on its row and add some.

<Frame caption="**1** Add aftercare after this · **2** Duplicate level · **3** Pause level">
  <img className="block dark:hidden" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/row-menu-light.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=e5255c4def299eae45763ae648963ea2" alt="The menu of a paid level on the ladder, with Add aftercare after this, Duplicate level and Pause level" width="1600" height="1062" data-path="images/help/ai-content/levels/row-menu-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/row-menu-dark.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=4a1bc46a926903df5177114b23694981" alt="The menu of a paid level on the ladder, with Add aftercare after this, Duplicate level and Pause level" width="1600" height="1062" data-path="images/help/ai-content/levels/row-menu-dark.png" />
</Frame>

## Turn a free level into a paid level

<Steps>
  <Step title="Click the price">
    On the level's row, click the green word **free** where the price goes. A price box appears.
  </Step>

  <Step title="Type the price">
    Type the price floor for the level. Then press <kbd>Enter</kbd>.
  </Step>

  <Step title="Confirm the change">
    If the level holds files, the window "Put a price on this level?" opens. It says: "Every piece on it moves behind the price." Click **Price it at \$12**, with your price on the button. To change nothing, click **Keep it**.

    <Frame caption="**1** Put the price on the level · **2** Keep it free">
      <img className="block dark:hidden" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/price-confirm-light.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=8adf89abb4a6a2a9341dedd849a39227" alt="The window Put a price on this level, with the Price it at $12 button and the Keep it button" width="1440" height="564" data-path="images/help/ai-content/levels/price-confirm-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/onlyx/wmKGwkhMJqCuthn-/images/help/ai-content/levels/price-confirm-dark.png?fit=max&auto=format&n=wmKGwkhMJqCuthn-&q=85&s=82d092fd1d8ed31bca261f5e4a2cd46c" alt="The window Put a price on this level, with the Price it at $12 button and the Keep it button" width="1440" height="564" data-path="images/help/ai-content/levels/price-confirm-dark.png" />
    </Frame>
  </Step>

  <Step title="Pick a teaser">
    Every file is now behind the price, so the level shows a yellow **No teaser** badge. Open the level editor. Click one file and select **Make it the teaser**.
  </Step>
</Steps>

To make a paid level free, click its price. Clear the box, or type 0. Then press <kbd>Enter</kbd>.

If the level holds files, the window "Make this level free?" opens. Click **Make it free**.

<Warning>
  Everything on a free level goes to fans unlocked, for free. Before you make a level free, check that you want to give away every file on it.
</Warning>

## Duplicate, pause or remove

* **Duplicate level**, in the row's menu, copies the level's name, price, tags, About and highlight. The copy appears right after the original, with "(copy)" at the end of its name. It never copies the files, because a file can be on only one level. Add the copy's own files.
* **Pause level**, in the same menu, hides the level from Hugo and keeps everything on it. The message "Level paused · hidden from Hugo" appears, and the row dims with a **Paused** badge. To bring it back, select **Resume level**.
* To remove a file on a computer, point to it on the row and click the small × on its corner. In the editor, select **Remove from level** instead. The message "Removed from the level" has an **Undo** button for 10 seconds. The file itself stays in the vault.

To delete a whole level, see [Work faster: shortcuts, focus mode, pause and undo](/ai-content/shortcuts-and-focus-mode).

## What the numbers mean

Under each level's name, the row shows one line, such as "never sent" or "sold 12 / 30 · \$180". The level editor shows the same numbers as **Sent**, **Bought** and **Earned**.

| Number | What it counts |
| - | - |
| **Sent** | Paid offers of this level that Hugo delivered to fans |
| **Bought** | How many of those offers fans unlocked |
| **Earned** | What fans paid for those unlocks, less any refunds |

Only Hugo's own paid offers count. A sale that a person makes in the inbox does not change these numbers. Free levels are not counted. An opener or aftercare usually shows "never sent", even after Hugo has sent its files.

## If something goes wrong

<AccordionGroup>
  <Accordion title="&#x22;The price floor must be a number, zero or more&#x22;">
    The **Price floor** box in the level editor holds a number below zero. Type a price such as 12, or leave the box empty for a free level. Then click **Save level** again.
  </Accordion>

  <Accordion title="A level I priced now shows &#x22;No teaser&#x22;">
    When a free level gets a price, every file on it moves behind the price. Open the level editor, click one file and select **Make it the teaser**.
  </Accordion>

  <Accordion title="A copied level shows &#x22;Nothing behind the price&#x22;">
    **Duplicate level** copies the settings, never the files. Click **Add paid** on the copy's row and pick its own files.
  </Accordion>

  <Accordion title="My new name or About is gone">
    The text fields are saved only when you click **Save level**. If you clicked **Cancel** or closed the window, type them again and save.
  </Accordion>

  <Accordion title="An opener or aftercare shows &#x22;never sent&#x22;">
    The numbers count only Hugo's paid offers. Free levels are not counted, so this is expected.
  </Accordion>

  <Accordion title="I cannot find the pencil or the three dots on a row">
    On a computer, they appear only when you point to the row. On a phone, or in a narrow browser window, they are always there.
  </Accordion>
</AccordionGroup>

## What's next

<Columns cols={2}>
  <Card title="Set price floors and tags" icon="tag" href="/ai-content/prices-and-tags" horizontal />

  <Card title="Fix &#x22;Nothing sellable yet&#x22; and other level warnings" icon="triangle-alert" href="/ai-content/level-states" horizontal />

  <Card title="Story or Menu: choose how Hugo walks a collection" icon="list-ordered" href="/ai-content/story-vs-menu" horizontal />
</Columns>
