# In-app Builder

## **Understanding the In-App Builder**

The **In-App Builder** is an **overlay-based editor** that integrates directly into your web application, allowing you to build experiences in a **real-world context**. Unlike the **Flow Builder**, which manages step sequences, and the **Content Builder**, which refines individual step content, the **In-App Builder** provides real-time, context-aware editing.&#x20;

<figure><img src="/files/lJ7aSXf7Mq3ROcFDkznx" alt=""><figcaption></figcaption></figure>

It inherits the interface from the **Legacy Builder**, meaning all steps and elements are managed from the top bar rather than distinct Flow/Content Builder tabs.

The **In-App Builder** is especially useful when:

* **Precise step placement** is required for targeted elements that must attach to UI components.
* **You need to see how experiences behave in real-time** within the actual application instead of using a standalone preview.
* **You want to streamline the positioning and styling of elements** without switching between Jimo and your website.

It is available for **Tours, Surveys, Banners, and Hints**, providing contextual editing within your live application. Other experiences, such as Checklists or Changelogs, have a fixed structure that does not require in-app building.

***

## **First Time in the In-App Builder**

How to Access the In-App Builder:

**At Start (On Experience Creation)**

* When creating a new experience, check the **Edit in-app** option before clicking "Enter Builder."
* The In-App Builder will open in a new tab, where you can immediately start configuring steps in the context of your website.

<figure><img src="/files/8esS90eIl61VbSZowWxc" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you start in the **In-App Builder**, you will first need to **add a step** using the top bar menu.&#x20;

![](/files/1gk9o82hHZpPZFjIa1JY)

* Choose from preset step structures.
* [Position targeted steps](/docs/build/positioning.md) to UI elements immediately after selection.

![](/files/2wpaEWBz98BJ9sKsSYCW)⇒ ![](/files/2uz6zmvyw8v0lVZKsMyz)

{% endhint %}

#### **Open Later (From a Standalone Builder)**

* If an experience is already created, you can enter the In-App Builder by clicking **Edit in-app** from the top bar inside the **Content Builder.**
* This will launch the In-App Builder in a new tab, allowing you to make adjustments in context.

<figure><img src="/files/joGjV6on6s5SGvEpGcmL" alt=""><figcaption></figcaption></figure>

> 📝 The In-App Builder opens in a new tab, allowing you to work directly within your application.&#x20;
>
> **⇒ To exit**, simply **save and close the tab** to return to the standard builder.

***

## **Managing the Experience Flow**

Since the **In-App Builder** follows the **Legacy Builder** UI structure, it does not feature separate Flow and Content Builder tabs. Instead:

<figure><img src="/files/00sltr5n35Fkow0k3hAW" alt=""><figcaption></figcaption></figure>

* **All steps are managed from the top bar**, where you can add [(+ button)](#user-content-fn-1)[^1], delete [(cross button on hover)](#user-content-fn-2)[^2], or reorder them [(drag & drop)](#user-content-fn-3)[^3].
* **To duplicate steps** just add a new step and select [the copy preset.](#user-content-fn-4)[^4]
* If needed, once positioned **selected step appears directly within your website**.
* If a **targeted step’s attached element isn’t found**, an alert will prompt you to [navigate to the appropriate page](#user-content-fn-5)[^5] or [reposition the step](#user-content-fn-6)[^6].

<figure><img src="/files/0F1OoAqddgieFyNkuS5H" alt=""><figcaption></figcaption></figure>

> 📝  This structure makes the **In-App Builder** especially effective for designing **targeted experiences** that rely on elements in the interface.

### **Interacting with Your Website**

One of the key features of the **In-App Builder** is the ability to **freely navigate and interact with your application** while editing.

#### **Using Interact Mode**

<figure><img src="/files/oqs7VnscJQuVaBBVehco" alt=""><figcaption></figcaption></figure>

To enable **Interact Mode**, click the **arrow button** in the top bar (located between **Save** and **Preview**). This allows you to:

* Navigate your site freely without affecting the builder.
* Interact with dropdowns, modals, and other dynamic elements.
* Click "Stop" in the bottom pop-up to **return to editing mode** while maintaining the current state.

<figure><img src="/files/FwS1emA8IJq8e9zNewrL" alt=""><figcaption></figcaption></figure>

> 📌 Interact Mode is particularly useful for **placing elements that only appear on user interaction**, such as pop-ups or expandable menus.
>
> \
> You can also freely navigate while [positioning](/docs/build/positioning.md) an element by maintaining **Shift** or **Q** in the CSS selector.
>
> ![](/files/q3kZtbIokiHpLr7dr4e1)

***

## **Managing Step Content**

The **In-App Builder** retains the full feature set of the **Content Builder**, but with a streamlined interface designed for on-page editing.

### **The In-App Builder Menu**

<figure><img src="/files/WIyryCP9hDmzMyUrKSov" alt=""><figcaption></figcaption></figure>

The **editing menu** appears as a **movable overlay** within the application, consolidating all customization options in a single location. It includes:

* [**Navigator**](/docs/build/navigator.md) **&** [**Properties Sidebar**](/docs/build/builders/content-builder.md#properties-sidebar): Lists step elements and provides direct access to customization parameters. The **scroll in the properties section** to access more options.
* [**Triggers**](/docs/build/triggers-and-conditions.md) **(if applicable)**: Configures conditional progression.
* [**Theme**](/docs/build/theme.md): Applies styling presets.
* [**Translations**](/docs/build/multiple-languages.md): Manages multilingual content.

You can reposition this menu by **dragging the placement icon** in the top right corner.

<figure><img src="/files/5Gm0O7pECwyazWkP3Awd" alt=""><figcaption></figcaption></figure>

### **Editing Step Elements**

<figure><img src="/files/yXVmTjt8q9GY2Mj4sMDG" alt=""><figcaption></figcaption></figure>

* Select a step from the **top bar**.
* Edit elements using the **Navigator tab**.
* Adjust **properties and behaviors** in the embedded sidebar.
* All **changes update live in your application**, ensuring precise positioning and styling.

### **Previewing the Experience**

<figure><img src="/files/sX9dIiiI2J83FzDwtXjb" alt=""><figcaption></figcaption></figure>

The **In-App Builder** offers several preview options:

* **Start preview from here**: Runs the preview from the exact page where your In-App Builder is currently open.
* **Begin preview at origin URL**: Redirects you to the page where you first opened the In-App Builder before starting the preview.
* **Go to specific page**: Opens the interact mode where you can navigate to the exact URL from which you want the preview to start.

<figure><img src="/files/M7bFU6kD9kdbPf9pnFXI" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
If the **preview or positioning** mode has **trouble loading** when opened from a standalone builder, **try going in-app first**.&#x20;

⇒ This often improves loading performance, as the tab and in-app overlay will already be open and initialized.
{% endhint %}

***

## **In-App Builder Requirements**

For the **In-App Builder** to function, the [**Jimo snippet must be installed**](/docs/getting-started/installing-jimo.md) on the page you are working on. If the snippet is missing, you won’t be able to load the builder properly.

<figure><img src="/files/wMMHIie60IlBuKyHl5Bt" alt=""><figcaption></figcaption></figure>

If Jimo is not yet installed on your site, you can:

* Use the [**Jimo Chrome Extension**](/docs/getting-started/extension.md) to load the snippet dynamically, allowing you to build experiences in context even before full implementation.
* Ensure that Jimo is correctly installed in a test or staging environment where you can preview and configure experiences safely.

{% hint style="warning" %}
If the **In-App Builder fails to load**, confirm that the snippet is present on the page or activate the Chrome Extension. \
\
The first time you use the extension, you may be asked to **re-log into Jimo** for authentication before the builder can function correctly.
{% endhint %}

[^1]: ![](/files/erKvTMn7OH9RC9RGjeBZ)

[^2]: ![](/files/mlb3RjiR6qaSkTasjIF2)

[^3]: ![](/files/6Xlj2hyLLRlZKxhip6Bg)

[^4]: ![](/files/WlYeCFfsMtqcYCrgSzwC)

[^5]: ![](/files/YxzB57KQ3I4sarUSTjtD)

[^6]: ![](/files/sX6aObHFRIINIoTpD06E)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.usejimo.com/docs/build/builders/in-app-builder.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
