Deskwerk· Workshop

KnowledgeMessaging widget

Floating or Embedded? The right mode for the right place

The messaging widget has two lives: a floating bubble over the page (floating), and a building block inside the layout (embedded). Both are right, just rarely in the same place.

When floating

  • Marketing pages and shops, where chat is an offer, not a core element: the bubble (or a custom launcher) stays out of the content’s way and is still there.
  • Many pages, one install: floating works the same everywhere, with no per-page layout work.
  • Proactive messages: campaigns that open a window on their own only exist in floating mode.

When embedded

  • Portals, intranets, web apps, where chat is part of the interface, like in the workshop terminal.
  • Designed transitions: a form that turns into a chat (contact page), a search that leads into a conversation (search & chat). That only works when the widget is an element on the page.
  • Full control over space and header: embedded fills your container and can run headerless; your panel supplies the navigation.

The three rules

1. Never mix. Embedded and floating collide on the same page. One mode per page; if you need both, you need two pages.

2. Render happens once. zE('messenger', 'render', …) runs exactly once per page load. A second call duplicates the widget, and there’s no un-render. Changing options means reloading the page. So you open and close panels with CSS (show or hide the container), not by rendering again.

3. The container needs dimensions. For the embedded render, the target has to be in the DOM and have a size. A collapsed panel can be clipped (overflow: hidden), but not display: none.

The call in one sentence

If chat is part of the interface, it’s embedded. If it only rides along, it stays floating, but then with a clean launcher instead of the default bubble.

← Back to: Messaging widget