Appearance
Embed configs
The Embeds tab lists every widget configuration scoped to this community. From here you can create new configs, edit existing ones, copy install snippets, and see per-config stats.
Detailed widget docs live under Embed widget — this page focuses on how the admin center manages configs.
What an embed config is
A config is a saved bundle of:
- An optional Element authoring preset—Group Chat, MOD Chat, Support Forum, Comments, Reviews, Product Q&A, Community Feed, or Polls—or a custom starting point
- References to existing Social content, such as a community feed, permitted post types, thread, stable host object, or eligible chat destination
- Presentation choices for the standard community card, native community search, optional review summaries, a generic top header, contextual root, normal post/header regions, composer placement, post opening, and outside navigation
- Placement, host/internal scrolling, infinite/load-more behavior, and overlay opening behavior
- Theme, transparency, generic container-border, and top-header appearance
- Connection mode (
connectedor deployment-supportedembed_only) - Viewing and participation policy
- Per-embed sign-in method and timing; the SSO provider itself remains community-level
- Canonical thread resolution and inherited community reply rules
- Allowed origins whitelist
Each config has a unique ID. That ID goes into your <script data-zeeker-config="..."> tag.
A community can have up to 20 configs. Use a separate config when placement, content scope, access, login, or origin policy differs—for example, a product-page review composition and a help-center question composition.
The preset label is setup metadata, not a runtime product boundary. The saved generic controls and current community capability determine what renders. If a capability is not available in Zeeker Social, Embed does not fabricate it.
Every Element can use a Zeeker launcher, a host-owned/custom trigger, fixed inline placement, or full-screen placement. Group Chat and MOD Chat default to the Zeeker launcher—a floating action on desktop and a mobile tray action—but fixed and full-screen Chat remain explicit configuration choices.
Creating a config
- Click + New embed.
- Choose Website or Mobile app, then pick an Element preset or a custom starting point.
- Select existing community content and set presentation, placement, appearance, connection, viewing, participation, and login behavior. Community capabilities and SSO availability are shown but managed in the Admin Center.
- Review and create the config; then refine it in Customize. See Configurator for the full walkthrough.
Config statuses
| Status | What it does |
|---|---|
| Draft | Visible in preview only. Script tags referencing it return a no-op. |
| Published | Live on host sites. |
| Paused | Script tags return a no-op (use to temporarily disable a config without deleting it). |
Connected boot metadata can remain in an edge cache for up to 60 seconds, although the service invalidates it when a config changes. Embed-only authorization does not rely on that cached state: a pause, unpublish, mode change, or any revision update invalidates an existing scope on the client's next protected request.
Publishing fails closed when the requested policy is not enforceable. Embed only and named guests can be published only when the deployment reports the complete exact-config storage, authorization, relationship, revocation, and signing capabilities for the selected Social or Chat surface; missing prerequisites make the option unavailable rather than converting it to Connected. Connected supports read-only or authenticated participation. Guest participation is always Embed only.
A guest configuration can never be Connected. New guest configurations default to Embed only, while explicit Guest + Connected writes are rejected by the API. The identity sheet continues to offer login/signup and adds Continue as guest, which collects a display name. Social posts/replies and Chat use separate config-owned storage paths, revision/revocation checks, and abuse limits; a deployment advertises the guest capability only while the applicable surface can enforce that complete boundary.
Embed-only ownership and revocation
Content created by an Embed-only config belongs permanently to that exact config. It is not combined with ordinary community content or another Embed-only config, even within the same community. Cross-partition parents, replies, references, connected sequences, accepted answers, and selected replies are rejected, and ownership cannot be changed after creation.
The loader receives a short-lived signed scope containing the exact config and current authorization revision. Social and Chat compare it with the live published config on every scoped request. Editing the config advances the revision; pausing, unpublishing, changing to Connected, or otherwise changing the config makes an old scope fail immediately on its next request. Embed-only Chat uses config-owned conversations/messages rather than canonical community rooms, and also rechecks the applicable community membership/role and both community and per-config Chat switches, so a removal, staff demotion, or feature disablement does not leave access behind in an old session.
Ordinary Social excludes isolated content from feeds, global/community search, profiles and profile stats, notifications and digests, public discovery/ranking/topics, sitemaps, SEO pages, and shared Social analytics. Config-scoped Embed stats and private owner insights may include authorized isolated activity without exposing that content through Social.
Dashboard previews
Draft preview uses the real Zeeker loader and canonical Social surface, but it is not a public install. The preview endpoint requires a short-lived, config-bound signed token and returns private/no-store content. A verified preview is marked read-only across the loader, Social, and Chat surfaces so posts, replies, reviews, questions, votes, reactions, saves, membership, chat, reporting, and moderation cannot mutate production data. Preview loads and opens also do not write config analytics or post-view counters.
Preview URLs and data-zeeker-preview-* attributes must not be copied into installation code. Without the valid signed token they have no authority.
Copying the install snippet
The Install sub-page (per config) shows ready-to-paste snippets for:
- Plain HTML
- Next.js (
next/script) - WordPress (footer script)
- Webflow
- Shopify
- React with SPA refresh
Each snippet has a one-click copy button.
Versioning
Every save creates a new version and advances the Embed-only authorization revision. The configurator's History drawer shows the last 20 versions; click any to Restore (which creates a new version with the old payload and a new revision).
Old script tags using the same config ID continue to work—versioning is transparent to host markup. An already-running Embed-only client must obtain a fresh scope for the new published revision; it cannot keep using an older revision.
Stats per config
The Stats sub-page shows:
- Impressions — widget loads on host pages.
- Button clicks, panel opens, and panel closes.
- Nudge views and nudge clicks.
- Chat opens when a visitor actually launches chat, not when it is preloaded.
- Replies and reactions after the underlying Social mutation succeeds.
Choose today (UTC), the last 7 days, or the last 30 days. Metric cards and the daily chart show config-wide aggregate counts; the activity summary compares meaningful action volume with impressions. It is an actions-per-impression ratio, not a unique-visitor conversion rate, and may be greater than one when a visit creates several actions.
The current aggregate does not retain a visitor identifier, post breakdown, or host-page URL breakdown. Use the public widget events when your own analytics needs page-level funnel attribution.
Deleting a config
From the dashboard's overflow menu → Delete. Confirmation requires typing the config ID. Deletion is permanent and instantly stops host sites from rendering the widget for that config.
For a Connected config, deletion does not delete the ordinary Social threads it spawned; those remain ordinary Social posts. A config that already owns isolated content cannot be deleted, detached from that content, or reassigned to another community. Pause or unpublish it to revoke runtime access while preserving its exact ownership boundary.
Migrating a config
If you need to "rename" a config or change its underlying URL pattern significantly, the recommended path is:
- Create a new config with the desired settings.
- Update your script tags to the new config ID.
- After traffic has migrated, pause / delete the old config.
Threads created from each config are independent — there's no "merge configs" operation.