# See what RightMessage is doing on your site

You'll see why content appears, try different audiences, inspect visitor data, and edit campaign changes while you test your website.

The debugger shows why RightMessage displays or hides content on your page. Its six tabs let you inspect visitor data, follow events, and edit campaign changes. It runs in a sandbox, so RightMessage doesn't send analytics or proposed contact updates while you debug.

For the steps to test a draft and then check your live site, see [testing your changes](https://rightmessage.com/help/best-practices-for-testing).

## Open the debugger

You'll need an [installed RightMessage snippet](https://rightmessage.com/help/everything-you-need-to-know-about-your-rightmessage-tracking-script) and a signed session for a user who can edit the project. **Preview on your site** in the dashboard opens your draft on your real website with the debugger docked at the bottom. A campaign's **Debug on site** opens it focused on that campaign.

Adding `debug=true` to a URL doesn't grant access. Without a valid token, the browser goes through RightMessage authorization. Signed tokens belong to a project and user, expire after eight hours, and require continued project access. If your session expires, you'll need to authorize again.

An unfamiliar website host needs separate confirmation. That signed confirmation link lasts ten minutes. The return URL must use HTTP or HTTPS and can't include a username or password. Tokens are credentials. Keep them out of screenshots, shared URLs, and support messages.

An older, incompatible snippet can trigger a reload. If it still can't support the debugger, you'll see a message asking you to publish from the dashboard to update the tag. [Review your pending draft](https://rightmessage.com/help/publishing-your-changes) before publishing.

## What changes during a debug session

Segment overrides, contact impersonation, forced campaign assignments, test variants, and flow restarts affect only your debug session. They don't update real contacts or change what other visitors see.

Two controls make changes outside that session:

- **Save to draft** and confirmed **Remove change** save campaign edits to the real, shared project draft.
- **Clear this browser's RightMessage data** deletes the real visitor's RightMessage data in this browser, not just the sandbox data.

Switching between **Published** and **Draft** doesn't publish anything. **Exit** discards your sandbox changes but keeps campaign edits you've already saved to the draft. Unrelated scripts and external forms on your website aren't covered by the sandbox.

## Display and keyboard controls

| Control                         | What it does                                                                                              |
| ------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Published**                   | Loads your published setup inside the sandbox. Overrides and impersonation can still change what you see. |
| **Draft**                       | Loads your unpublished setup. The badge shows the unpublished change count when available.                |
| **Inspect on hover**            | Highlights page elements associated with RightMessage items and exposes inspection details.               |
| **Technical details**           | Adds IDs, technical values, and payload details throughout the tabs.                                      |
| Theme button                    | Switches the debugger between light and dark themes.                                                      |
| **Open RightMessage dashboard** | Opens the project dashboard in another tab.                                                               |
| **Minimize debugger**           | Collapses the panel. **Open debugger** opens it again.                                                    |
| Resize handle                   | Changes the panel height by dragging or using Up and Down Arrow while the handle has focus.               |
| **Exit**                        | Asks for confirmation before discarding the debug session.                                                |

Left and Right Arrow move between tabs when a tab has focus. Escape minimizes the panel unless an open dialog or editor handles the key first.

![On-site element inspector identifying the homepage headline changed by the Agency teams campaign variant](https://rightmessage.com/help/screens/onsite-inspector.light.webp)

## What's showing on this page

**This page** groups campaigns, widgets with their flows, and personalized text into **Showing for you**, **Waiting to appear**, and **Not showing**. Each row explains its state. **Show more** expands the remaining not-showing items.

![RightMessage debugger on This page, showing the homepage campaign, team assessment widget, and visitor segmentation](https://rightmessage.com/help/screens/onsite-this-page.light.webp)

Expand an item to see its audience and page conditions, selected variant where relevant, and changes. **Draft** marks unpublished items or differences. A waiting widget can offer **Show it now** so you can check its display without waiting for the trigger.

**Show on page** locates the affected elements. **See it in Flows** or **See it in Personalizations** opens the detailed tab. **Open in dashboard** opens the item in your project. When form-capture decisions are available, the overview also links to them.

## What RightMessage knows about this visitor

**Visitor** shows whether your browser is anonymous, identified through an integration, or impersonating a contact. **Technical details** adds the visitor ID. **Full profile** opens the matching dashboard profile if you have access to that feature.

![Visitor debugger overview showing anonymous identity, browser and location details, visit counts, and the Full profile link](https://rightmessage.com/help/screens/onsite-visitor.light.webp)

The available information includes:

- **First seen**, **Visits**, **Pages this visit**, **Device**, and **Location**.
- **Tags** and **Custom fields** from the connected email platform. Anonymous visitors don't have a known contact profile by default.
- **Pending tags**, which stay in the debug session and aren't sent.
- **Scores** and **Variables**, including each variable's expiry or **No expiry**.
- **Page history** for this visit. While impersonating, **Their earlier visits** is display-only and doesn't replay those visits into the session.
- **Traffic source**, including **Referrer**, **Landing page**, and **UTM parameters**.
- **Answers**, distinguished as **This debug session** or **Earlier visit**, plus the question currently being asked when applicable.

### Why RightMessage made a decision

These sections explain where the visitor's data comes from and how RightMessage uses it:

| Section                             | What it reports                                                                                                                                                                                       |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **How we know who this is**         | The identity source, discovery details, and profile source when available.                                                                                                                            |
| **Consent**                         | Question-level permission from email-question checkboxes. It doesn't report your site's consent-manager state or provide a global tracking-consent switch. Debugger writes are blocked independently. |
| **Cross-domain stitching**          | Whether incoming visitor context was applied or ignored, and why.                                                                                                                                     |
| **Form capture on this page**       | Observed form status, reason, and selector. Form observation and optional field watching have different setup requirements.                                                                           |
| **Goals evaluated in this browser** | **Met**, **Not met**, or **Waiting**, with the campaign, event type, and reason. A debugger goal evaluation isn't a sent conversion.                                                                  |

### Clear this browser's data

Under **More actions**, **Clear this browser's RightMessage data** asks you to confirm before deleting the real visitor's data in this browser. It doesn't delete the contact from your email platform or reverse updates already sent outside the debugger.

## Try different segments

The right rail appears on every tab except **Visitor**. It has identity details, segment controls, contact impersonation, and **Everything we know** to open visitor details. On **Visitor**, segment controls appear under **How they're segmented**.

Each segment group shows its current value and where it came from. An override shows **Overridden**, with the actual value beneath it.

**Override** opens the group's selector. Choosing a value applies it immediately to this session. A single-select group allows **Not known yet** or one segment. A multi-select group allows several values. **Cancel** only closes the selector. It doesn't undo a choice you've already made.

**Change** edits an override. **Reset** removes one, and **Reset overrides** clears all segment overrides. **Show more** and **Show fewer** change how many groups you see. Forced campaign assignments have separate **Reset** controls.

## Try a contact's data

**Impersonate a contact…**, **Impersonate someone else…**, and the visitor selector in the header open the impersonation dialog. You'll need a connected email platform to look up its contacts.

Enter an **Email address** and choose **Look up**. A match shows the contact, proposed segments, and tags before you confirm with **Impersonate**. **Back** returns to the lookup. If there's no match, the message offers segment simulation instead.

Nothing is written to the impersonated contact's record. **Detach** returns you to the actual browser visitor. It doesn't delete the contact.

**Recent** keeps up to eight impersonated contacts in local browser storage. Each entry has **Impersonate** and an option to remove it from the list. **Clear all** clears the local list, not contacts in your email platform.

## Follow a flow and try test variants

**Flows** groups flows by their current state. Select a flow to see its status, time in the flow, start time, widget, path, current step, and why it's waiting or not running. The locate control highlights the visible widget. **Open flow** opens its builder.

![Debugger Flows panel showing the team assessment flow and its current question step](https://rightmessage.com/help/screens/onsite-flows.light.webp)

**Clear dismissed** removes dismissed-widget data in the sandbox. **Restart flows for this session** restarts flows for you, not for other visitors.

Under **A/B tests**, you can force a variant for this session. **Automatic assignment** removes that choice. **Other A/B tests** includes question and offer tests you haven't reached on the current page. Forcing a draft variant previews it without starting the test.

## Inspect personalizations

**Personalizations** separates campaigns and personalized text into **Applied on this page** and **Not applied**. Select an item for details. Hover or use the locate controls to highlight matching elements. The empty state tells you whether you have no personalizations or none that apply here.

![Personalizations debugger panel showing the agency campaign variant and its homepage headline change](https://rightmessage.com/help/screens/onsite-personalizations.light.webp)

Campaign details include **Status**, **Variant**, **A/B test**, **Runs on**, **Who it's for**, and **Changes on this page**. The reasons explain audience mismatches, page targeting, holdback, and changes that didn't apply. Technical mode adds selectors and action IDs.

**Variant you're seeing** lets you use automatic selection, a specific variant, or **Holdback** where available. A forced choice affects only this session. Returning to automatic selection doesn't clear a separate segment override.

For personalized text, **Every version** shows the wording, and **You see this** marks the active version. Selecting a version with an associated segment simulates that segment. It doesn't edit the phrase.

## Inspect events and earlier page views

**Events** records what happened in the debugger. **Category** offers **All events**, **Page**, **Visitor**, **Campaign**, **Widget**, **Flow**, **Write**, and **Warnings & errors**. Technical mode also exposes **Log** and the **Severity** choices **All levels**, **Notice**, **Warning**, and **Error**.

Select an event to see the state after that moment, grouped into **Ran**, **Waiting**, and **Didn't run**. **Just happened** marks items associated with the event. When earlier events are available, expand **Previous page view** with **Show events** or collapse it with **Hide events**.

![Debugger Events timeline filtered to campaign events, showing why the homepage personalization ran](https://rightmessage.com/help/screens/onsite-events.light.webp)

**Would send** summarizes proposed writes. Technical mode can show **Would be sent to analytics** and expandable **Event details** JSON. These show what RightMessage would send, not a delivered contact update or analytics event. Nothing is sent to RightMessage analytics while you debug.

## Look up Liquid values

**Liquid** lists **Name** and **Current value**. **Filter by Liquid path** searches variable paths. Technical mode adds a **Liquid** column with each expression.

Groups include **Segments**, **Phrases**, **Contact** during impersonation, and **Page & session**. Values can be marked **Overridden** or **Being asked**. They reflect this debug session, including anything you've simulated.

## Edit a campaign change

The on-site campaign editor requires website-personalization access on Scale or Pro. **Edit** opens an existing change. To use **Add change**, you need an active variant, then you select a page element. **Cancel picking** or Escape leaves element-selection mode.

Editing in **Published** switches you to **Draft**. The editor has **Content**, **Style**, and **Pages** tabs. A new change offers **Select parent** when the selected element has an eligible parent.

You can drag the header to move the editor. The keyboard move handle uses arrow keys in 10-pixel steps, or 40-pixel steps with Shift. It remembers the position for this tab session.

### Content

| Control            | Available settings                                                                                                                                           |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Replace**        | **Replacement content**.                                                                                                                                     |
| **Find & replace** | Repeated **Find** and **Replace with** pairs, **Add replacement**, and **Remove replacement**. Switching content modes clears the other mode's modification. |
| **Visibility**     | **No change**, **Show**, and **Hide**.                                                                                                                       |
| Image controls     | **Image URL** and **Alt**.                                                                                                                                   |
| Link controls      | **Link URL** and **Opens in**, with **Same window** or **New window**.                                                                                       |

Fields depend on the selected element. An image field won't appear for a text heading.

### Style

**Add style** offers text size, color, weight, line height, alignment, background color, padding, margin, border width, border color, border radius, and opacity. Each added property has a value field and **Remove**.

**Add classes** and **Remove classes** accept comma-separated class names. They change the selected campaign element, not your global stylesheet.

### Pages

For CSS-selector changes, **CSS selector** reports the matching-element count or **Invalid CSS selector**. **Page path**, **Add page**, and **Remove page** control the applicable pages. **Domain** appears when the project has multiple configured domains and includes **Any domain**.

A fingerprint-based change shows **Smart Match finds this element on any page** instead. You can't edit selector and page controls for that targeting mode in the debugger.

### AI variations

**AI Generate** requires a variant with segment rules. It uses the original text, those segments, the element type, and up to 500 characters of surrounding parent text.

Select a variation to replace the text in your preview. **Regenerate** asks for more options and includes the previous options in that request. Selecting one doesn't save or publish it.

### Save, cancel, or remove

Edits appear in your local preview after a short delay. **Save to draft** stays disabled until you've changed something. A successful save stores the campaign edit and shows **Saved to draft**, with a **Publish in the dashboard** link.

**Close**, **Cancel**, or Escape reverts an unsaved preview. Draft refresh pauses while the editor is open so it won't replace your work.

For an existing change, **Remove change** opens a confirmation with **Confirm removal** and **Keep change**. Confirming saves the removal to your draft. It still needs to be published before visitors see it.

## Share a support report

The **Debugger menu** offers **Copy support report** for a readable report. With **Technical details** on, it also offers **Copy JSON**. **Include email** is optional. Reports leave out profile values and credentials, but can still include private site information. Review them before sharing.

If clipboard access fails, you can select the report text in the menu. The report describes your debug session. To check an actual contact update, inspect your email platform. To confirm a publish, check your publish history.
