> For the complete documentation index, see [llms.txt](https://help.usejimo.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.usejimo.com/docs/build/preview.md).

# Preview

What a preview proves about an experience (content, design, positioning) and what it does not (trigger, pages, audience, environment).

A preview plays your experience on your own screen, as your users would see it, before anyone else can. It proves the content and the positioning; it does not prove that the experience will show up for the right users at the right moment.

## What a preview proves

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FS9p8BsotXoSuM207DDz4%2FC-02-preview-proves.png?alt=media" alt="Two columns. A preview proves the copy and media, design, step order, buttons and positioning. Trigger (Show on), pages (Where), audience (Who), timing (When) and environment are only tested by publishing, which leads to Test safely."><figcaption></figcaption></figure>

| A preview proves                                                                | A preview does not prove                                      |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| The copy, media and design of every step                                        | That the trigger fires (Show on)                              |
| The order of the steps and what each button does                                | That the experience shows on the right pages (Where)          |
| That each tooltip, hotspot or hint finds its element and sits where you want it | That the right users see it (Who)                             |
| How the experience fits on your screen size                                     | When and how often it shows (When, recurrence, rate limiting) |
|                                                                                 | That it runs on the right environment                         |

A preview plays the experience on the page you open, for you, ignoring its targeting. Everything in the right-hand column is only tested by publishing. [Test safely](/docs/getting-started/publish-your-first-experience/test-safely.md) shows how to publish to yourself first, without any user seeing a draft.

## Three ways to preview

{% tabs %}
{% tab title="From the builder" %}
**Preview** in the builder plays the experience on a page of your app, with every button, dismiss and media working as they will for your users. Leave the preview to go back to editing.

If the preview has trouble loading from the standalone builder, open the [In-app builder](/docs/build/builders/in-app-builder.md) first: the tab and overlay are already initialized, which often helps.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FM8XBETVkVMTLAICFwru6%2FTMbuilderPreview.png?alt=media&amp;token=65ed6426-58f8-4007-b620-9655b1e03766" alt="Builder with the current step in the center, the Edit in App button and the Preview button"><figcaption></figcaption></figure>

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FflQbj6ri43ihWiMWjsQG%2FTMPreview.png?alt=media&amp;token=2b1e7caa-79a0-42d8-81ae-6a7a4c0c9c53" alt="Preview mode on a page of the app: the experience plays as it will for users, with the Leave preview button to go back to the builder"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="In your app" %}
The [In-app builder](/docs/build/builders/in-app-builder.md) shows each step on the real page while you edit, so you see at once whether a tooltip attaches to its element. It is the best place to check positioning on dynamic pages.
{% endtab %}

{% tab title="From your assistant" %}
An AI assistant connected through the [Jimo MCP](/docs/integrations/mcp.md) returns a **signed preview link** each time it creates or reads an experience. The link opens the experience, even a draft, directly in your app, without a dashboard session: one link per environment, each on that environment's domain.

> Give me the preview link of the tour "Onboarding" on Production.

The link expires: ask again for a fresh one. Anyone with the link can open the draft, so share it only with your team. Open it and walk every step before you publish.
{% endtab %}
{% endtabs %}

## Test it on your app

A preview ignores targeting. To see the experience as it runs for real, on a page of your app, two routes. Both need the [Jimo snippet installed](/docs/for-developers/for-developers/install-our-sdk.md) on that page.

#### A test link

On the **Target & Publish** page of the experience, click **Test**. Paste the address of the page where the experience should start: Jimo adds `?jimo_poke_preview=<experience id>` to it, and **Copy url** copies the link. If the address does not match the [Where](/docs/publish/target-specific-urls-domains-where.md) rules, a warning says so.

<figure><img src="https://2794860263-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKzAcDWQbK1gKbpra7bkb%2Fuploads%2FoQoQQJ6qiHDuLkI7DZ8O%2FC-s06-test-your-experience.png?alt=media&amp;token=701a4ba8-cb82-455e-b48c-6f3af19018b7" alt="Test your experience dialog: the page address https://b2b.usejimo.com/pages/dashboard followed by the ?jimo_poke_preview= parameter of the experience, and the Copy url button"><figcaption></figcaption></figure>

#### Publish to yourself first

Publish with **Who** set to a segment that only holds you and your team, check the experience, then widen **Who**. The full routine is in [Test safely](/docs/getting-started/publish-your-first-experience/test-safely.md).

{% hint style="info" %}
**Seen it once, then nothing?** The recurrence may be **Show once**, and [rate limiting](/docs/publish/trigger-at-the-right-time-when/rate-limiting-prevent-overwhelming-users.md) may hold the experience back after another one. Both apply to a published experience, not to a preview.
{% endhint %}

## What to check in a preview

* The full flow reads well, with the right copy and design on every step.
* Every button behaves as it will for your users, including the last one. One exception: a **Launch experience** button does not start its target in preview when that experience is not live, since your users would not get it either.
* Each step pinned to an element appears next to the right element, on the screen sizes your users have.
* Steps come in the right order, and moving to another page works.
* In each language: switch your browser language and preview again. See [Multiple Languages](/docs/build/multiple-languages.md).

## Verify

You are done previewing when every step has been seen on the real page, every button has been clicked once, and nothing in the left-hand column above surprised you. Then move on to [Test safely](/docs/getting-started/publish-your-first-experience/test-safely.md) for the right-hand column.

## Go further

* [Test safely](/docs/getting-started/publish-your-first-experience/test-safely.md): publish to a test segment, reset your activity, settings to change while testing.
* [Why my experience does not show](/docs/getting-started/publish-your-first-experience/why-my-experience-does-not-show.md): what to check when a published experience stays hidden.
* [Positioning](/docs/build/positioning.md): fix a step that does not attach to its element.

**Next page:** [Actions](/docs/build/actions.md)
