Conversational agents
Deploying Your Agent

Deploying Your Agent

Zimmer agents go live in two forms — a standalone landing page or an embedded widget on your own site. Both become available once you publish.

Publishing

Agents start in Draft. To go live, hit Publish — either the button in the top-right of the agent (on any tab) or under Settings → Deploy.

Any edits you make after publishing are saved as drafts — they don't affect the live experience until you publish again, so you can safely change a live agent and test it before pushing the update.

Click Unpublish to take the agent offline: the landing page and widget stop working immediately, your configuration is preserved, and you can republish any time.

Landing page

Every published agent automatically gets a public landing page — no extra setup. It shows the full template (hero, chat UI, colors, fonts) you designed in the template studio.

Copy its URL from Settings → Deploy → Landing Page URL, then share it anywhere — emails, social posts, QR codes, or as the destination for a paid ad campaign.

Custom domains (for example, chat.yourbrand.com) may be available depending on your plan — contact us at hello@zimmer.app.

Widget embed

The widget adds your agent to any website as a floating chat button. Visitors click it to open a full conversation without leaving your site. It's a single snippet — no framework or package to install.

  1. Open your agent → Settings → Deploy.
  2. Copy the Widget Embed Code.
  3. Paste it just before the closing </body> tag on your site.
<script
  src="https://hub.zimmer.app/widget/v1/widget.js"
  data-agent="your-agent-id"
></script>

To show it on every page, add it to your site's layout or global-script field — Webflow, WordPress, Shopify, and most website builders support this.

Customize it

All options are set with data-* attributes on the script tag — no coding needed:

AttributeDefaultWhat it does
data-agentThe agent to load.
data-kitLoad from a starter-kit slug instead (e.g. internal-knowledge-agent). One of data-agent or data-kit is required.
data-color#7C3AEDThe accent color of the button and chat UI.
data-positionbottom-rightWhere the button sits — bottom-right or bottom-left.
data-greetingA message shown when the chat opens.
data-auto-openfalseSet "true" to open the chat automatically on page load.
data-delay0How long (in milliseconds) to wait before the button appears.
data-product-id · data-categorySet an explicit product or category for e-commerce context.

How it behaves

  • A floating button appears (after any delay you set) and opens the agent when clicked.
  • Closing it keeps the conversation — visitors can reopen and pick up where they left off, even on a return visit.
  • On a store, the widget can detect the product or category from the page automatically, so the agent can talk about what the visitor is looking at.

Visitors can start over (type "start over" or "reset" — earlier messages stay visible) or use the New Conversation button for a fresh session (the previous chat is saved to your Conversations).

For developers

  • Handle product-card clicks. When a product card's button is clicked, the widget sends a postMessage to the host page (rather than navigating). Listen for it to add to cart, navigate, or track:
    window.addEventListener('message', (event) => {
      if (event.data?.type === 'zimmer:cta_click') {
        console.log(event.data.url);          // product URL
        console.log(event.data.productTitle); // product name
      }
    });
  • Visitor metadata. It forwards UTM parameters, referrer, page URL, and viewport size into the agent's journey, where you can use them in conditions, variables, or API calls.
  • E-commerce auto-detection. When data-product-id / data-category aren't set, the widget reads the product or category from common URL patterns (for example /products/<slug>, /p/<id>, /dp/<id>; /collections/<slug>, /category/<slug>) and query params (?product_id=, ?pid=, ?category=).
  • Under the hood. The widget is a single self-contained script with no dependencies; it mounts the chat in an iframe and talks to your page via postMessage. A per-visitor ID is stored in the browser so sessions resume on return visits.

Product card CTAs

When your agent shows a product card, the CTA button behaves differently depending on where it's deployed:

ContextCTA behavior
Standalone page (desktop)Opens the product URL in a new tab
Standalone page (mobile)Opens a bottom sheet with product details
Embedded widget (iframe)Fires a postMessage to the parent page (see the developer notes above)